From 39f6340875a3753dbb6d0a472bb68782a2c85b23 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 17 Apr 2018 14:53:44 -0400 Subject: [PATCH 01/16] first pass at moving address generation functionality into blockstack.js --- src/index.js | 2 + src/wallet.js | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 src/wallet.js diff --git a/src/index.js b/src/index.js index 3934d90ec..c7918678e 100644 --- a/src/index.js +++ b/src/index.js @@ -14,6 +14,8 @@ export { isLaterVersion, isSameOriginAbsoluteUrl, hexStringToECPair, ecPairToHexString } from './utils' +export { BlockstackWallet, IdentityKeyPair } from './wallet' + export { transactions, safety } from './operations' export { network } from './network' diff --git a/src/wallet.js b/src/wallet.js new file mode 100644 index 000000000..852486112 --- /dev/null +++ b/src/wallet.js @@ -0,0 +1,151 @@ +/* @flow */ +import { HDNode } from 'bitcoinjs-lib' +import { ecPairToHexString } from './utils' +import crypto from 'crypto' + +const APPS_NODE_INDEX = 0 +const IDENTITY_KEYCHAIN = 888 +const BLOCKSTACK_ON_BITCOIN = 0 + +const BITCOIN_BIP_44_PURPOSE = 44 +const BITCOIN_COIN_TYPE = 0 +const BITCOIN_ACCOUNT_INDEX = 0 + +const EXTERNAL_ADDRESS = 'EXTERNAL_ADDRESS' +const CHANGE_ADDRESS = 'CHANGE_ADDRESS' + +export type IdentityKeyPair = { + key: string, + keyID: string, + address: string, + appsNodeKey: string, + salt: string +} + +function hashCode(string) { + let hash = 0 + if (string.length === 0) return hash + for (let i = 0; i < string.length; i++) { + const character = string.charCodeAt(i) + hash = (hash << 5) - hash + character + hash = hash & hash + } + return hash & 0x7fffffff +} + +function getNodePrivateKey(hdNode): string { + return ecPairToHexString(hdNode.keyPair) +} + +function getNodePublicKey(hdNode): string { + return hdNode.keyPair.getPublicKeyBuffer().toString('hex') +} + +export class BlockstackWallet { + rootNode: HDNode + + constructor(seed: Buffer) { + this.rootNode = HDNode.fromSeedBuffer(seed) + } + + + getIdentityPrivateKeychain(): HDNode { + return this.rootNode + .deriveHardened(IDENTITY_KEYCHAIN) + .deriveHardened(BLOCKSTACK_ON_BITCOIN) + } + + getBitcoinPrivateKeychain(): HDNode { + return this.rootNode + .deriveHardened(BITCOIN_BIP_44_PURPOSE) + .deriveHardened(BITCOIN_COIN_TYPE) + .deriveHardened(BITCOIN_ACCOUNT_INDEX) + } + + getBitcoinNode(addressIndex: number, chainType: string = EXTERNAL_ADDRESS): HDNode { + return BlockstackWallet.getNodeFromBitcoinKeychain( + this.getBitcoinPrivateKeychain(), addressIndex, chainType) + } + + getIdentityAddressNode(identityIndex: number): HDNode { + const identityPrivateKeychain = this.getIdentityPrivateKeychain() + return identityPrivateKeychain.deriveHardened(identityIndex) + } + + getIdentitySalt(): string { + const identityPrivateKeychain = this.getIdentityPrivateKeychain() + const publicKeyHex = getNodePublicKey(identityPrivateKeychain) + return crypto.createHash('sha256').update(publicKeyHex).digest('hex') + } + + getBitcoinAddress(addressIndex: number): string { + return this.getBitcoinNode(addressIndex).getAddress() + } + + getBitcoinPrivateKey(addressIndex: number): string { + return getNodePrivateKey(this.getBitcoinNode(addressIndex)) + } + + getBitcoinPublicKeychain(): string { + return this.getBitcoinPrivateKeychain().neutered().toBase58() + } + + getIdentityPublicKeychain(): string { + return this.getIdentityPrivateKeychain().neutered().toBase58() + } + + static getNodeFromBitcoinKeychain(keychain: HDNode, addressIndex: number, + chainType: string = EXTERNAL_ADDRESS): HDNode { + let chain + if (chainType === EXTERNAL_ADDRESS) { + chain = 0 + } else if (chainType === CHANGE_ADDRESS) { + chain = 1 + } else { + throw new Error('Invalid chain type') + } + + return keychain.derive(chain).derive(addressIndex) + } + + static getAddressFromBitcoinKeychain(keychain: HDNode, addressIndex: number, + chainType: string = EXTERNAL_ADDRESS): string { + return BlockstackWallet + .getNodeFromBitcoinKeychain(keychain, addressIndex, chainType) + .getAddress() + } + + static getAppsNode(identityNode: HDNode): HDNode { + return identityNode.deriveHardened(APPS_NODE_INDEX) + } + + static getAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { + const hash = crypto + .createHash('sha256') + .update(`${appDomain}${salt}`) + .digest('hex') + const appIndex = hashCode(hash) + const appNode = HDNode.fromBase58(appsNodeKey).deriveHardened(appIndex) + return getNodePrivateKey(appNode).slice(0, 64) + } + + getIdentityKeyPair(addressIndex: number, alwaysUncompressed: ?boolean = false): IdentityKeyPair { + const identityNode = this.getIdentityAddressNode(addressIndex) + + const address = identityNode.getAddress() + let identityKey = getNodePrivateKey(identityNode) + if (alwaysUncompressed && identityKey.length === 66) { + identityKey = identityKey.slice(0, 64) + } + + const identityKeyID = getNodePublicKey(identityNode) + const appsNodeKey = BlockstackWallet.getAppsNode(identityNode).toBase58() + const salt = this.getIdentitySalt() + const keyPair = { + key: identityKey, + keyID: identityKeyID, + address, appsNodeKey, salt + } + return keyPair + } +} From b485c786cb9622abe2d4556bc3104729d72474b9 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 17 Apr 2018 16:10:49 -0400 Subject: [PATCH 02/16] dont use HDNode in public facing interfaces --- src/wallet.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 852486112..0ff09fe76 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -64,7 +64,8 @@ export class BlockstackWallet { getBitcoinNode(addressIndex: number, chainType: string = EXTERNAL_ADDRESS): HDNode { return BlockstackWallet.getNodeFromBitcoinKeychain( - this.getBitcoinPrivateKeychain(), addressIndex, chainType) + this.getBitcoinPrivateKeychain().toBase58(), + addressIndex, chainType) } getIdentityAddressNode(identityIndex: number): HDNode { @@ -72,6 +73,10 @@ export class BlockstackWallet { return identityPrivateKeychain.deriveHardened(identityIndex) } + static getAppsNode(identityNode: HDNode): HDNode { + return identityNode.deriveHardened(APPS_NODE_INDEX) + } + getIdentitySalt(): string { const identityPrivateKeychain = this.getIdentityPrivateKeychain() const publicKeyHex = getNodePublicKey(identityPrivateKeychain) @@ -94,7 +99,7 @@ export class BlockstackWallet { return this.getIdentityPrivateKeychain().neutered().toBase58() } - static getNodeFromBitcoinKeychain(keychain: HDNode, addressIndex: number, + static getNodeFromBitcoinKeychain(keychainBase58: string, addressIndex: number, chainType: string = EXTERNAL_ADDRESS): HDNode { let chain if (chainType === EXTERNAL_ADDRESS) { @@ -104,21 +109,18 @@ export class BlockstackWallet { } else { throw new Error('Invalid chain type') } + const keychain = HDNode.fromBase58(keychainBase58) return keychain.derive(chain).derive(addressIndex) } - static getAddressFromBitcoinKeychain(keychain: HDNode, addressIndex: number, + static getAddressFromBitcoinKeychain(keychainBase58: string, addressIndex: number, chainType: string = EXTERNAL_ADDRESS): string { return BlockstackWallet - .getNodeFromBitcoinKeychain(keychain, addressIndex, chainType) + .getNodeFromBitcoinKeychain(keychainBase58, addressIndex, chainType) .getAddress() } - static getAppsNode(identityNode: HDNode): HDNode { - return identityNode.deriveHardened(APPS_NODE_INDEX) - } - static getAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { const hash = crypto .createHash('sha256') From 5384bdf7576d21d67b7f3cd775411d6e21a917c7 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 17 Apr 2018 17:09:38 -0400 Subject: [PATCH 03/16] comments for the _intended_ public functions of the wallet object --- src/wallet.js | 87 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 0ff09fe76..87dfd4206 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -41,13 +41,38 @@ function getNodePublicKey(hdNode): string { return hdNode.keyPair.getPublicKeyBuffer().toString('hex') } +/** + * The BlockstackWallet class manages the hierarchical derivation + * paths for a standard blockstack client wallet. This includes paths + * for bitcoin payment address, blockstack identity addresses, blockstack + * application specific addresses. + */ export class BlockstackWallet { rootNode: HDNode - constructor(seed: Buffer) { - this.rootNode = HDNode.fromSeedBuffer(seed) + constructor(rootNode: HDNode) { + this.rootNode = rootNode } + /** + * Initialize a blockstack wallet + * @param {Buffer} seed - the input seed for initializing the root node + * of the hierarchical wallet + * @return {BlockstackWallet} the constructed wallet + */ + static fromSeedBuffer(seed: Buffer): BlockstackWallet { + return new BlockstackWallet(HDNode.fromSeedBuffer(seed)) + } + + /** + * Initialize a blockstack wallet + * @param {string} keychain - the Base58 string used to initialize + * the root node of the hierarchical wallet + * @return {BlockstackWallet} the constructed wallet + */ + static fromBase58(keychain: string): BlockstackWallet { + return new BlockstackWallet(HDNode.fromBase58(keychain)) + } getIdentityPrivateKeychain(): HDNode { return this.rootNode @@ -77,24 +102,48 @@ export class BlockstackWallet { return identityNode.deriveHardened(APPS_NODE_INDEX) } + /** + * Get a salt for use with creating application specific addresses + * @return {String} the salt + */ getIdentitySalt(): string { const identityPrivateKeychain = this.getIdentityPrivateKeychain() const publicKeyHex = getNodePublicKey(identityPrivateKeychain) return crypto.createHash('sha256').update(publicKeyHex).digest('hex') } + /** + * Get a bitcoin receive address at a given index + * @param {number} addressIndex - the index of the address + * @return {String} address + */ getBitcoinAddress(addressIndex: number): string { return this.getBitcoinNode(addressIndex).getAddress() } + /** + * Get the private key hex-string for a given bitcoin receive address + * @param {number} addressIndex - the index of the address + * @return {String} the hex-string. this will be either 64 + * characters long to denote an uncompressed bitcoin address, or 66 + * characters long for a compressed bitcoin address. + */ getBitcoinPrivateKey(addressIndex: number): string { return getNodePrivateKey(this.getBitcoinNode(addressIndex)) } + /** + * Get the root node for the bitcoin public keychain + * @return {String} base58-encoding of the public node + */ getBitcoinPublicKeychain(): string { return this.getBitcoinPrivateKeychain().neutered().toBase58() } + /** + * Get the root node for the identity public keychain + * @return {String} base58-encoding of the public node + */ getIdentityPublicKeychain(): string { return this.getIdentityPrivateKeychain().neutered().toBase58() } @@ -114,6 +163,15 @@ export class BlockstackWallet { return keychain.derive(chain).derive(addressIndex) } + /** + * Get a bitcoin address given a base-58 encoded bitcoin node + * (usually called the account node) + * @param {String} keychainBase58 - base58-encoding of the node + * @param {number} addressIndex - index of the address to get + * @param {String} chainType - either 'EXTERNAL_ADDRESS' (for a + * "receive" address) or 'CHANGE_ADDRESS' + * @return {String} the address + */ static getAddressFromBitcoinKeychain(keychainBase58: string, addressIndex: number, chainType: string = EXTERNAL_ADDRESS): string { return BlockstackWallet @@ -121,6 +179,17 @@ export class BlockstackWallet { .getAddress() } + /** + * Get a ECDSA private key hex-string for an application-specific + * address. + * @param {String} appsNodeKey - the base58-encoded private key for + * applications node (the `appsNodeKey` return in getIdentityKeyPair()) + * @param {String} salt - a string, used to salt the + * application-specific addresses + * @param {String} appDomain - the appDomain to generate a key for + * @return {String} the private key hex-string. this will be a 64 + * character string + */ static getAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { const hash = crypto .createHash('sha256') @@ -131,6 +200,20 @@ export class BlockstackWallet { return getNodePrivateKey(appNode).slice(0, 64) } + /** + * Get the keypair information for a given identity index. This + * information is used to obtain the private key for an identity address + * and derive application specific keys for that address. + * @param {number} addressIndex - the identity index + * @param {boolean} alwaysUncompressed - if true, always return a + * private-key hex string corresponding to the uncompressed address + * @return {Object} an IdentityKeyPair type object with keys: + * .key {String} - the private key hex-string + * .keyID {String} - the public key hex-string + * .address {String} - the identity address + * .appsNodeKey {String} - the base-58 encoding of the applications node + * .salt {String} - the salt used for creating app-specific addresses + */ getIdentityKeyPair(addressIndex: number, alwaysUncompressed: ?boolean = false): IdentityKeyPair { const identityNode = this.getIdentityAddressNode(addressIndex) From 3d425db81ee15cf8893a2a5d70983c30362f82b7 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 17 Apr 2018 18:13:34 -0400 Subject: [PATCH 04/16] added unit tests --- tests/unitTests/src/index.js | 5 +- tests/unitTests/src/unitTestsWallet.js | 67 ++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/unitTests/src/unitTestsWallet.js diff --git a/tests/unitTests/src/index.js b/tests/unitTests/src/index.js index 95609c816..ecc36bc3e 100644 --- a/tests/unitTests/src/index.js +++ b/tests/unitTests/src/index.js @@ -4,7 +4,8 @@ import { runProofsUnitTests } from './unitTestsProofs' import { runUtilsTests } from './unitTestsUtils' import { runEncryptionTests } from './unitTestsEncryption' import { runStorageTests } from './unitTestsStorage' -import { runOperationsTests } from './unitTestsOperations' +import { runOperationsTests } from './unitTestsOperations' +import { runWalletTests } from './unitTestsWallet' // Utils tests runUtilsTests() @@ -26,3 +27,5 @@ runStorageTests() // Operations Tests runOperationsTests() + +runWalletTests() diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js new file mode 100644 index 000000000..95ecfaa5b --- /dev/null +++ b/tests/unitTests/src/unitTestsWallet.js @@ -0,0 +1,67 @@ +import test from 'tape-promise/tape' + +import { + BlockstackWallet +} from '../../../lib/wallet' + +export function runWalletTests() { + const testSeedHex = 'f17a104387a5b9c67d7c1c17a1a4724a16fdf830e5bbd6fdd214c0e08d9530aeb' + + 'dd82b89f79dd437c6e9631ee0e3a8bf1a798921bea5528f7213861598ae82ea' + const testSeedB58 = 'xprv9s21ZrQH143K2CAwLa4tExWuD7SFXfobGmrrEv2oNK2T7xNeDhP9TzjMJQCok' + + '8LtGVCC2YnnS6oqCpZhLrg47aDUHSApjCHBEuTrdpipBDp' + const identityXPUB = 'xpub6AbghT45LYjE6By2mnYQHzcMbpeCwoHFFTCZak74P7pDoh372EA8Mm18oNSH' + + 'PeMyBWoMdr8ZFK3gXYYYjHszxvabSS7AH5FX5KaJMe6D1cB' + const bitcoinXPUB = 'xpub6BmWvbzfwJMy4nxkWeHmxsJghoEa1gBBimGStKj36hsaZz6VGkXVnwig3cPeU' + + 'm69UZ6TwePZRVKrzpBTc4a2CECMwVFhNo5vhEDie1KYsCj' + const bitcoinAddress = '1QU3Q5CAXAbfKBg52wWYUjhBEcfBy8bUR' + + const identityKeyPairs = [ + { address: '1E3DgiNVoRQH32VW6T6USsAgcLroquV9xy', + appsNodeKey: 'xprvA1bXJqMaKqHFnYB3LyLmtJMXgpCKisknF2EuVBrNs6UkvR3U4W2vtdEK9' + + 'ESFx82YoX6Xi491prYxxbhFDhEjyRTsjdjFkhPPhRQQQbz92Qh', + key: 'd15b27a6ee8d03fce15ed2a4dbe7fa9c815f579b8c9d3216b17e34453001d382', + keyID: '0371807cd3c27d0432001964e98df7d1891a95eb7898f1ec1f04441068c8f0c780', + salt: 'e61f9eb10842fc3e237fba6319947de93fb630df963342914339b96790563a5a' }, + { address: '1LXzzDwbERa58j5yxGhnMzXRqmQ7VvRgp2', + appsNodeKey: 'xprvA27uFVTAx5ysXnsN8k37NtfKjaTyUXV7BZpKos9F46pto1RoinJXT2e1b' + + 'ndpbUAzGYBXywDqgGzFahjjn6CHzp28QwPpoWkDo7KUiFM8m1c', + key: '7ca8429187ffebd3338df6d52a5ae61b4a11dc841dfc85a36917a4b84f2867f7', + keyID: '03e383deae2bf5c012201cfd6055553df9af2faa25d9c10621e0320715f874977f', + salt: 'e61f9eb10842fc3e237fba6319947de93fb630df963342914339b96790563a5a' }, + { address: '1MrxgFwM5togyBu33D1mVhmvwow6aad4yh', + appsNodeKey: 'xprvA2E794MSWMUyXQpG5FpXggAWHqoUtETNGRsT6YXzhB9w4grfrPUBHDryh' + + 'T797Zfyt3oTw13VmgtnezzxyZRYpMNUxEQ7gU8ovX3oBALrNhn', + key: '71fd05726002fba53eb7aa96d2a88509993a1defc9a244bc1a6463cc08b6577b', + keyID: '02ba6e095fd2022e4a232c13546e660f8b08df8a1591705ebc2f71d0de34d5c8e5', + salt: 'e61f9eb10842fc3e237fba6319947de93fb630df963342914339b96790563a5a' }, + { address: '16GoKCtovu6a5qf2ufzZzrMJ4jofVDhagz', + appsNodeKey: 'xprv9zyD1NBWffvSp5iWVkeUW7kPRsMwUMdd17pmAZHNg4ijVHnx4JaW7bQf' + + 'NJjvjZSq9LA3NqYsGfwHVuvBiJi5iPTRYCntahTFsggoW4HtT6y', + key: '4925cc9d9d286c9ab5013618c67beea7e105b156ad481c2fcc26342d0ee661d9', + keyID: '03b26b91d716c4aa2e1b1bd526b7151f897a01c6d2bc4140a10e2f0758971cbc98', + salt: 'e61f9eb10842fc3e237fba6319947de93fb630df963342914339b96790563a5a' } + ] + + const expectedAppPrivateKey = 'b21aaf76b684cc1b6bf8c48bcec5df1adb68a7a6970e66c86fc0e86e09b4d244' + + const wallets = [BlockstackWallet.fromSeedBuffer(Buffer.from(testSeedHex, 'hex')), + BlockstackWallet.fromBase58(testSeedB58)] + wallets + .forEach((wallet) => { + test('wallet matches browser 0.26.2 implementation', (t) => { + t.plan(5) + t.equals(wallet.getIdentityPublicKeychain(), identityXPUB, 'id xpub is correct') + t.equals(wallet.getBitcoinPublicKeychain(), bitcoinXPUB, 'btc xpub is correct') + t.equals(wallet.getBitcoinAddress(0), bitcoinAddress, 'btc address correct') + t.deepEquals( + [0, 1, 2, 3].map(index => wallet.getIdentityKeyPair(index, true)), + identityKeyPairs, 'keypairs generated correctly') + const idKeyPair = wallet.getIdentityKeyPair(0, false) + t.equals(BlockstackWallet.getAppPrivateKey(idKeyPair.appsNodeKey, + idKeyPair.salt, + 'https://blockstack-todos.appartisan.com'), + expectedAppPrivateKey, + 'blockstack-todos app private key correct') + }) + }) +} From 7b5b3d79e0a7f4925218ef220b1c722e6c8fe33f Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Mon, 23 Apr 2018 15:15:58 -0400 Subject: [PATCH 05/16] add changelog entry for wallet functions --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3a273d25..6cdd93ed1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- The `BlockstackWallet` class in `blockstack.js` supports generating private keys + and addresses within the hierarchical derivation scheme used by the Blockstack + Browser and supported by the Blockstack ecosystem. - `network.BlockstackNetwork.getDefaultBurnAddress()` method to get the default burn address regardless of whether or not the code runs in regtest or mainnet. - `network.BlockstackNetwork.getNamespacePrice()` method to get the price of a namespace. From aa1ace58607b51a539d050ca56c185f4bbc71207 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Thu, 17 May 2018 16:09:44 -0400 Subject: [PATCH 06/16] add a long derivation path that encodes all the bytes from the sha256 hash --- src/wallet.js | 39 +++++++++++++++++++++++++- tests/unitTests/src/unitTestsWallet.js | 18 ++++++++---- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 87dfd4206..9df1483bf 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -190,7 +190,7 @@ export class BlockstackWallet { * @return {String} the private key hex-string. this will be a 64 * character string */ - static getAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { + static getLegacyAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { const hash = crypto .createHash('sha256') .update(`${appDomain}${salt}`) @@ -200,6 +200,43 @@ export class BlockstackWallet { return getNodePrivateKey(appNode).slice(0, 64) } + /** + * Get a ECDSA private key hex-string for an application-specific + * address. + * @param {String} appsNodeKey - the base58-encoded private key for + * applications node (the `appsNodeKey` return in getIdentityKeyPair()) + * @param {String} salt - a string, used to salt the + * application-specific addresses + * @param {String} appDomain - the appDomain to generate a key for + * @return {String} the private key hex-string. this will be a 64 + * character string + */ + static getAppPrivateKey(appsNodeKey: string, salt: string, appDomain: string): string { + const hash = crypto + .createHash('sha256') + .update(`${appDomain}${salt}`) + .digest('hex') + const appIndexHexes = [] + // note: there's hardcoded numbers here, precisely because I want this + // code to be very specific to the derivation paths we expect. + if (hash.length !== 64) { + throw new Error(`Unexpected app-domain hash length of ${hash.length}`) + } + for (let i = 0; i < 11; i++) { // split the hash into 3-byte chunks + // because child nodes can only be up to 2^31, + // and we shouldn't deal in partial bytes. + appIndexHexes.push(hash.slice(i * 6, i * 6 + 6)) + } + let appNode = HDNode.fromBase58(appsNodeKey) + appIndexHexes.forEach((hex) => { + if (hex.length > 6) { + throw new Error('Invalid hex string length') + } + appNode = appNode.deriveHardened(parseInt(hex, 16)) + }) + return getNodePrivateKey(appNode).slice(0, 64) + } + /** * Get the keypair information for a given identity index. This * information is used to obtain the private key for an identity address diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js index 95ecfaa5b..327940a1d 100644 --- a/tests/unitTests/src/unitTestsWallet.js +++ b/tests/unitTests/src/unitTestsWallet.js @@ -42,14 +42,17 @@ export function runWalletTests() { salt: 'e61f9eb10842fc3e237fba6319947de93fb630df963342914339b96790563a5a' } ] - const expectedAppPrivateKey = 'b21aaf76b684cc1b6bf8c48bcec5df1adb68a7a6970e66c86fc0e86e09b4d244' + const expectedLegacyAppSK = 'b21aaf76b684cc1b6bf8c48bcec5df1adb68a7a6970e66c86fc0e86e09b4d244' + // I derived the following expected App SK by manually computing the derivation path from the + // sha256 output. + const expectedNewAppSK = '3168aefff6aa53959a002112821384c41f39f538c0e8727a798bb40beb62ca5e' const wallets = [BlockstackWallet.fromSeedBuffer(Buffer.from(testSeedHex, 'hex')), BlockstackWallet.fromBase58(testSeedB58)] wallets .forEach((wallet) => { test('wallet matches browser 0.26.2 implementation', (t) => { - t.plan(5) + t.plan(6) t.equals(wallet.getIdentityPublicKeychain(), identityXPUB, 'id xpub is correct') t.equals(wallet.getBitcoinPublicKeychain(), bitcoinXPUB, 'btc xpub is correct') t.equals(wallet.getBitcoinAddress(0), bitcoinAddress, 'btc address correct') @@ -57,10 +60,15 @@ export function runWalletTests() { [0, 1, 2, 3].map(index => wallet.getIdentityKeyPair(index, true)), identityKeyPairs, 'keypairs generated correctly') const idKeyPair = wallet.getIdentityKeyPair(0, false) + t.equals(BlockstackWallet.getLegacyAppPrivateKey(idKeyPair.appsNodeKey, + idKeyPair.salt, + 'https://blockstack-todos.appartisan.com'), + expectedLegacyAppSK, + 'blockstack-todos app private key correct') t.equals(BlockstackWallet.getAppPrivateKey(idKeyPair.appsNodeKey, - idKeyPair.salt, - 'https://blockstack-todos.appartisan.com'), - expectedAppPrivateKey, + 'potato potato', + 'carrot carrot carrot'), + expectedNewAppSK, 'blockstack-todos app private key correct') }) }) From ca8dd6a8ab5531da4a10dd0a621e02efd208782b Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 22 May 2018 17:33:56 -0400 Subject: [PATCH 07/16] adding code and tests for the alternative new derivation path --- src/wallet.js | 48 ++++++++++++++++++++++++++ tests/unitTests/src/unitTestsWallet.js | 48 ++++++++++++++++++++++++-- 2 files changed, 94 insertions(+), 2 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 9df1483bf..8e2dd1516 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -41,6 +41,21 @@ function getNodePublicKey(hdNode): string { return hdNode.keyPair.getPublicKeyBuffer().toString('hex') } +export function getFirst62BitsAsNumbers(buff: Buffer): Array { + // now, lets use the leading 62 bits to get two indexes + // start with two ints --> 64 bits + const firstInt32 = buff.readInt32BE(0) + const secondInt32 = buff.readInt32BE(4) + // zero-left shift of one gives us the first 31 bits (as a number < 2^31) + const firstIndex = firstInt32 >>> 1 + // save the 32nd bit + const secondIndexLeadingBit = (firstInt32 & 1) + // zero-left shift of two gives us the next 30 bits, then we add + // that 32nd bit to the front. + const secondIndex = (secondInt32 >>> 2) | (secondIndexLeadingBit << 30) + return [firstIndex, secondIndex] +} + /** * The BlockstackWallet class manages the hierarchical derivation * paths for a standard blockstack client wallet. This includes paths @@ -200,6 +215,39 @@ export class BlockstackWallet { return getNodePrivateKey(appNode).slice(0, 64) } + + /** + * Get a ECDSA private key hex-string for an application-specific + * address, this address will use the first 62 bits of the SHA256 hash + * of `appDomain,sig("app-node-salt" with appsNodeKey)` + * @param {String} appsNodeKey - the base58-encoded private key for + * applications node (the `appsNodeKey` return in getIdentityKeyPair()) + * @param {String} salt - a string, used to salt the + * application-specific addresses + * @param {String} appDomain - the appDomain to generate a key for + * @return {String} the private key hex-string. this will be a 64 + * character string + */ + static getAppPrivateKeySecretSalt(appsNodeKey: string, salt: string, appDomain: string): string { + const appsNode = HDNode.fromBase58(appsNodeKey) + + // we will *sign* the input salt, which creates a secret value + const saltHash = crypto.createHash('sha256') + .update(`app-key-salt:${salt}`) + .digest() + const secretValue = appsNode.sign(saltHash).toDER().toString('hex') + + const hash = crypto + .createHash('sha256') + .update(`${appDomain},${secretValue}`) + .digest() + + const indexes = getFirst62BitsAsNumbers(hash) + const appNode = appsNode.deriveHardened(indexes[0]).deriveHardened(indexes[1]) + return getNodePrivateKey(appNode).slice(0, 64) + } + + /** * Get a ECDSA private key hex-string for an application-specific * address. diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js index 327940a1d..864f62d61 100644 --- a/tests/unitTests/src/unitTestsWallet.js +++ b/tests/unitTests/src/unitTestsWallet.js @@ -1,10 +1,49 @@ import test from 'tape-promise/tape' import { - BlockstackWallet + BlockstackWallet, getFirst62BitsAsNumbers } from '../../../lib/wallet' -export function runWalletTests() { +function padZeros(s, len) { + if (s.length > len) { + throw new Error(`Bad input, too long: ${s}!`) + } + if (s.length !== len) { + const pads = '0'.repeat(len - s.length) + return `${pads}${s}` + } + return s +} + +function tests62BitMath() { + test('bit manipulation in app private keys', (t) => { + const testSet = [ + { input: 'ffffffffffffffffff', + output: ['7fffffff', '7fffffff'] }, + { input: 'fffffffffffffffc', + output: ['7fffffff', '7fffffff'] }, + { input: 'aaaaaaab55555554', + output: ['55555555', '55555555'] }, + { input: '266f7d5ffffffffc', + output: ['1337beaf', '7fffffff'] }] + testSet.forEach((testData) => { + const numbers = getFirst62BitsAsNumbers(Buffer.from(testData.input, 'hex')) + t.ok(numbers[0] < Math.pow(2, 31), 'Index must be less than 2^31') + t.ok(numbers[1] < Math.pow(2, 31), 'Index must be less than 2^31') + t.equal(numbers[0], parseInt(testData.output[0], 16)) + t.equal(numbers[1], parseInt(testData.output[1], 16)) + const inputBinary = padZeros(parseInt(testData.input.slice(0, 8), 16).toString(2), 32) + + padZeros(parseInt(testData.input.slice(8, 16), 16).toString(2), 32) + const outputBinary = padZeros(parseInt(testData.output[0], 16).toString(2), 31) + + padZeros(parseInt(testData.output[1], 16).toString(2), 31) + t.equal(outputBinary, inputBinary.slice(0, 62), 'bit strings should match') + }) + + t.end() + }) +} + +function testsBlockstackWallet() { const testSeedHex = 'f17a104387a5b9c67d7c1c17a1a4724a16fdf830e5bbd6fdd214c0e08d9530aeb' + 'dd82b89f79dd437c6e9631ee0e3a8bf1a798921bea5528f7213861598ae82ea' const testSeedB58 = 'xprv9s21ZrQH143K2CAwLa4tExWuD7SFXfobGmrrEv2oNK2T7xNeDhP9TzjMJQCok' + @@ -73,3 +112,8 @@ export function runWalletTests() { }) }) } + +export function runWalletTests() { + testsBlockstackWallet() + tests62BitMath() +} From ec40c63bd66f7157afb3ebf0729d36705b2eeef2 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 22 May 2018 19:03:38 -0400 Subject: [PATCH 08/16] more bit twiddling tests --- tests/unitTests/src/unitTestsWallet.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js index 864f62d61..c8277607e 100644 --- a/tests/unitTests/src/unitTestsWallet.js +++ b/tests/unitTests/src/unitTestsWallet.js @@ -24,6 +24,12 @@ function tests62BitMath() { output: ['7fffffff', '7fffffff'] }, { input: 'aaaaaaab55555554', output: ['55555555', '55555555'] }, + { input: 'aaaaaaa955555554', + output: ['55555554', '55555555'] }, + { input: '2aaaaaa955555554', + output: ['15555554', '55555555'] }, + { input: '2aaaaaa955555556', + output: ['15555554', '55555555'] }, { input: '266f7d5ffffffffc', output: ['1337beaf', '7fffffff'] }] testSet.forEach((testData) => { @@ -36,7 +42,8 @@ function tests62BitMath() { padZeros(parseInt(testData.input.slice(8, 16), 16).toString(2), 32) const outputBinary = padZeros(parseInt(testData.output[0], 16).toString(2), 31) + padZeros(parseInt(testData.output[1], 16).toString(2), 31) - t.equal(outputBinary, inputBinary.slice(0, 62), 'bit strings should match') + t.equal(outputBinary, inputBinary.slice(0, 62), + `bit strings should match for ${testData.input}`) }) t.end() From 23469e6bd25a4dee98b899c4b7714a0fb1ffa3dd Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Tue, 3 Jul 2018 07:51:50 -0500 Subject: [PATCH 09/16] only implement the long derivation path for the new apps key --- src/wallet.js | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 8e2dd1516..500d52c14 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -215,39 +215,6 @@ export class BlockstackWallet { return getNodePrivateKey(appNode).slice(0, 64) } - - /** - * Get a ECDSA private key hex-string for an application-specific - * address, this address will use the first 62 bits of the SHA256 hash - * of `appDomain,sig("app-node-salt" with appsNodeKey)` - * @param {String} appsNodeKey - the base58-encoded private key for - * applications node (the `appsNodeKey` return in getIdentityKeyPair()) - * @param {String} salt - a string, used to salt the - * application-specific addresses - * @param {String} appDomain - the appDomain to generate a key for - * @return {String} the private key hex-string. this will be a 64 - * character string - */ - static getAppPrivateKeySecretSalt(appsNodeKey: string, salt: string, appDomain: string): string { - const appsNode = HDNode.fromBase58(appsNodeKey) - - // we will *sign* the input salt, which creates a secret value - const saltHash = crypto.createHash('sha256') - .update(`app-key-salt:${salt}`) - .digest() - const secretValue = appsNode.sign(saltHash).toDER().toString('hex') - - const hash = crypto - .createHash('sha256') - .update(`${appDomain},${secretValue}`) - .digest() - - const indexes = getFirst62BitsAsNumbers(hash) - const appNode = appsNode.deriveHardened(indexes[0]).deriveHardened(indexes[1]) - return getNodePrivateKey(appNode).slice(0, 64) - } - - /** * Get a ECDSA private key hex-string for an application-specific * address. From 02feb70f4af161c1b8bd4d77bcbebce1eebccf7c Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Wed, 4 Jul 2018 09:40:39 -0500 Subject: [PATCH 10/16] remove dead code paths --- src/wallet.js | 15 -------- tests/unitTests/src/unitTestsWallet.js | 51 +------------------------- 2 files changed, 2 insertions(+), 64 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 500d52c14..9df1483bf 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -41,21 +41,6 @@ function getNodePublicKey(hdNode): string { return hdNode.keyPair.getPublicKeyBuffer().toString('hex') } -export function getFirst62BitsAsNumbers(buff: Buffer): Array { - // now, lets use the leading 62 bits to get two indexes - // start with two ints --> 64 bits - const firstInt32 = buff.readInt32BE(0) - const secondInt32 = buff.readInt32BE(4) - // zero-left shift of one gives us the first 31 bits (as a number < 2^31) - const firstIndex = firstInt32 >>> 1 - // save the 32nd bit - const secondIndexLeadingBit = (firstInt32 & 1) - // zero-left shift of two gives us the next 30 bits, then we add - // that 32nd bit to the front. - const secondIndex = (secondInt32 >>> 2) | (secondIndexLeadingBit << 30) - return [firstIndex, secondIndex] -} - /** * The BlockstackWallet class manages the hierarchical derivation * paths for a standard blockstack client wallet. This includes paths diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js index c8277607e..f4c758fc6 100644 --- a/tests/unitTests/src/unitTestsWallet.js +++ b/tests/unitTests/src/unitTestsWallet.js @@ -1,54 +1,8 @@ import test from 'tape-promise/tape' import { - BlockstackWallet, getFirst62BitsAsNumbers -} from '../../../lib/wallet' - -function padZeros(s, len) { - if (s.length > len) { - throw new Error(`Bad input, too long: ${s}!`) - } - if (s.length !== len) { - const pads = '0'.repeat(len - s.length) - return `${pads}${s}` - } - return s -} - -function tests62BitMath() { - test('bit manipulation in app private keys', (t) => { - const testSet = [ - { input: 'ffffffffffffffffff', - output: ['7fffffff', '7fffffff'] }, - { input: 'fffffffffffffffc', - output: ['7fffffff', '7fffffff'] }, - { input: 'aaaaaaab55555554', - output: ['55555555', '55555555'] }, - { input: 'aaaaaaa955555554', - output: ['55555554', '55555555'] }, - { input: '2aaaaaa955555554', - output: ['15555554', '55555555'] }, - { input: '2aaaaaa955555556', - output: ['15555554', '55555555'] }, - { input: '266f7d5ffffffffc', - output: ['1337beaf', '7fffffff'] }] - testSet.forEach((testData) => { - const numbers = getFirst62BitsAsNumbers(Buffer.from(testData.input, 'hex')) - t.ok(numbers[0] < Math.pow(2, 31), 'Index must be less than 2^31') - t.ok(numbers[1] < Math.pow(2, 31), 'Index must be less than 2^31') - t.equal(numbers[0], parseInt(testData.output[0], 16)) - t.equal(numbers[1], parseInt(testData.output[1], 16)) - const inputBinary = padZeros(parseInt(testData.input.slice(0, 8), 16).toString(2), 32) + - padZeros(parseInt(testData.input.slice(8, 16), 16).toString(2), 32) - const outputBinary = padZeros(parseInt(testData.output[0], 16).toString(2), 31) + - padZeros(parseInt(testData.output[1], 16).toString(2), 31) - t.equal(outputBinary, inputBinary.slice(0, 62), - `bit strings should match for ${testData.input}`) - }) - - t.end() - }) -} + BlockstackWallet +} from '../../../lib/' function testsBlockstackWallet() { const testSeedHex = 'f17a104387a5b9c67d7c1c17a1a4724a16fdf830e5bbd6fdd214c0e08d9530aeb' + @@ -122,5 +76,4 @@ function testsBlockstackWallet() { export function runWalletTests() { testsBlockstackWallet() - tests62BitMath() } From a42fe444eae45d131e0dd7749e689742785f5785 Mon Sep 17 00:00:00 2001 From: William O'Beirne Date: Tue, 17 Jul 2018 11:41:45 -0400 Subject: [PATCH 11/16] Add encryption and decryption to wallet. --- package-lock.json | 5432 ++++++++++---------- package.json | 3 + src/encryption.js | 135 +- src/index.js | 2 + src/utils.js | 2 +- src/wallet.js | 61 +- tests/unitTests/src/index.js | 1 + tests/unitTests/src/unitTestsEncryption.js | 69 +- tests/unitTests/src/unitTestsWallet.js | 4 +- 9 files changed, 3021 insertions(+), 2688 deletions(-) diff --git a/package-lock.json b/package-lock.json index 493d6316d..986abea9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,8 @@ "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "accepts": { @@ -20,7 +20,7 @@ "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -35,8 +35,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-html": { @@ -63,8 +63,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" }, "dependencies": { "micromatch": { @@ -73,19 +73,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } } } @@ -96,7 +96,7 @@ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" }, "dependencies": { "sprintf-js": { @@ -113,7 +113,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -161,9 +161,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert-plus": { @@ -210,21 +210,21 @@ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.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.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" }, "dependencies": { "ansi-regex": { @@ -246,8 +246,8 @@ "dev": true, "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "arr-diff": { @@ -257,7 +257,7 @@ "dev": true, "optional": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -287,9 +287,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-core": { @@ -298,25 +298,25 @@ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true, "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.0", - "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.7", - "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.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" } }, "babel-generator": { @@ -325,14 +325,14 @@ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "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.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-helpers": { @@ -341,8 +341,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -351,7 +351,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-register": { @@ -360,13 +360,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "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": { @@ -375,8 +375,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -385,11 +385,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.4" } }, "babel-traverse": { @@ -398,15 +398,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.9", - "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.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -415,10 +415,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.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -446,7 +446,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -457,9 +457,9 @@ "dev": true, "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" } }, "chalk": { @@ -468,11 +468,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chokidar": { @@ -482,15 +482,15 @@ "dev": true, "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" }, "dependencies": { "fsevents": { @@ -500,8 +500,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -518,8 +518,8 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -542,8 +542,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -594,7 +594,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -603,7 +603,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -612,7 +612,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -621,7 +621,7 @@ "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -657,7 +657,7 @@ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -684,7 +684,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -694,7 +694,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -750,7 +750,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -780,9 +780,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -797,10 +797,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -810,9 +810,9 @@ "dev": true, "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -822,14 +822,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { @@ -839,7 +839,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -857,12 +857,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -885,8 +885,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -902,10 +902,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -921,9 +921,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -932,8 +932,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -955,7 +955,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -985,14 +985,15 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "dev": true, + "optional": true }, "json-schema": { "version": "0.2.3", @@ -1008,7 +1009,7 @@ "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -1059,7 +1060,7 @@ "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -1068,7 +1069,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1100,17 +1101,17 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", + "detect-libc": "^1.0.2", "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -1120,8 +1121,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -1131,10 +1132,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "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": { @@ -1163,7 +1164,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -1187,8 +1188,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -1231,10 +1232,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -1252,13 +1253,13 @@ "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -1268,28 +1269,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "rimraf": { @@ -1298,7 +1299,7 @@ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -1334,7 +1335,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -1344,15 +1345,15 @@ "dev": true, "optional": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -1370,9 +1371,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" } }, "string_decoder": { @@ -1381,7 +1382,7 @@ "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -1397,7 +1398,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -1413,9 +1414,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -1425,14 +1426,14 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -1442,7 +1443,7 @@ "dev": true, "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -1452,7 +1453,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -1499,7 +1500,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -1552,7 +1553,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "escape-string-regexp": { @@ -1574,7 +1575,7 @@ "dev": true, "optional": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1584,7 +1585,7 @@ "dev": true, "optional": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "extglob": { @@ -1594,7 +1595,7 @@ "dev": true, "optional": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "filename-regex": { @@ -1611,11 +1612,11 @@ "dev": true, "optional": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "for-in": { @@ -1632,7 +1633,7 @@ "dev": true, "optional": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "fs.realpath": { @@ -1647,12 +1648,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -1662,8 +1663,8 @@ "dev": true, "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": { @@ -1672,7 +1673,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -1694,7 +1695,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "home-or-tmp": { @@ -1703,8 +1704,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "inflight": { @@ -1713,8 +1714,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1729,7 +1730,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "is-binary-path": { @@ -1739,7 +1740,7 @@ "dev": true, "optional": true, "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -1762,7 +1763,7 @@ "dev": true, "optional": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -1784,7 +1785,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -1793,7 +1794,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -1803,7 +1804,7 @@ "dev": true, "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -1860,7 +1861,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } }, "lodash": { @@ -1875,7 +1876,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "micromatch": { @@ -1885,19 +1886,19 @@ "dev": true, "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" } }, "minimatch": { @@ -1906,7 +1907,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1936,7 +1937,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "number-is-nan": { @@ -1952,8 +1953,8 @@ "dev": true, "optional": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -1962,7 +1963,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -1984,10 +1985,10 @@ "dev": true, "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" } }, "path-is-absolute": { @@ -2023,8 +2024,8 @@ "dev": true, "optional": 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": { @@ -2034,7 +2035,7 @@ "dev": true, "optional": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2044,7 +2045,7 @@ "dev": true, "optional": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } } } @@ -2056,7 +2057,7 @@ "dev": true, "optional": true, "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } } } @@ -2068,13 +2069,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -2084,10 +2085,10 @@ "dev": true, "optional": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "regenerator-runtime": { @@ -2103,7 +2104,7 @@ "dev": true, "optional": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { @@ -2131,7 +2132,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "set-immediate-shim": { @@ -2159,7 +2160,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "string_decoder": { @@ -2169,7 +2170,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -2178,7 +2179,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2220,9 +2221,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" }, "dependencies": { "chalk": { @@ -2231,11 +2232,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } } } @@ -2246,25 +2247,25 @@ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true, "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.0", - "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.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.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" }, "dependencies": { "babel-generator": { @@ -2273,14 +2274,14 @@ "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "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.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } } } @@ -2291,11 +2292,11 @@ "integrity": "sha1-UpNBn+NnLWZZjTJ9qWlFZ7pqXy8=", "dev": true, "requires": { - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash.assign": "4.2.0", - "lodash.pickby": "4.6.0" + "babel-traverse": "^6.0.20", + "babel-types": "^6.0.19", + "babylon": "^6.0.18", + "lodash.assign": "^4.0.0", + "lodash.pickby": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -2316,9 +2317,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-messages": { @@ -2327,7 +2328,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -2336,8 +2337,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-traverse": { @@ -2346,15 +2347,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.9", - "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.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -2363,10 +2364,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.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -2381,11 +2382,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "core-js": { @@ -2427,7 +2428,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "invariant": { @@ -2436,7 +2437,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "js-tokens": { @@ -2469,7 +2470,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "ms": { @@ -2490,7 +2491,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2513,14 +2514,14 @@ "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", "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.22.0", + "babel-types": "^6.25.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, "babel-helper-bindify-decorators": { @@ -2529,9 +2530,9 @@ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "dev": true, "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-builder-binary-assignment-operator-visitor": { @@ -2540,9 +2541,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "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": { @@ -2551,9 +2552,9 @@ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "dev": true, "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": { @@ -2562,10 +2563,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "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": { @@ -2574,10 +2575,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "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.4" } }, "babel-helper-explode-assignable-expression": { @@ -2586,9 +2587,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "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-explode-class": { @@ -2597,10 +2598,10 @@ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", "dev": true, "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -2609,11 +2610,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "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": { @@ -2622,8 +2623,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "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": { @@ -2632,8 +2633,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "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": { @@ -2642,8 +2643,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2652,9 +2653,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "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.4" } }, "babel-helper-remap-async-to-generator": { @@ -2663,11 +2664,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "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": { @@ -2676,12 +2677,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "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": { @@ -2690,8 +2691,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -2700,7 +2701,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -2709,7 +2710,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -2802,7 +2803,7 @@ "integrity": "sha1-038Mro5h7zkGAggzHZMbXmMNfF8=", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0" + "babel-plugin-syntax-dynamic-import": "^6.18.0" } }, "babel-plugin-transform-async-generator-functions": { @@ -2811,9 +2812,9 @@ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -2822,9 +2823,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "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-class-constructor-call": { @@ -2833,9 +2834,9 @@ "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", "dev": true, "requires": { - "babel-plugin-syntax-class-constructor-call": "6.18.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-class-properties": { @@ -2844,10 +2845,10 @@ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -2856,11 +2857,11 @@ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", "dev": true, "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-decorators-legacy": { @@ -2869,9 +2870,9 @@ "integrity": "sha1-dBtY9sW86eYCfgiC2cmU8E82aSU=", "dev": true, "requires": { - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-syntax-decorators": "^6.1.18", + "babel-runtime": "^6.2.0", + "babel-template": "^6.3.0" } }, "babel-plugin-transform-do-expressions": { @@ -2880,8 +2881,8 @@ "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", "dev": true, "requires": { - "babel-plugin-syntax-do-expressions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-do-expressions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -2890,7 +2891,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -2899,7 +2900,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -2908,11 +2909,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "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.4" } }, "babel-plugin-transform-es2015-classes": { @@ -2921,15 +2922,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "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": { @@ -2938,8 +2939,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "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": { @@ -2948,7 +2949,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -2957,8 +2958,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "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": { @@ -2967,7 +2968,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -2976,9 +2977,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "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": { @@ -2987,7 +2988,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -2996,9 +2997,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "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": { @@ -3007,10 +3008,10 @@ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "dev": true, "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": { @@ -3019,9 +3020,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "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": { @@ -3030,9 +3031,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "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": { @@ -3041,8 +3042,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "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": { @@ -3051,12 +3052,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "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": { @@ -3065,8 +3066,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "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": { @@ -3075,7 +3076,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3084,9 +3085,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "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": { @@ -3095,7 +3096,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -3104,7 +3105,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3113,9 +3114,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "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": { @@ -3124,9 +3125,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "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-export-extensions": { @@ -3135,8 +3136,8 @@ "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", "dev": true, "requires": { - "babel-plugin-syntax-export-extensions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -3145,8 +3146,8 @@ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "dev": true, "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-function-bind": { @@ -3155,8 +3156,8 @@ "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", "dev": true, "requires": { - "babel-plugin-syntax-function-bind": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-function-bind": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -3165,8 +3166,8 @@ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -3175,7 +3176,7 @@ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -3184,9 +3185,9 @@ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "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": { @@ -3195,8 +3196,8 @@ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "dev": true, "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": { @@ -3205,8 +3206,8 @@ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "dev": true, "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": { @@ -3215,7 +3216,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -3224,8 +3225,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -3234,9 +3235,9 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "babel-runtime": { @@ -3245,8 +3246,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "regenerator-runtime": { @@ -3277,36 +3278,36 @@ "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", "dev": true, "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.0", - "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": "2.11.3", - "invariant": "2.2.2", - "semver": "5.4.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": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-es2015": { @@ -3315,30 +3316,30 @@ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "dev": true, "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.0", - "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" }, "dependencies": { "ansi-regex": { @@ -3359,9 +3360,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-helper-call-delegate": { @@ -3370,10 +3371,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "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": { @@ -3382,10 +3383,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "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.4" } }, "babel-helper-function-name": { @@ -3394,11 +3395,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "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": { @@ -3407,8 +3408,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "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": { @@ -3417,8 +3418,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "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": { @@ -3427,8 +3428,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -3437,9 +3438,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "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.4" } }, "babel-helper-replace-supers": { @@ -3448,12 +3449,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "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-messages": { @@ -3462,7 +3463,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -3471,7 +3472,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -3480,7 +3481,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -3489,7 +3490,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -3498,11 +3499,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "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.4" } }, "babel-plugin-transform-es2015-classes": { @@ -3511,15 +3512,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "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": { @@ -3528,8 +3529,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "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": { @@ -3538,7 +3539,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -3547,8 +3548,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "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": { @@ -3557,7 +3558,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3566,9 +3567,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "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": { @@ -3577,7 +3578,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -3586,9 +3587,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "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": { @@ -3597,10 +3598,10 @@ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "dev": true, "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": { @@ -3609,9 +3610,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "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": { @@ -3620,9 +3621,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "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": { @@ -3631,8 +3632,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "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": { @@ -3641,12 +3642,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "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": { @@ -3655,8 +3656,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "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": { @@ -3665,7 +3666,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3674,9 +3675,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "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": { @@ -3685,7 +3686,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -3694,7 +3695,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3703,9 +3704,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "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-regenerator": { @@ -3714,7 +3715,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -3723,8 +3724,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-runtime": { @@ -3733,8 +3734,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3743,11 +3744,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.4" } }, "babel-traverse": { @@ -3756,15 +3757,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.9", - "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.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -3773,10 +3774,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.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3791,11 +3792,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "core-js": { @@ -3837,7 +3838,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "invariant": { @@ -3846,7 +3847,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "js-tokens": { @@ -3873,7 +3874,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "ms": { @@ -3906,9 +3907,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.7" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regexpu-core": { @@ -3917,9 +3918,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -3934,7 +3935,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "strip-ansi": { @@ -3943,7 +3944,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -3966,7 +3967,7 @@ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "dev": true, "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -3975,12 +3976,12 @@ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "dev": true, "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-preset-stage-0": { @@ -3989,9 +3990,9 @@ "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", "dev": true, "requires": { - "babel-plugin-transform-do-expressions": "6.22.0", - "babel-plugin-transform-function-bind": "6.22.0", - "babel-preset-stage-1": "6.24.1" + "babel-plugin-transform-do-expressions": "^6.22.0", + "babel-plugin-transform-function-bind": "^6.22.0", + "babel-preset-stage-1": "^6.24.1" } }, "babel-preset-stage-1": { @@ -4000,9 +4001,9 @@ "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", "dev": true, "requires": { - "babel-plugin-transform-class-constructor-call": "6.24.1", - "babel-plugin-transform-export-extensions": "6.22.0", - "babel-preset-stage-2": "6.24.1" + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" } }, "babel-preset-stage-2": { @@ -4011,10 +4012,10 @@ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -4023,11 +4024,11 @@ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -4036,13 +4037,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "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": { @@ -4051,8 +4052,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -4061,11 +4062,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.4" } }, "babel-traverse": { @@ -4074,15 +4075,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.9", - "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.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -4091,10 +4092,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.4", + "to-fast-properties": "^1.0.3" } }, "babelify": { @@ -4103,8 +4104,8 @@ "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", "dev": true, "requires": { - "babel-core": "6.26.0", - "object-assign": "4.1.1" + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" } }, "babylon": { @@ -4131,13 +4132,13 @@ "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "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.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": { "isobject": { @@ -4153,7 +4154,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "base64url": { @@ -4167,7 +4168,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bech32": { @@ -4186,12 +4187,24 @@ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, + "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.1.1" + "safe-buffer": "^5.0.1" } }, "bitcoin-ops": { @@ -4204,21 +4217,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.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ecurve": "1.0.6", - "merkle-lib": "2.0.10", - "pushdata-bitcoin": "1.0.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.1", - "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" } }, "blue-tape": { @@ -4227,7 +4240,7 @@ "integrity": "sha1-dYHQTAc5XJXEJrLtbR7bRUp2uSs=", "dev": true, "requires": { - "tape": "4.8.0" + "tape": ">=2.0.0 <5.0.0" } }, "bn.js": { @@ -4241,10 +4254,10 @@ "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", "dev": true, "requires": { - "continuable-cache": "0.3.1", - "error": "7.0.2", - "raw-body": "1.1.7", - "safe-json-parse": "1.0.1" + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" } }, "body-parser": { @@ -4254,15 +4267,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" }, "dependencies": { "bytes": { @@ -4295,7 +4308,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "brace-expansion": { @@ -4304,7 +4317,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4314,9 +4327,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -4347,53 +4360,53 @@ "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "assert": "1.4.1", - "browser-pack": "6.0.2", - "browser-resolve": "1.11.2", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", - "defined": "1.0.0", - "deps-sort": "2.0.0", - "domain-browser": "1.1.7", - "duplexer2": "0.1.4", - "events": "1.1.1", - "glob": "7.1.2", - "has": "1.0.1", - "htmlescape": "1.1.1", - "https-browserify": "0.0.1", - "inherits": "2.0.3", - "insert-module-globals": "7.0.1", - "labeled-stream-splicer": "2.0.0", - "module-deps": "4.1.1", - "os-browserify": "0.1.2", - "parents": "1.0.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "read-only-stream": "2.0.0", - "readable-stream": "2.3.3", - "resolve": "1.4.0", - "shasum": "1.0.2", - "shell-quote": "1.6.1", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "0.10.31", - "subarg": "1.0.0", - "syntax-error": "1.3.0", - "through2": "2.0.3", - "timers-browserify": "1.4.2", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "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.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "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": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" }, "dependencies": { "JSONStream": { @@ -4402,8 +4415,8 @@ "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", "dev": true, "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "acorn": { @@ -4436,9 +4449,9 @@ "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -4456,7 +4469,7 @@ "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" } }, "balanced-match": { @@ -4483,7 +4496,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4499,11 +4512,11 @@ "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "defined": "1.0.0", - "through2": "2.0.3", - "umd": "3.0.1" + "JSONStream": "^1.0.3", + "combine-source-map": "~0.7.1", + "defined": "^1.0.0", + "through2": "^2.0.0", + "umd": "^3.0.0" } }, "browser-resolve": { @@ -4529,12 +4542,12 @@ "integrity": "sha512-WYCMOT/PtGTlpOKFht0YJFYcPy6pLCR98CtWfzK13zoynLlBMvAdEMSRGmgnJCw2M2j/5qxBkinZQFobieM8dQ==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "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": { @@ -4543,9 +4556,9 @@ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "dev": true, "requires": { - "browserify-aes": "1.0.8", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -4554,9 +4567,9 @@ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -4565,8 +4578,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -4575,13 +4588,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "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": { @@ -4590,7 +4603,7 @@ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "buffer": { @@ -4599,9 +4612,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-xor": { @@ -4628,8 +4641,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "combine-source-map": { @@ -4638,10 +4651,10 @@ "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", "dev": true, "requires": { - "convert-source-map": "1.1.3", - "inline-source-map": "0.6.2", - "lodash.memoize": "3.0.4", - "source-map": "0.5.7" + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" } }, "concat-map": { @@ -4656,9 +4669,9 @@ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "readable-stream": { @@ -4667,12 +4680,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } } } @@ -4683,7 +4696,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -4710,8 +4723,8 @@ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -4720,10 +4733,10 @@ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -4732,12 +4745,12 @@ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "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" } }, "crypto-browserify": { @@ -4746,16 +4759,16 @@ "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", "dev": true, "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5" + "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" } }, "date-now": { @@ -4776,10 +4789,10 @@ "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "shasum": "1.0.2", - "subarg": "1.0.0", - "through2": "2.0.3" + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" } }, "des.js": { @@ -4788,8 +4801,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "detective": { @@ -4798,8 +4811,8 @@ "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", "dev": true, "requires": { - "acorn": "4.0.13", - "defined": "1.0.0" + "acorn": "^4.0.3", + "defined": "^1.0.0" } }, "diffie-hellman": { @@ -4808,9 +4821,9 @@ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "domain-browser": { @@ -4825,7 +4838,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.2" } }, "events": { @@ -4840,8 +4853,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "fs.realpath": { @@ -4862,12 +4875,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has": { @@ -4876,7 +4889,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "htmlescape": { @@ -4909,8 +4922,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4925,7 +4938,7 @@ "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "~0.5.3" } }, "insert-module-globals": { @@ -4934,14 +4947,14 @@ "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "concat-stream": "1.5.2", - "is-buffer": "1.1.5", - "lexical-scope": "1.2.0", - "process": "0.11.10", - "through2": "2.0.3", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "combine-source-map": "~0.7.1", + "concat-stream": "~1.5.1", + "is-buffer": "^1.1.0", + "lexical-scope": "^1.2.0", + "process": "~0.11.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" } }, "is-buffer": { @@ -4962,7 +4975,7 @@ "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "jsonify": { @@ -4983,9 +4996,9 @@ "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", "dev": true, "requires": { - "inherits": "2.0.3", - "isarray": "0.0.1", - "stream-splicer": "2.0.0" + "inherits": "^2.0.1", + "isarray": "~0.0.1", + "stream-splicer": "^2.0.0" }, "dependencies": { "isarray": { @@ -5002,7 +5015,7 @@ "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", "dev": true, "requires": { - "astw": "2.2.0" + "astw": "^2.0.0" } }, "lodash.memoize": { @@ -5017,8 +5030,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "minimalistic-assert": { @@ -5033,7 +5046,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5048,21 +5061,21 @@ "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "browser-resolve": "1.11.2", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.5.0", - "duplexer2": "0.1.4", - "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.3", - "resolve": "1.4.0", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" } }, "once": { @@ -5071,7 +5084,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-browserify": { @@ -5092,7 +5105,7 @@ "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", "dev": true, "requires": { - "path-platform": "0.11.15" + "path-platform": "~0.11.15" } }, "parse-asn1": { @@ -5101,11 +5114,11 @@ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "dev": true, "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.0.8", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "path-browserify": { @@ -5132,11 +5145,11 @@ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "process": { @@ -5157,11 +5170,11 @@ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -5188,7 +5201,7 @@ "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "read-only-stream": { @@ -5197,7 +5210,7 @@ "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.2" } }, "readable-stream": { @@ -5206,13 +5219,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" }, "dependencies": { "string_decoder": { @@ -5221,7 +5234,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -5232,7 +5245,7 @@ "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "ripemd160": { @@ -5241,8 +5254,8 @@ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "dev": true, "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "sha.js": { @@ -5251,8 +5264,8 @@ "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shasum": { @@ -5261,8 +5274,8 @@ "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", "dev": true, "requires": { - "json-stable-stringify": "0.0.1", - "sha.js": "2.4.9" + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" } }, "shell-quote": { @@ -5271,10 +5284,10 @@ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "source-map": { @@ -5289,8 +5302,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-combiner2": { @@ -5299,8 +5312,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "stream-http": { @@ -5309,11 +5322,11 @@ "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-splicer": { @@ -5322,8 +5335,8 @@ "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "string_decoder": { @@ -5338,7 +5351,7 @@ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.1.0" } }, "syntax-error": { @@ -5347,7 +5360,7 @@ "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" } }, "through": { @@ -5362,8 +5375,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timers-browserify": { @@ -5372,7 +5385,7 @@ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "dev": true, "requires": { - "process": "0.11.10" + "process": "~0.11.0" } }, "to-arraybuffer": { @@ -5469,8 +5482,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000808", - "electron-to-chromium": "1.3.33" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "bs58": { @@ -5478,7 +5491,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": { @@ -5486,8 +5499,8 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.1.tgz", "integrity": "sha512-okRQiWc5FJuA2VOwQ1hB7Sf0MyEFg/EwRN12h4b8HrJoGkZ3xq1CGjkaAfYloLcZyqixQnO5mhPpN6IcHSplVg==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.1.3" + "bs58": "^4.0.0", + "create-hash": "^1.1.0" } }, "buffer-shims": { @@ -5514,15 +5527,15 @@ "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "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": { @@ -5562,9 +5575,9 @@ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "deep-eql": "0.1.3", - "type-detect": "1.0.0" + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" }, "dependencies": { "type-detect": { @@ -5581,9 +5594,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -5592,7 +5605,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -5601,7 +5614,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -5635,22 +5648,22 @@ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.9.2", - "lodash.assignin": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.filter": "4.6.0", - "lodash.flatten": "4.4.0", - "lodash.foreach": "4.5.0", - "lodash.map": "4.6.0", - "lodash.merge": "4.6.0", - "lodash.pick": "4.4.0", - "lodash.reduce": "4.6.0", - "lodash.reject": "4.6.0", - "lodash.some": "4.6.0" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" } }, "chokidar": { @@ -5659,15 +5672,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "cipher-base": { @@ -5675,8 +5688,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "class-utils": { @@ -5685,11 +5698,11 @@ "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -5698,7 +5711,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -5707,9 +5720,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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" } }, "isobject": { @@ -5732,9 +5745,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { @@ -5761,9 +5774,9 @@ "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", "dev": true, "requires": { - "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "through2": "2.0.3" + "inherits": "^2.0.1", + "process-nextick-args": "^1.0.6", + "through2": "^2.0.1" } }, "co": { @@ -5789,8 +5802,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -5799,7 +5812,7 @@ "integrity": "sha1-wSYRB66y8pTr/+ye2eytUppgl+0=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -5813,7 +5826,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "comma-separated-tokens": { @@ -5849,9 +5862,9 @@ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "content-disposition": { @@ -5913,10 +5926,10 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -5924,12 +5937,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "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" } }, "cryptiles": { @@ -5937,7 +5950,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -5945,7 +5958,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } } } @@ -5955,10 +5968,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-what": { @@ -5976,7 +5989,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -6023,7 +6036,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.1" + "is-descriptor": "^1.0.0" } }, "defined": { @@ -6055,7 +6068,7 @@ "integrity": "sha512-/hhdqdQc5thGrqzjyO/pz76lDZ5GSuAs6goxOaKTsvPk7HNnzAyFN5lyHgqpX4/s1i66K8qMGj+VhA9504x7DQ==", "dev": true, "requires": { - "repeat-string": "1.6.1" + "repeat-string": "^1.5.4" } }, "detect-indent": { @@ -6064,7 +6077,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detective": { @@ -6073,8 +6086,8 @@ "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", "dev": true, "requires": { - "acorn": "4.0.13", - "defined": "1.0.0" + "acorn": "^4.0.3", + "defined": "^1.0.0" } }, "diff": { @@ -6089,8 +6102,8 @@ "integrity": "sha1-V92stHMkrl9Y0swNqIbbTOnutxg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "diff": "1.4.0" + "ansi-styles": "^2.0.1", + "diff": "^1.3.2" } }, "doctrine-temporary-fork": { @@ -6099,8 +6112,8 @@ "integrity": "sha1-QAFahn6yfnWybIKLcVJPE3+J+fA=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "documentation": { @@ -6109,55 +6122,55 @@ "integrity": "sha1-moqajjiWm/1J008137J/HHW2R8A=", "dev": true, "requires": { - "ansi-html": "0.0.7", - "babel-core": "6.26.0", + "ansi-html": "^0.0.7", + "babel-core": "^6.17.0", "babel-generator": "6.25.0", "babel-plugin-system-import-transformer": "3.1.0", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-preset-es2015": "6.24.1", - "babel-preset-react": "6.24.1", - "babel-preset-stage-0": "6.24.1", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babelify": "7.3.0", - "babylon": "6.18.0", - "chalk": "2.3.0", - "chokidar": "1.7.0", - "concat-stream": "1.6.0", - "disparity": "2.0.0", + "babel-plugin-transform-decorators-legacy": "^1.3.4", + "babel-preset-es2015": "^6.16.0", + "babel-preset-react": "^6.16.0", + "babel-preset-stage-0": "^6.16.0", + "babel-traverse": "^6.16.0", + "babel-types": "^6.16.0", + "babelify": "^7.3.0", + "babylon": "^6.17.2", + "chalk": "^2.0.0", + "chokidar": "^1.2.0", + "concat-stream": "^1.5.0", + "disparity": "^2.0.0", "doctrine-temporary-fork": "2.0.0-alpha-allowarrayindex", - "get-comments": "1.0.1", - "get-port": "3.2.0", - "git-url-parse": "6.2.2", + "get-comments": "^1.0.1", + "get-port": "^3.1.0", + "git-url-parse": "^6.0.1", "github-slugger": "1.1.3", - "glob": "7.1.2", - "globals-docs": "2.3.0", - "highlight.js": "9.12.0", - "js-yaml": "3.10.0", - "lodash": "4.17.4", - "mdast-util-inject": "1.1.0", - "micromatch": "3.1.4", - "mime": "1.4.1", + "glob": "^7.0.0", + "globals-docs": "^2.3.0", + "highlight.js": "^9.1.0", + "js-yaml": "^3.8.4", + "lodash": "^4.11.1", + "mdast-util-inject": "^1.1.0", + "micromatch": "^3.0.0", + "mime": "^1.3.4", "module-deps-sortable": "4.0.6", - "parse-filepath": "1.0.1", - "pify": "3.0.0", - "read-pkg-up": "2.0.0", - "remark": "8.0.0", + "parse-filepath": "^1.0.1", + "pify": "^3.0.0", + "read-pkg-up": "^2.0.0", + "remark": "^8.0.0", "remark-html": "6.0.1", - "remark-toc": "4.0.1", + "remark-toc": "^4.0.0", "remote-origin-url": "0.4.0", - "shelljs": "0.7.8", - "stream-array": "1.1.2", - "strip-json-comments": "2.0.1", - "tiny-lr": "1.0.5", - "unist-builder": "1.0.2", - "unist-util-visit": "1.1.3", - "vfile": "2.2.0", - "vfile-reporter": "4.0.0", - "vfile-sort": "2.1.0", - "vinyl": "2.1.0", - "vinyl-fs": "2.4.4", - "yargs": "6.6.0" + "shelljs": "^0.7.5", + "stream-array": "^1.1.0", + "strip-json-comments": "^2.0.0", + "tiny-lr": "^1.0.3", + "unist-builder": "^1.0.0", + "unist-util-visit": "^1.0.1", + "vfile": "^2.0.0", + "vfile-reporter": "^4.0.0", + "vfile-sort": "^2.0.0", + "vinyl": "^2.0.0", + "vinyl-fs": "^2.3.1", + "yargs": "^6.0.1" }, "dependencies": { "module-deps-sortable": { @@ -6166,20 +6179,20 @@ "integrity": "sha1-ElGkuixEqS32mJvQKdoSGk8hCbA=", "dev": true, "requires": { - "JSONStream": "1.3.1", - "browser-resolve": "1.11.2", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.5.0", - "duplexer2": "0.1.4", - "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.3", - "resolve": "1.5.0", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" }, "dependencies": { "concat-stream": { @@ -6188,9 +6201,9 @@ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "readable-stream": { @@ -6199,12 +6212,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } } } @@ -6224,8 +6237,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -6251,7 +6264,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -6259,8 +6272,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "duplexer2": { @@ -6269,7 +6282,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.2" } }, "duplexify": { @@ -6278,10 +6291,10 @@ "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", "dev": true, "requires": { - "end-of-stream": "1.4.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "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": { @@ -6290,7 +6303,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecurve": { @@ -6298,8 +6311,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.1" + "bigi": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -6319,13 +6332,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.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "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" }, "dependencies": { "bn.js": { @@ -6343,8 +6356,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hmac-drbg": { @@ -6352,9 +6365,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "inherits": { @@ -6392,7 +6405,7 @@ "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "entities": { @@ -6406,8 +6419,8 @@ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "dev": true, "requires": { - "string-template": "0.2.1", - "xtend": "4.0.1" + "string-template": "~0.2.1", + "xtend": "~4.0.0" } }, "error-ex": { @@ -6416,7 +6429,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { @@ -6442,39 +6455,39 @@ "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=", "dev": true, "requires": { - "chalk": "1.1.3", - "concat-stream": "1.6.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "es6-map": "0.1.5", - "escope": "3.6.0", - "espree": "3.5.1", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "1.3.1", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.5", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.16.1", - "is-resolvable": "1.0.0", - "js-yaml": "3.10.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "optionator": "0.8.2", - "path-is-absolute": "1.0.1", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.6.1", - "strip-json-comments": "1.0.4", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" + "chalk": "^1.1.3", + "concat-stream": "^1.4.6", + "debug": "^2.1.1", + "doctrine": "^1.2.2", + "es6-map": "^0.1.3", + "escope": "^3.6.0", + "espree": "^3.1.6", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^1.1.1", + "glob": "^7.0.3", + "globals": "^9.2.0", + "ignore": "^3.1.2", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "optionator": "^0.8.1", + "path-is-absolute": "^1.0.0", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.6.0", + "strip-json-comments": "~1.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" }, "dependencies": { "acorn": { @@ -6489,7 +6502,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -6530,7 +6543,7 @@ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "array-union": { @@ -6539,7 +6552,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -6566,7 +6579,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6576,7 +6589,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -6591,11 +6604,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "circular-json": { @@ -6610,7 +6623,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "cli-width": { @@ -6637,9 +6650,9 @@ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "core-util-is": { @@ -6654,7 +6667,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.31" + "es5-ext": "^0.10.9" } }, "debug": { @@ -6678,13 +6691,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "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" } }, "doctrine": { @@ -6693,8 +6706,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "es5-ext": { @@ -6703,8 +6716,8 @@ "integrity": "sha1-e7k4yVp/G59ygJLcCcQe3MOY7v4=", "dev": true, "requires": { - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.1", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { @@ -6713,9 +6726,9 @@ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" } }, "es6-map": { @@ -6724,12 +6737,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -6738,11 +6751,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -6751,8 +6764,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -6761,10 +6774,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-string-regexp": { @@ -6779,10 +6792,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -6791,8 +6804,8 @@ "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", "dev": true, "requires": { - "acorn": "5.1.2", - "acorn-jsx": "3.0.1" + "acorn": "^5.1.1", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -6807,8 +6820,8 @@ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { @@ -6829,8 +6842,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" + "d": "1", + "es5-ext": "~0.10.14" } }, "exit-hook": { @@ -6851,8 +6864,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "file-entry-cache": { @@ -6861,8 +6874,8 @@ "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "flat-cache": { @@ -6871,10 +6884,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "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" } }, "fs.realpath": { @@ -6895,7 +6908,7 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "glob": { @@ -6904,12 +6917,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globals": { @@ -6924,12 +6937,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "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" } }, "graceful-fs": { @@ -6944,7 +6957,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "ignore": { @@ -6965,8 +6978,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6981,19 +6994,19 @@ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.4", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "is-fullwidth-code-point": { @@ -7002,7 +7015,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-my-json-valid": { @@ -7011,10 +7024,10 @@ "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-path-cwd": { @@ -7029,7 +7042,7 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7038,7 +7051,7 @@ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-property": { @@ -7053,7 +7066,7 @@ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", "dev": true, "requires": { - "tryit": "1.0.3" + "tryit": "^1.0.1" } }, "isarray": { @@ -7068,8 +7081,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "json-stable-stringify": { @@ -7078,7 +7091,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "jsonify": { @@ -7099,8 +7112,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lodash": { @@ -7115,7 +7128,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7163,7 +7176,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7178,12 +7191,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "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": { @@ -7222,7 +7235,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pluralize": { @@ -7255,13 +7268,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readline2": { @@ -7270,8 +7283,8 @@ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", "mute-stream": "0.0.5" } }, @@ -7281,8 +7294,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve-from": { @@ -7297,8 +7310,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "rimraf": { @@ -7307,7 +7320,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -7316,7 +7329,7 @@ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.3.0" } }, "rx-lite": { @@ -7349,9 +7362,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" } }, "string_decoder": { @@ -7360,7 +7373,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -7369,7 +7382,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -7390,12 +7403,12 @@ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.4", + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", "slice-ansi": "0.0.4", - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -7416,8 +7429,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" } }, "strip-ansi": { @@ -7426,7 +7439,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7455,7 +7468,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "typedarray": { @@ -7470,7 +7483,7 @@ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "util-deprecate": { @@ -7497,7 +7510,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xtend": { @@ -7514,7 +7527,7 @@ "integrity": "sha1-ZwgXDVA0tXnVKRP+Sd7i9/7H2JQ=", "dev": true, "requires": { - "eslint-config-airbnb-base": "3.0.1" + "eslint-config-airbnb-base": "^3.0.0" }, "dependencies": { "eslint-config-airbnb-base": { @@ -7525,28 +7538,45 @@ } } }, + "eslint-plugin-flowtype": { + "version": "2.50.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.0.tgz", + "integrity": "sha512-10FnBXCp8odYcpUFXGAh+Zko7py0hUWutTd3BN/R9riukH360qNPLYPR3/xV9eu9K7OJDjJrsflBnL6RwxFnlw==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + }, + "dependencies": { + "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 + } + } + }, "eslint-plugin-import": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-1.16.0.tgz", "integrity": "sha1-svoH68xTUE0PKkR3WC7Iv/GHG58=", "dev": true, "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", - "doctrine": "1.3.0", - "es6-map": "0.1.5", - "es6-set": "0.1.5", - "eslint-import-resolver-node": "0.2.3", - "has": "1.0.1", - "lodash.cond": "4.5.2", - "lodash.endswith": "4.2.1", - "lodash.find": "4.6.0", - "lodash.findindex": "4.6.0", - "minimatch": "3.0.4", - "object-assign": "4.1.1", - "pkg-dir": "1.0.0", - "pkg-up": "1.0.0" + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.2.0", + "doctrine": "1.3.x", + "es6-map": "^0.1.3", + "es6-set": "^0.1.4", + "eslint-import-resolver-node": "^0.2.0", + "has": "^1.0.1", + "lodash.cond": "^4.3.0", + "lodash.endswith": "^4.0.1", + "lodash.find": "^4.3.0", + "lodash.findindex": "^4.3.0", + "minimatch": "^3.0.3", + "object-assign": "^4.0.1", + "pkg-dir": "^1.0.0", + "pkg-up": "^1.0.0" }, "dependencies": { "balanced-match": { @@ -7561,7 +7591,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -7589,7 +7619,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.31" + "es5-ext": "^0.10.9" } }, "debug": { @@ -7607,8 +7637,8 @@ "integrity": "sha1-E+dWgrVVGEJCdvfBc3g0Vu+RPSY=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "es5-ext": { @@ -7617,8 +7647,8 @@ "integrity": "sha1-e7k4yVp/G59ygJLcCcQe3MOY7v4=", "dev": true, "requires": { - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.1", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { @@ -7627,9 +7657,9 @@ "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" } }, "es6-map": { @@ -7638,12 +7668,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -7652,11 +7682,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -7665,8 +7695,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" + "d": "1", + "es5-ext": "~0.10.14" } }, "eslint-import-resolver-node": { @@ -7675,9 +7705,9 @@ "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", "dev": true, "requires": { - "debug": "2.6.9", - "object-assign": "4.1.1", - "resolve": "1.4.0" + "debug": "^2.2.0", + "object-assign": "^4.0.1", + "resolve": "^1.1.6" } }, "esutils": { @@ -7692,8 +7722,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" + "d": "1", + "es5-ext": "~0.10.14" } }, "find-up": { @@ -7702,8 +7732,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "function-bind": { @@ -7718,7 +7748,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "isarray": { @@ -7757,7 +7787,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "ms": { @@ -7778,7 +7808,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pinkie": { @@ -7793,7 +7823,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -7802,7 +7832,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pkg-up": { @@ -7811,7 +7841,7 @@ "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "resolve": { @@ -7820,7 +7850,7 @@ "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -7831,9 +7861,9 @@ "integrity": "sha1-2ihKAWwYiec2mBgCF+LrmIqYurU=", "dev": true, "requires": { - "damerau-levenshtein": "1.0.4", - "jsx-ast-utils": "1.4.1", - "object-assign": "4.1.1" + "damerau-levenshtein": "^1.0.0", + "jsx-ast-utils": "^1.0.0", + "object-assign": "^4.0.1" }, "dependencies": { "damerau-levenshtein": { @@ -7862,8 +7892,8 @@ "integrity": "sha1-fbBo4fVIf2hx5N7vNqOBwwPqwWE=", "dev": true, "requires": { - "doctrine": "1.5.0", - "jsx-ast-utils": "1.4.1" + "doctrine": "^1.2.2", + "jsx-ast-utils": "^1.2.1" }, "dependencies": { "doctrine": { @@ -7872,8 +7902,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "esutils": { @@ -7920,7 +7950,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -7929,7 +7959,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "express": { @@ -7938,36 +7968,36 @@ "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.0", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.2", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.1", "serve-static": "1.13.1", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.3.1", + "type-is": "~1.6.15", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "extend": { @@ -7982,7 +8012,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "extglob": { @@ -7991,7 +8021,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -8010,7 +8040,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.6.5" + "websocket-driver": ">=0.5.1" } }, "fetch-mock": { @@ -8019,9 +8049,9 @@ "integrity": "sha512-eWUo2KI4sRGnRu8tKELCBfasALM5BfvrCxdI7J02j3eUM9mf+uYzJkURA0PSn/29JVapVrYFm+z+9XijXu1PdA==", "dev": true, "requires": { - "glob-to-regexp": "0.3.0", - "node-fetch": "1.7.3", - "path-to-regexp": "1.7.0" + "glob-to-regexp": "^0.3.0", + "node-fetch": "^1.3.3", + "path-to-regexp": "^1.7.0" }, "dependencies": { "isarray": { @@ -8053,8 +8083,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -8063,11 +8093,11 @@ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -8077,12 +8107,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-up": { @@ -8091,7 +8121,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "first-chunk-stream": { @@ -8118,7 +8148,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -8131,9 +8161,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "formatio": { @@ -8142,7 +8172,7 @@ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", "dev": true, "requires": { - "samsam": "1.3.0" + "samsam": "1.x" } }, "forwarded": { @@ -8157,7 +8187,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -8185,8 +8215,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -8203,8 +8233,8 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -8227,8 +8257,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -8279,7 +8309,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -8288,7 +8318,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -8297,7 +8327,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -8306,7 +8336,7 @@ "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -8342,7 +8372,7 @@ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -8369,7 +8399,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -8379,7 +8409,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -8435,7 +8465,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -8465,9 +8495,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -8482,10 +8512,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -8495,9 +8525,9 @@ "dev": true, "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -8507,14 +8537,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { @@ -8524,7 +8554,7 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -8542,12 +8572,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -8570,8 +8600,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -8587,10 +8617,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -8606,9 +8636,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -8617,8 +8647,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -8640,7 +8670,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -8670,7 +8700,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -8694,7 +8724,7 @@ "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -8745,7 +8775,7 @@ "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -8754,7 +8784,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -8786,17 +8816,17 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", + "detect-libc": "^1.0.2", "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -8806,8 +8836,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -8817,10 +8847,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "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": { @@ -8849,7 +8879,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -8873,8 +8903,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -8917,10 +8947,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -8938,13 +8968,13 @@ "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -8954,28 +8984,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "rimraf": { @@ -8984,7 +9014,7 @@ "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -9020,7 +9050,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -9030,15 +9060,15 @@ "dev": true, "optional": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -9056,9 +9086,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" } }, "string_decoder": { @@ -9067,7 +9097,7 @@ "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -9083,7 +9113,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -9099,9 +9129,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -9111,14 +9141,14 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -9128,7 +9158,7 @@ "dev": true, "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -9138,7 +9168,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -9185,7 +9215,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -9225,7 +9255,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "git-up": { @@ -9234,8 +9264,8 @@ "integrity": "sha1-JL4EnJ8LGTSB0t9OAWoWUwpfTvQ=", "dev": true, "requires": { - "is-ssh": "1.3.0", - "parse-url": "1.3.11" + "is-ssh": "^1.3.0", + "parse-url": "^1.3.0" } }, "git-url-parse": { @@ -9244,7 +9274,7 @@ "integrity": "sha1-vkkCThS4SHVTQ2tFcri0OVMvqHE=", "dev": true, "requires": { - "git-up": "2.0.8" + "git-up": "^2.0.0" } }, "github-slugger": { @@ -9253,7 +9283,7 @@ "integrity": "sha1-MUpudZoYwrDMV2DVEsy6tUnFSac=", "dev": true, "requires": { - "emoji-regex": "6.1.1" + "emoji-regex": ">=6.0.0 <=6.1.1" } }, "glob": { @@ -9262,12 +9292,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -9276,8 +9306,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -9286,7 +9316,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-stream": { @@ -9295,14 +9325,14 @@ "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", "dev": true, "requires": { - "extend": "3.0.1", - "glob": "5.0.15", - "glob-parent": "3.1.0", - "micromatch": "2.3.11", - "ordered-read-streams": "0.3.0", - "through2": "0.6.5", - "to-absolute-glob": "0.1.1", - "unique-stream": "2.2.1" + "extend": "^3.0.0", + "glob": "^5.0.3", + "glob-parent": "^3.0.0", + "micromatch": "^2.3.7", + "ordered-read-streams": "^0.3.0", + "through2": "^0.6.0", + "to-absolute-glob": "^0.1.1", + "unique-stream": "^2.0.2" }, "dependencies": { "glob": { @@ -9311,11 +9341,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -9324,8 +9354,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" } }, "is-extglob": { @@ -9340,7 +9370,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } }, "isarray": { @@ -9355,19 +9385,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" }, "dependencies": { "is-extglob": { @@ -9382,7 +9412,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -9393,10 +9423,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -9411,8 +9441,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } } } @@ -9429,8 +9459,8 @@ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "dev": true, "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" } }, "globals": { @@ -9457,11 +9487,11 @@ "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", "dev": true, "requires": { - "convert-source-map": "1.5.0", - "graceful-fs": "4.1.11", - "strip-bom": "2.0.0", - "through2": "2.0.3", - "vinyl": "1.2.0" + "convert-source-map": "^1.1.1", + "graceful-fs": "^4.1.2", + "strip-bom": "^2.0.0", + "through2": "^2.0.0", + "vinyl": "^1.0.0" }, "dependencies": { "clone": { @@ -9488,7 +9518,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "vinyl": { @@ -9497,8 +9527,8 @@ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "dev": true, "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -9514,8 +9544,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.2.3", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { @@ -9523,10 +9553,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" } }, "co": { @@ -9539,7 +9569,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "jsonify": { @@ -9555,7 +9585,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -9570,9 +9600,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -9589,8 +9619,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": { @@ -9599,7 +9629,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9608,7 +9638,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9619,7 +9649,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9629,7 +9659,7 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" }, "dependencies": { "inherits": { @@ -9644,8 +9674,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hast-util-is-element": { @@ -9660,7 +9690,7 @@ "integrity": "sha1-xDmFLZ23/1VOzWvpZDWmqCdK3jI=", "dev": true, "requires": { - "xtend": "4.0.1" + "xtend": "^4.0.1" } }, "hast-util-to-html": { @@ -9669,17 +9699,17 @@ "integrity": "sha1-iCyZhJ5AEw6ZHAQuRW1FPZXDbP8=", "dev": true, "requires": { - "ccount": "1.0.2", - "comma-separated-tokens": "1.0.4", - "hast-util-is-element": "1.0.0", - "hast-util-whitespace": "1.0.0", - "html-void-elements": "1.0.2", - "kebab-case": "1.0.0", - "property-information": "3.2.0", - "space-separated-tokens": "1.1.1", - "stringify-entities": "1.3.1", - "unist-util-is": "2.1.1", - "xtend": "4.0.1" + "ccount": "^1.0.0", + "comma-separated-tokens": "^1.0.1", + "hast-util-is-element": "^1.0.0", + "hast-util-whitespace": "^1.0.0", + "html-void-elements": "^1.0.0", + "kebab-case": "^1.0.0", + "property-information": "^3.1.0", + "space-separated-tokens": "^1.0.0", + "stringify-entities": "^1.0.1", + "unist-util-is": "^2.0.0", + "xtend": "^4.0.1" } }, "hast-util-whitespace": { @@ -9693,10 +9723,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.0.2" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "highlight.js": { @@ -9716,8 +9746,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -9737,12 +9767,12 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" }, "dependencies": { "core-util-is": { @@ -9770,13 +9800,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -9784,7 +9814,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "util-deprecate": { @@ -9803,7 +9833,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" }, "dependencies": { "setprototypeof": { @@ -9819,11 +9849,29 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, + "iced-error": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/iced-error/-/iced-error-0.0.12.tgz", + "integrity": "sha1-4KhhRigXzwzpdLE/ymEtOg1dEL4=" + }, + "iced-lock": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/iced-lock/-/iced-lock-1.1.0.tgz", + "integrity": "sha1-YRbvHKs6zW5rEIk7snumIv0/3nI=", + "requires": { + "iced-runtime": "^1.0.0" + } + }, + "iced-runtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/iced-runtime/-/iced-runtime-1.0.3.tgz", + "integrity": "sha1-LU9PuZmreqVDCxk8d6f85BGDGc4=" + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -9836,8 +9884,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -9863,7 +9911,7 @@ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -9884,8 +9932,8 @@ "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "dev": true, "requires": { - "is-relative": "0.2.1", - "is-windows": "0.2.0" + "is-relative": "^0.2.1", + "is-windows": "^0.2.0" } }, "is-accessor-descriptor": { @@ -9894,7 +9942,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-alphabetical": { @@ -9915,8 +9963,8 @@ "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=", "dev": true, "requires": { - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" } }, "is-arrayish": { @@ -9931,7 +9979,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -9946,7 +9994,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -9955,7 +10003,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-decimal": { @@ -9970,9 +10018,9 @@ "integrity": "sha1-LGAjWZveLenV0si5qdlAggNrbvI=", "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": { @@ -9995,7 +10043,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -10016,7 +10064,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -10025,7 +10073,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -10034,7 +10082,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-hexadecimal": { @@ -10049,7 +10097,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-object": { @@ -10064,7 +10112,7 @@ "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", "dev": true, "requires": { - "is-number": "3.0.0" + "is-number": "^3.0.0" }, "dependencies": { "is-number": { @@ -10073,7 +10121,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -10090,7 +10138,7 @@ "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -10119,7 +10167,7 @@ "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "dev": true, "requires": { - "is-unc-path": "0.1.2" + "is-unc-path": "^0.1.1" } }, "is-ssh": { @@ -10128,7 +10176,7 @@ "integrity": "sha1-6+oRaaJhTaOSpjdANmw84EnY3/Y=", "dev": true, "requires": { - "protocols": "1.4.5" + "protocols": "^1.1.0" } }, "is-stream": { @@ -10148,7 +10196,7 @@ "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "dev": true, "requires": { - "unc-path-regex": "0.1.2" + "unc-path-regex": "^0.1.0" } }, "is-utf8": { @@ -10201,8 +10249,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" }, "dependencies": { "encoding": { @@ -10210,7 +10258,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "iconv-lite": { @@ -10228,8 +10276,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "whatwg-fetch": { @@ -10256,8 +10304,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -10287,7 +10335,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -10317,11 +10365,11 @@ "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-0.7.7.tgz", "integrity": "sha512-IuW4Q7gj9Hm/ZSjT7U5PEI1ZS8sfPj2ZOV9+5kEo4iVYVSjfs25wPvNUpq/Mkmdmz3VIe1KWIBwIBv2M+ML1Fw==", "requires": { - "asn1.js": "4.10.1", - "base64url": "2.0.0", - "elliptic": "6.4.0", - "key-encoder": "1.1.6", - "validator": "7.2.0" + "asn1.js": "^4.9.1", + "base64url": "^2.0.0", + "elliptic": "^6.3.2", + "key-encoder": "^1.1.6", + "validator": "^7.0.0" } }, "jsprim": { @@ -10352,9 +10400,9 @@ "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-1.1.6.tgz", "integrity": "sha1-ATVYLNPQp+t5LZTso4e2gejloq0=", "requires": { - "asn1.js": "2.2.1", - "bn.js": "3.3.0", - "elliptic": "5.2.1" + "asn1.js": "^2.2.0", + "bn.js": "^3.1.2", + "elliptic": "^5.1.0" }, "dependencies": { "asn1.js": { @@ -10362,9 +10410,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-2.2.1.tgz", "integrity": "sha1-yLpN1o6EQxKIEmIwyyBFvfqfv+E=", "requires": { - "bn.js": "2.2.0", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^2.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" }, "dependencies": { "bn.js": { @@ -10384,10 +10432,10 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-5.2.1.tgz", "integrity": "sha1-+ilLZWPG3bybo9yFlGh66ECFjxA=", "requires": { - "bn.js": "3.3.0", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "inherits": "2.0.3" + "bn.js": "^3.1.1", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" } } } @@ -10398,7 +10446,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -10407,7 +10455,7 @@ "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", "dev": true, "requires": { - "set-getter": "0.1.0" + "set-getter": "^0.1.0" } }, "lazystream": { @@ -10416,7 +10464,7 @@ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.5" } }, "lcid": { @@ -10425,7 +10473,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "livereload-js": { @@ -10440,10 +10488,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -10460,8 +10508,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" } }, "lodash": { @@ -10560,7 +10608,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "map-cache": { @@ -10575,7 +10623,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "markdown-escapes": { @@ -10596,8 +10644,8 @@ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { "hash-base": { @@ -10606,8 +10654,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "inherits": { @@ -10624,8 +10672,8 @@ "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", "dev": true, "requires": { - "unist-util-modify-children": "1.1.1", - "unist-util-visit": "1.1.3" + "unist-util-modify-children": "^1.0.0", + "unist-util-visit": "^1.1.0" } }, "mdast-util-definitions": { @@ -10634,7 +10682,7 @@ "integrity": "sha1-Zz9Dd8PiPT3nr3pP4iFMDiIcWsc=", "dev": true, "requires": { - "unist-util-visit": "1.1.3" + "unist-util-visit": "^1.0.0" } }, "mdast-util-inject": { @@ -10643,7 +10691,7 @@ "integrity": "sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU=", "dev": true, "requires": { - "mdast-util-to-string": "1.0.4" + "mdast-util-to-string": "^1.0.0" } }, "mdast-util-to-hast": { @@ -10652,17 +10700,17 @@ "integrity": "sha1-8Rbovz2ncrpaOXqS2rCQ9bqRyqA=", "dev": true, "requires": { - "collapse-white-space": "1.0.3", - "detab": "2.0.1", - "mdast-util-definitions": "1.2.2", - "normalize-uri": "1.1.0", + "collapse-white-space": "^1.0.0", + "detab": "^2.0.0", + "mdast-util-definitions": "^1.2.0", + "normalize-uri": "^1.0.0", "trim": "0.0.1", - "trim-lines": "1.1.0", - "unist-builder": "1.0.2", - "unist-util-generated": "1.1.1", - "unist-util-position": "3.0.0", - "unist-util-visit": "1.1.3", - "xtend": "4.0.1" + "trim-lines": "^1.0.0", + "unist-builder": "^1.0.1", + "unist-util-generated": "^1.1.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^1.1.0", + "xtend": "^4.0.1" } }, "mdast-util-to-string": { @@ -10677,9 +10725,9 @@ "integrity": "sha1-sdLLI7+wH4Evp7Vb/+iwqL7fbyE=", "dev": true, "requires": { - "github-slugger": "1.1.3", - "mdast-util-to-string": "1.0.4", - "unist-util-visit": "1.1.3" + "github-slugger": "^1.1.1", + "mdast-util-to-string": "^1.0.2", + "unist-util-visit": "^1.1.0" } }, "media-typer": { @@ -10700,7 +10748,7 @@ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "dev": true, "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "merkle-lib": { @@ -10720,19 +10768,19 @@ "integrity": "sha512-kFRtviKYoAJT+t7HggMl0tBFGNAKLw/S7N+CO9qfEQyisob1Oy4pao+geRbkyeEd+V9aOkvZ4mhuyPvI/q9Sfg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.0", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "extglob": "2.0.2", - "fragment-cache": "0.2.1", - "kind-of": "6.0.1", - "nanomatch": "1.2.5", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.0", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.0", + "nanomatch": "^1.2.5", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -10753,17 +10801,17 @@ "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "expand-brackets": { @@ -10772,13 +10820,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -10787,7 +10835,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10798,14 +10846,14 @@ "integrity": "sha512-I0+eZBH+jFGL8F5BnIz2ON2nKCjTS3AS3H/5PeSmCp7UVC70Ym8IhdRiQly2juKYQ//f7z1aj1BRpQniFJoU1w==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "fill-range": { @@ -10814,10 +10862,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" } }, "is-descriptor": { @@ -10826,9 +10874,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -10845,7 +10893,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10854,7 +10902,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10889,7 +10937,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "min-document": { @@ -10898,7 +10946,7 @@ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "minimalistic-assert": { @@ -10912,7 +10960,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -10927,8 +10975,8 @@ "integrity": "sha1-0CuMb4ttS49ZgtP9AJxJGYUcP+I=", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "0.1.1" + "for-in": "^1.0.2", + "is-extendable": "^0.1.1" } }, "mkdirp": { @@ -10946,8 +10994,8 @@ "integrity": "sha1-iZ/zAAJ87+1HgW5txTm7BZ/M5Ik=", "dev": true, "requires": { - "core-js": "0.8.4", - "global": "4.3.2" + "core-js": "^0.8.3", + "global": "^4.3.2" }, "dependencies": { "core-js": { @@ -10964,6 +11012,14 @@ "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", "dev": true }, + "more-entropy": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/more-entropy/-/more-entropy-0.0.7.tgz", + "integrity": "sha1-Z7/G96hvJvvDeqyD/UbYjGHRCbU=", + "requires": { + "iced-runtime": ">=0.0.1" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -10983,17 +11039,17 @@ "integrity": "sha1-XJqwJHXHZnYnVzGwvwpzlcYkqcQ=", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "is-odd": "1.0.0", - "kind-of": "5.1.0", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "is-odd": "^1.0.0", + "kind-of": "^5.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -11028,11 +11084,11 @@ "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", "dev": true, "requires": { - "formatio": "1.2.0", - "just-extend": "1.1.27", - "lolex": "1.6.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "formatio": "^1.2.0", + "just-extend": "^1.1.26", + "lolex": "^1.6.0", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" }, "dependencies": { "isarray": { @@ -11064,15 +11120,15 @@ "integrity": "sha512-DuKF+1W/FnMO6MXIGgCIWcM95bETjBbmFdR4v7dAj1zH9a9XhOjAa//PuWh98XIXxcZt7wdiv0JlO0AA0e2kqQ==", "dev": true, "requires": { - "chai": "3.5.0", - "debug": "2.6.9", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.4", - "mkdirp": "0.5.1", + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.17.2", + "mkdirp": "^0.5.0", "propagate": "0.4.0", - "qs": "6.5.1", - "semver": "5.4.1" + "qs": "^6.5.1", + "semver": "^5.3.0" }, "dependencies": { "deep-equal": { @@ -11089,8 +11145,8 @@ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "dev": true, "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" }, "dependencies": { "encoding": { @@ -11099,7 +11155,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "iconv-lite": { @@ -11122,10 +11178,10 @@ "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -11134,7 +11190,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-uri": { @@ -11148,7 +11204,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "number-is-nan": { @@ -11163,33 +11219,33 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "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.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", - "micromatch": "2.3.11", - "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.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "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.1", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.9.1", + "istanbul-lib-report": "^1.1.2", + "istanbul-lib-source-maps": "^1.2.2", + "istanbul-reports": "^1.1.3", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.1.1", + "yargs": "^10.0.3", + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -11197,9 +11253,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": { @@ -11222,7 +11278,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -11235,7 +11291,7 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -11263,9 +11319,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": { @@ -11273,14 +11329,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.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -11288,7 +11344,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -11296,8 +11352,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -11305,11 +11361,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.4" } }, "babel-traverse": { @@ -11317,15 +11373,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.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.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -11333,10 +11389,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.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -11354,7 +11410,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -11363,9 +11419,9 @@ "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "builtin-modules": { @@ -11378,9 +11434,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": { @@ -11395,8 +11451,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": { @@ -11404,11 +11460,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" } }, "cliui": { @@ -11417,8 +11473,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": { @@ -11460,8 +11516,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -11487,7 +11543,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "detect-indent": { @@ -11495,7 +11551,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -11503,7 +11559,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -11521,13 +11577,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": { @@ -11535,9 +11591,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -11547,7 +11603,7 @@ "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -11555,7 +11611,7 @@ "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "extglob": { @@ -11563,7 +11619,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "filename-regex": { @@ -11576,11 +11632,11 @@ "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "find-cache-dir": { @@ -11588,9 +11644,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": { @@ -11598,7 +11654,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -11611,7 +11667,7 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreground-child": { @@ -11619,8 +11675,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fs.realpath": { @@ -11643,12 +11699,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" } }, "glob-base": { @@ -11656,8 +11712,8 @@ "bundled": true, "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -11665,7 +11721,7 @@ "bundled": true, "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -11683,10 +11739,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": { @@ -11694,7 +11750,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -11704,7 +11760,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -11727,8 +11783,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -11741,7 +11797,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -11764,7 +11820,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { @@ -11777,7 +11833,7 @@ "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -11795,7 +11851,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -11803,7 +11859,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -11811,7 +11867,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -11819,7 +11875,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -11870,7 +11926,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -11878,13 +11934,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "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.1.1", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -11892,10 +11948,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -11903,7 +11959,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11913,11 +11969,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -11935,7 +11991,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -11953,7 +12009,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -11967,7 +12023,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -11975,11 +12031,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": { @@ -11987,8 +12043,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": { @@ -12013,7 +12069,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -12021,8 +12077,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "md5-hex": { @@ -12030,7 +12086,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -12043,7 +12099,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -12051,7 +12107,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "micromatch": { @@ -12059,19 +12115,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mimic-fn": { @@ -12084,7 +12140,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -12110,10 +12166,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -12121,7 +12177,7 @@ "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -12129,7 +12185,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -12147,8 +12203,8 @@ "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -12156,7 +12212,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -12164,8 +12220,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -12178,9 +12234,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": { @@ -12198,7 +12254,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "parse-glob": { @@ -12206,10 +12262,10 @@ "bundled": true, "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -12217,7 +12273,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -12225,7 +12281,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -12248,9 +12304,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": { @@ -12268,7 +12324,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -12276,7 +12332,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -12284,8 +12340,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" } } } @@ -12305,8 +12361,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": { @@ -12314,7 +12370,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12322,7 +12378,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12332,7 +12388,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12342,9 +12398,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": { @@ -12352,8 +12408,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": { @@ -12361,8 +12417,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" } } } @@ -12377,7 +12433,7 @@ "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { @@ -12400,7 +12456,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -12424,7 +12480,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -12432,7 +12488,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "semver": { @@ -12450,7 +12506,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12478,12 +12534,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": { @@ -12491,7 +12547,7 @@ "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -12509,8 +12565,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": { @@ -12528,7 +12584,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -12538,7 +12594,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -12546,7 +12602,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -12564,11 +12620,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { @@ -12587,9 +12643,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": { @@ -12598,9 +12654,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" } } @@ -12617,8 +12673,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "which": { @@ -12626,7 +12682,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -12650,8 +12706,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": { "string-width": { @@ -12659,9 +12715,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" } } } @@ -12676,9 +12732,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": { @@ -12696,18 +12752,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.0.0" }, "dependencies": { "cliui": { @@ -12715,9 +12771,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -12725,9 +12781,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" } } } @@ -12739,7 +12795,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -12768,9 +12824,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -12779,7 +12835,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -12788,9 +12844,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -12809,7 +12865,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -12826,8 +12882,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -12836,7 +12892,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -12862,7 +12918,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opn": { @@ -12871,8 +12927,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "dev": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" }, "dependencies": { "object-assign": { @@ -12893,7 +12949,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -12904,8 +12960,8 @@ "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", "dev": true, "requires": { - "is-stream": "1.1.0", - "readable-stream": "2.3.3" + "is-stream": "^1.0.1", + "readable-stream": "^2.0.1" } }, "os-homedir": { @@ -12920,7 +12976,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -12935,9 +12991,9 @@ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "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" }, "dependencies": { "graceful-fs": { @@ -12981,7 +13037,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "parents": { @@ -12990,7 +13046,7 @@ "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", "dev": true, "requires": { - "path-platform": "0.11.15" + "path-platform": "~0.11.15" } }, "parse-entities": { @@ -12999,12 +13055,12 @@ "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", "dev": true, "requires": { - "character-entities": "1.2.1", - "character-entities-legacy": "1.1.1", - "character-reference-invalid": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-decimal": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "parse-filepath": { @@ -13013,9 +13069,9 @@ "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", "dev": true, "requires": { - "is-absolute": "0.2.6", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "is-absolute": "^0.2.3", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-git-config": { @@ -13024,7 +13080,7 @@ "integrity": "sha1-Jygz/dFf6hRvt10zbSNrljtv9wY=", "dev": true, "requires": { - "ini": "1.3.4" + "ini": "^1.3.3" } }, "parse-glob": { @@ -13033,10 +13089,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -13045,7 +13101,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-url": { @@ -13054,8 +13110,8 @@ "integrity": "sha1-V8FUKKuKiSsfQ4aWRccR0OFEtVQ=", "dev": true, "requires": { - "is-ssh": "1.3.0", - "protocols": "1.4.5" + "is-ssh": "^1.3.0", + "protocols": "^1.4.0" } }, "parseurl": { @@ -13106,7 +13162,7 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "0.1.2" + "path-root-regex": "^0.1.0" } }, "path-root-regex": { @@ -13127,7 +13183,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -13138,6 +13194,18 @@ } } }, + "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.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", @@ -13161,7 +13229,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "posix-character-classes": { @@ -13194,12 +13262,17 @@ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" + }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "propagate": { @@ -13226,7 +13299,7 @@ "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.5.2" } }, @@ -13236,9 +13309,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" }, "dependencies": { "resolve": { @@ -13254,7 +13327,7 @@ "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", "requires": { - "bitcoin-ops": "1.4.1" + "bitcoin-ops": "^1.3.0" } }, "qs": { @@ -13268,8 +13341,8 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "dependencies": { "object-assign": { @@ -13290,8 +13363,8 @@ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "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": { @@ -13300,7 +13373,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13309,7 +13382,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13320,7 +13393,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13330,7 +13403,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -13345,8 +13418,8 @@ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", "dev": true, "requires": { - "bytes": "1.0.0", - "string_decoder": "0.10.31" + "bytes": "1", + "string_decoder": "0.10" }, "dependencies": { "string_decoder": { @@ -13363,9 +13436,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -13374,8 +13447,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -13384,13 +13457,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -13399,10 +13472,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "rechoir": { @@ -13411,7 +13484,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.5.0" + "resolve": "^1.1.6" } }, "regenerate": { @@ -13432,9 +13505,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "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": { @@ -13443,7 +13516,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -13452,7 +13525,7 @@ "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", "dev": true, "requires": { - "extend-shallow": "2.0.1" + "extend-shallow": "^2.0.1" } }, "regexpu-core": { @@ -13461,9 +13534,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -13478,7 +13551,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -13495,9 +13568,9 @@ "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==", "dev": true, "requires": { - "remark-parse": "4.0.0", - "remark-stringify": "4.0.0", - "unified": "6.1.5" + "remark-parse": "^4.0.0", + "remark-stringify": "^4.0.0", + "unified": "^6.0.0" } }, "remark-html": { @@ -13506,10 +13579,10 @@ "integrity": "sha1-UJTSxx95Qf2yroZbrHZid1fOCcE=", "dev": true, "requires": { - "hast-util-sanitize": "1.1.1", - "hast-util-to-html": "3.1.0", - "mdast-util-to-hast": "2.4.2", - "xtend": "4.0.1" + "hast-util-sanitize": "^1.0.0", + "hast-util-to-html": "^3.0.0", + "mdast-util-to-hast": "^2.1.1", + "xtend": "^4.0.1" } }, "remark-parse": { @@ -13518,21 +13591,21 @@ "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", "dev": true, "requires": { - "collapse-white-space": "1.0.3", - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "is-word-character": "1.0.1", - "markdown-escapes": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", "trim": "0.0.1", - "trim-trailing-lines": "1.1.0", - "unherit": "1.1.0", - "unist-util-remove-position": "1.1.1", - "vfile-location": "2.0.2", - "xtend": "4.0.1" + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" } }, "remark-slug": { @@ -13541,9 +13614,9 @@ "integrity": "sha1-jZh9Dl5j1KSeo3uQ/pmaPc/IG3I=", "dev": true, "requires": { - "github-slugger": "1.1.3", - "mdast-util-to-string": "1.0.4", - "unist-util-visit": "1.1.3" + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^1.0.0", + "unist-util-visit": "^1.0.0" } }, "remark-stringify": { @@ -13552,20 +13625,20 @@ "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==", "dev": true, "requires": { - "ccount": "1.0.2", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "longest-streak": "2.0.1", - "markdown-escapes": "1.0.1", - "markdown-table": "1.1.1", - "mdast-util-compact": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "stringify-entities": "1.3.1", - "unherit": "1.1.0", - "xtend": "4.0.1" + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" } }, "remark-toc": { @@ -13574,8 +13647,8 @@ "integrity": "sha1-/zb/beVOoH3Vnj9TNKSjqsHpMYU=", "dev": true, "requires": { - "mdast-util-toc": "2.0.1", - "remark-slug": "4.2.3" + "mdast-util-toc": "^2.0.0", + "remark-slug": "^4.0.0" } }, "remote-origin-url": { @@ -13584,7 +13657,7 @@ "integrity": "sha1-TT4pAvNOLTfRwmPYdxC3frQIajA=", "dev": true, "requires": { - "parse-git-config": "0.2.0" + "parse-git-config": "^0.2.0" } }, "remove-trailing-separator": { @@ -13611,7 +13684,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-ext": { @@ -13625,28 +13698,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "stringstream": "~0.0.5", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" }, "dependencies": { "extend": { @@ -13679,7 +13752,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-url": { @@ -13693,8 +13766,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "safe-buffer": { @@ -13719,7 +13792,7 @@ "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-1.6.8.tgz", "integrity": "sha1-ueU5g8xV/y29e2Xj2+CF2dEoXyo=", "requires": { - "async": "1.5.2" + "async": "^1.5.0" }, "dependencies": { "async": { @@ -13742,18 +13815,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" } }, "serve-static": { @@ -13762,9 +13835,9 @@ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "dev": true, "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.1" } }, @@ -13780,7 +13853,7 @@ "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", "dev": true, "requires": { - "to-object-path": "0.3.0" + "to-object-path": "^0.3.0" } }, "set-immediate-shim": { @@ -13795,10 +13868,10 @@ "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "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" } }, "setprototypeof": { @@ -13812,8 +13885,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shelljs": { @@ -13822,9 +13895,9 @@ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.0.4", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "sinon": { @@ -13833,13 +13906,13 @@ "integrity": "sha512-lx9ZCoScNhvs6+n3ku78CqIpQNIiY9gLfvuIdhZjnKOkcVL6FfWfA1jkOrcO+n3mX4BIg2XwQnyCS/Ive21QMw==", "dev": true, "requires": { - "diff": "3.4.0", + "diff": "^3.1.0", "formatio": "1.2.0", - "lodash.get": "4.4.2", - "lolex": "2.3.1", - "nise": "1.2.0", - "supports-color": "5.1.0", - "type-detect": "4.0.7" + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" }, "dependencies": { "diff": { @@ -13854,7 +13927,7 @@ "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -13871,14 +13944,14 @@ "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^2.0.0" }, "dependencies": { "define-property": { @@ -13887,7 +13960,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -13896,9 +13969,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -13915,9 +13988,9 @@ "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "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": { "isobject": { @@ -13934,7 +14007,7 @@ "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { @@ -13942,7 +14015,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "source-map": { @@ -13957,11 +14030,11 @@ "integrity": "sha1-etD1k/IoFZjoVN+A8ZquS5LXoRo=", "dev": true, "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -13970,7 +14043,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -13994,7 +14067,7 @@ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -14015,7 +14088,7 @@ "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "dev": true, "requires": { - "extend-shallow": "3.0.1" + "extend-shallow": "^3.0.0" }, "dependencies": { "extend-shallow": { @@ -14024,7 +14097,7 @@ "integrity": "sha1-S22MSbFH/uAp3J65SErbdw9omEQ=", "dev": true, "requires": { - "is-extendable": "1.0.1" + "is-extendable": "^1.0.1" } }, "is-extendable": { @@ -14033,7 +14106,7 @@ "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -14048,14 +14121,14 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "state-toggle": { @@ -14070,8 +14143,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": { @@ -14080,7 +14153,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -14089,9 +14162,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -14114,7 +14187,7 @@ "integrity": "sha1-nl9zRfITfDDuO0mLkRToC1K7frU=", "dev": true, "requires": { - "readable-stream": "2.1.5" + "readable-stream": "~2.1.0" }, "dependencies": { "readable-stream": { @@ -14123,13 +14196,13 @@ "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", "dev": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -14146,8 +14219,8 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "dev": true, "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "stream-shift": { @@ -14168,9 +14241,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" } }, "string_decoder": { @@ -14179,7 +14252,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringify-entities": { @@ -14188,10 +14261,10 @@ "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=", "dev": true, "requires": { - "character-entities-html4": "1.1.1", - "character-entities-legacy": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "stringstream": { @@ -14205,7 +14278,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -14220,8 +14293,8 @@ "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", "dev": true, "requires": { - "first-chunk-stream": "1.0.0", - "strip-bom": "2.0.0" + "first-chunk-stream": "^1.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "strip-bom": { @@ -14230,7 +14303,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -14247,7 +14320,7 @@ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.1.0" }, "dependencies": { "minimist": { @@ -14270,19 +14343,19 @@ "integrity": "sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA==", "dev": true, "requires": { - "deep-equal": "1.0.1", - "defined": "1.0.0", - "for-each": "0.3.2", - "function-bind": "1.1.1", - "glob": "7.1.2", - "has": "1.0.1", - "inherits": "2.0.3", - "minimist": "1.2.0", - "object-inspect": "1.3.0", - "resolve": "1.4.0", - "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.2", + "function-bind": "~1.1.0", + "glob": "~7.1.2", + "has": "~1.0.1", + "inherits": "~2.0.3", + "minimist": "~1.2.0", + "object-inspect": "~1.3.0", + "resolve": "~1.4.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" }, "dependencies": { "balanced-match": { @@ -14297,7 +14370,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -14319,8 +14392,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "defined": { @@ -14335,11 +14408,11 @@ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", "dev": true, "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.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -14348,9 +14421,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", - "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" } }, "for-each": { @@ -14359,7 +14432,7 @@ "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", "dev": true, "requires": { - "is-function": "1.0.1" + "is-function": "~1.0.0" } }, "foreach": { @@ -14386,12 +14459,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has": { @@ -14400,7 +14473,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "inflight": { @@ -14409,8 +14482,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -14443,7 +14516,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-symbol": { @@ -14458,7 +14531,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -14485,7 +14558,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "path-is-absolute": { @@ -14500,7 +14573,7 @@ "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resumer": { @@ -14509,7 +14582,7 @@ "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "dev": true, "requires": { - "through": "2.3.8" + "through": "~2.3.4" } }, "string.prototype.trim": { @@ -14518,9 +14591,9 @@ "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "through": { @@ -14543,8 +14616,8 @@ "integrity": "sha1-dryf91CLPgV9CW9ErJqTw8rk7TQ=", "dev": true, "requires": { - "is-promise": "2.1.0", - "onetime": "2.0.1" + "is-promise": "^2.1.0", + "onetime": "^2.0.0" }, "dependencies": { "is-promise": { @@ -14565,7 +14638,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } } } @@ -14588,8 +14661,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "through2-filter": { @@ -14598,8 +14671,8 @@ "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", "dev": true, "requires": { - "through2": "2.0.3", - "xtend": "4.0.1" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "tiny-lr": { @@ -14608,12 +14681,12 @@ "integrity": "sha1-IfQL+E69H4UwVmgDde7xZwwzQRI=", "dev": true, "requires": { - "body": "5.1.0", - "debug": "2.6.9", - "faye-websocket": "0.10.0", - "livereload-js": "2.2.2", - "object-assign": "4.1.1", - "qs": "6.5.1" + "body": "^5.1.0", + "debug": "~2.6.7", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.2.2", + "object-assign": "^4.1.0", + "qs": "^6.4.0" } }, "to-absolute-glob": { @@ -14622,7 +14695,7 @@ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", "dev": true, "requires": { - "extend-shallow": "2.0.1" + "extend-shallow": "^2.0.1" } }, "to-fast-properties": { @@ -14637,7 +14710,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -14646,9 +14719,9 @@ "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", "dev": true, "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.0" + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "regex-not": "^1.0.0" }, "dependencies": { "define-property": { @@ -14657,7 +14730,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -14666,9 +14739,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -14685,8 +14758,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": { @@ -14695,7 +14768,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -14705,7 +14778,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -14739,6 +14812,18 @@ "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=", "dev": true }, + "triplesec": { + "version": "3.0.26", + "resolved": "https://registry.npmjs.org/triplesec/-/triplesec-3.0.26.tgz", + "integrity": "sha1-3/K7R1ikIzcuc5o5fYmR8Fl9CsE=", + "requires": { + "iced-error": ">=0.0.9", + "iced-lock": "^1.0.1", + "iced-runtime": "^1.0.2", + "more-entropy": ">=0.0.7", + "progress": "~1.1.2" + } + }, "trough": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.1.tgz", @@ -14750,7 +14835,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -14772,7 +14857,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.15" } }, "typedarray": { @@ -14798,8 +14883,8 @@ "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=", "dev": true, "requires": { - "inherits": "2.0.3", - "xtend": "4.0.1" + "inherits": "^2.0.1", + "xtend": "^4.0.1" } }, "unified": { @@ -14808,13 +14893,13 @@ "integrity": "sha1-cWk3hyYhpjE15iztLzrGoGPG+4c=", "dev": true, "requires": { - "bail": "1.0.2", - "extend": "3.0.1", - "is-plain-obj": "1.1.0", - "trough": "1.0.1", - "vfile": "2.2.0", - "x-is-function": "1.0.4", - "x-is-string": "0.1.0" + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-function": "^1.0.4", + "x-is-string": "^0.1.0" } }, "union-value": { @@ -14823,10 +14908,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "set-value": { @@ -14835,10 +14920,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -14849,8 +14934,8 @@ "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", "dev": true, "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" + "json-stable-stringify": "^1.0.0", + "through2-filter": "^2.0.0" } }, "unist-builder": { @@ -14859,7 +14944,7 @@ "integrity": "sha1-jDuZA+9kvPsRfdfPal2Y/Bs7J7Y=", "dev": true, "requires": { - "object-assign": "4.1.1" + "object-assign": "^4.1.0" } }, "unist-util-generated": { @@ -14880,7 +14965,7 @@ "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=", "dev": true, "requires": { - "array-iterate": "1.1.1" + "array-iterate": "^1.0.0" } }, "unist-util-position": { @@ -14895,7 +14980,7 @@ "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=", "dev": true, "requires": { - "unist-util-visit": "1.1.3" + "unist-util-visit": "^1.1.0" } }, "unist-util-stringify-position": { @@ -14910,6 +14995,11 @@ "integrity": "sha1-7CaOcxudJ3p5pbWqBkOZDkBdYAs=", "dev": true }, + "unorm": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", + "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -14922,8 +15012,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -14932,9 +15022,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -14974,9 +15064,9 @@ "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", "dev": true, "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2" }, "dependencies": { "define-property": { @@ -14985,7 +15075,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -14994,9 +15084,9 @@ "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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" } }, "isobject": { @@ -15042,7 +15132,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "vali-date": { @@ -15057,8 +15147,8 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "validator": { @@ -15071,7 +15161,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.1" } }, "vary": { @@ -15085,9 +15175,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "core-util-is": { @@ -15103,9 +15193,9 @@ "integrity": "sha1-zkek+zNZIrIz5TXbD32BIdj87U4=", "dev": true, "requires": { - "is-buffer": "1.1.6", + "is-buffer": "^1.1.4", "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.1" + "unist-util-stringify-position": "^1.0.0" } }, "vfile-location": { @@ -15120,11 +15210,11 @@ "integrity": "sha1-6m8K4TQvSEFXOYXgX5QXNvJ96do=", "dev": true, "requires": { - "repeat-string": "1.6.1", - "string-width": "1.0.2", - "supports-color": "4.5.0", - "unist-util-stringify-position": "1.1.1", - "vfile-statistics": "1.1.0" + "repeat-string": "^1.5.0", + "string-width": "^1.0.0", + "supports-color": "^4.1.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-statistics": "^1.1.0" }, "dependencies": { "supports-color": { @@ -15133,7 +15223,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -15156,12 +15246,12 @@ "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", "dev": true, "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } }, "vinyl-fs": { @@ -15170,23 +15260,23 @@ "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", "dev": true, "requires": { - "duplexify": "3.5.1", - "glob-stream": "5.3.5", - "graceful-fs": "4.1.11", + "duplexify": "^3.2.0", + "glob-stream": "^5.3.2", + "graceful-fs": "^4.0.0", "gulp-sourcemaps": "1.6.0", - "is-valid-glob": "0.3.0", - "lazystream": "1.0.0", - "lodash.isequal": "4.5.0", - "merge-stream": "1.0.1", - "mkdirp": "0.5.1", - "object-assign": "4.1.1", - "readable-stream": "2.3.3", - "strip-bom": "2.0.0", - "strip-bom-stream": "1.0.0", - "through2": "2.0.3", - "through2-filter": "2.0.0", - "vali-date": "1.0.0", - "vinyl": "1.2.0" + "is-valid-glob": "^0.3.0", + "lazystream": "^1.0.0", + "lodash.isequal": "^4.0.0", + "merge-stream": "^1.0.0", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.0", + "readable-stream": "^2.0.4", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^1.0.0", + "through2": "^2.0.0", + "through2-filter": "^2.0.0", + "vali-date": "^1.0.0", + "vinyl": "^1.0.0" }, "dependencies": { "clone": { @@ -15213,7 +15303,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "vinyl": { @@ -15222,8 +15312,8 @@ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "dev": true, "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -15235,7 +15325,7 @@ "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "websocket-extensions": "0.1.1" + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -15255,7 +15345,7 @@ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", "requires": { - "bs58check": "2.1.1" + "bs58check": "<3.0.0" } }, "wrap-ansi": { @@ -15264,8 +15354,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -15304,19 +15394,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "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": "^4.2.0" }, "dependencies": { "find-up": { @@ -15325,8 +15415,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -15335,11 +15425,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "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" } }, "path-exists": { @@ -15348,7 +15438,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -15357,9 +15447,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "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": { @@ -15374,9 +15464,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "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": { @@ -15385,8 +15475,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -15395,7 +15485,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -15406,7 +15496,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } }, "zone-file": { diff --git a/package.json b/package.json index 664290ae0..d2adb80d0 100644 --- a/package.json +++ b/package.json @@ -80,6 +80,7 @@ "devDependencies": { "babel-cli": "^6.24.1", "babel-eslint": "^6.0.4", + "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.6.1", "babel-preset-flow": "^6.23.0", "blue-tape": "^1.0.0", @@ -107,6 +108,7 @@ "dependencies": { "ajv": "^4.11.5", "bigi": "^1.4.2", + "bip39": "^2.5.0", "bitcoinjs-lib": "^3.3.0", "cheerio": "^0.22.0", "custom-protocol-detection-blockstack": "1.1.4", @@ -121,6 +123,7 @@ "ripemd160": "^2.0.1", "schema-inspector": "^1.6.4", "sprintf-js": "^1.0.3", + "triplesec": "^3.0.26", "uuid": "^3.2.1", "validator": "^7.0.0", "zone-file": "^0.2.2" diff --git a/src/encryption.js b/src/encryption.js index 34d11da2d..eef97a291 100644 --- a/src/encryption.js +++ b/src/encryption.js @@ -1,7 +1,8 @@ /* @flow */ - import { ec as EllipticCurve } from 'elliptic' import crypto from 'crypto' +import bip39 from 'bip39' +import triplesec from 'triplesec' import { getPublicKeyFromPrivate } from './keys' const ecurve = new EllipticCurve('secp256k1') @@ -179,3 +180,135 @@ export function verifyECDSA(content: string | Buffer, return ecPublic.verify(contentHash, signature) } + +/** + * Encrypt a raw mnemonic phrase to be password protected + * @param {string} phrase - Raw mnemonic phrase + * @param {string} password - Password to encrypt mnemonic with + * @return {Promise} The encrypted phrase + */ +export function encryptMnemonic(phrase: string, password: string) { + return Promise.resolve().then(() => { + // must be bip39 mnemonic + if (!bip39.validateMnemonic(phrase)) { + throw new Error('Not a valid bip39 nmemonic') + } + + // normalize plaintext to fixed length byte string + const plaintextNormalized = Buffer.from( + bip39.mnemonicToEntropy(phrase).toString('hex'), 'hex' + ) + + // AES-128-CBC with SHA256 HMAC + const salt = crypto.randomBytes(16) + const keysAndIV = crypto.pbkdf2Sync(password, salt, 100000, 48, 'sha512') + const encKey = keysAndIV.slice(0, 16) + const macKey = keysAndIV.slice(16, 32) + const iv = keysAndIV.slice(32, 48) + + const cipher = crypto.createCipheriv('aes-128-cbc', encKey, iv) + let cipherText = cipher.update(plaintextNormalized).toString('hex') + cipherText += cipher.final().toString('hex') + + const hmacPayload = Buffer.concat([salt, Buffer.from(cipherText, 'hex')]) + + const hmac = crypto.createHmac('sha256', macKey) + hmac.write(hmacPayload) + const hmacDigest = hmac.digest() + + const payload = Buffer.concat([salt, hmacDigest, Buffer.from(cipherText, 'hex')]) + return payload + }) +} + +// Used to distinguish bad password during decrypt vs invalid format +class PasswordError extends Error {} + +function decryptMnemonicBuffer(dataBuffer: Buffer, password: string) { + return Promise.resolve().then(() => { + const salt = dataBuffer.slice(0, 16) + const hmacSig = dataBuffer.slice(16, 48) // 32 bytes + const cipherText = dataBuffer.slice(48) + const hmacPayload = Buffer.concat([salt, cipherText]) + + const keysAndIV = crypto.pbkdf2Sync(password, salt, 100000, 48, 'sha512') + const encKey = keysAndIV.slice(0, 16) + const macKey = keysAndIV.slice(16, 32) + const iv = keysAndIV.slice(32, 48) + + const decipher = crypto.createDecipheriv('aes-128-cbc', encKey, iv) + let plaintext = decipher.update(cipherText).toString('hex') + plaintext += decipher.final().toString('hex') + + const hmac = crypto.createHmac('sha256', macKey) + hmac.write(hmacPayload) + const hmacDigest = hmac.digest() + + // hash both hmacSig and hmacDigest so string comparison time + // is uncorrelated to the ciphertext + const hmacSigHash = crypto.createHash('sha256') + .update(hmacSig) + .digest() + .toString('hex') + + const hmacDigestHash = crypto.createHash('sha256') + .update(hmacDigest) + .digest() + .toString('hex') + + if (hmacSigHash !== hmacDigestHash) { + // not authentic + throw new PasswordError('Wrong password (HMAC mismatch)') + } + + const mnemonic = bip39.entropyToMnemonic(plaintext) + if (!bip39.validateMnemonic(mnemonic)) { + throw new PasswordError('Wrong password (invalid plaintext)') + } + + return mnemonic + }) +} + + +/** + * Decrypt legacy triplesec keys + * @param {Buffer} dataBuffer - The encrypted key + * @param {String} password - Password for data + * @return {Promise} Decrypted seed + */ +function decryptLegacy(dataBuffer: Buffer, password: string) { + return new Promise((resolve, reject) => { + triplesec.decrypt( + { + key: Buffer.from(password), + data: dataBuffer + }, + (err, plaintextBuffer) => { + if (!err) { + resolve(plaintextBuffer) + } else { + reject(err) + } + } + ) + }) +} + +/** + * Encrypt a raw mnemonic phrase with a password + * @param {string} data - Hex-encoded string of theEncrypted mnemonic phrase + * @param {string} password - Password for data + * @return {Promise} the raw mnemonic phrase + */ +export function decryptMnemonic(data: string, password: string) { + const dataBuffer = Buffer.from(data, 'hex') + return decryptMnemonicBuffer(dataBuffer, password).catch((err) => { + // If it was a password error, don't even bother with legacy + if (err instanceof PasswordError) { + throw err + } + + return decryptLegacy(dataBuffer, password) + }) +} diff --git a/src/index.js b/src/index.js index c7918678e..68ec28c74 100644 --- a/src/index.js +++ b/src/index.js @@ -23,3 +23,5 @@ export { network } from './network' export { decodeToken } from 'jsontokens' export { config } from './config' + +export { encryptMnemonic, decryptMnemonic } from './encryption' diff --git a/src/utils.js b/src/utils.js index c91aaf966..574c791ce 100644 --- a/src/utils.js +++ b/src/utils.js @@ -134,7 +134,7 @@ export function isSameOriginAbsoluteUrl(uri1: string, uri2: string) { scheme: parsedUri1.protocol === parsedUri2.protocol, hostname: parsedUri1.hostname === parsedUri2.hostname, port: port1 === port2, - absolute: (uri1.includes('http://') || uri1.includes('https://')) + absolute: (uri1.includes('http://') || uri1.includes('https://')) && (uri2.includes('http://') || uri2.includes('https://')) } diff --git a/src/wallet.js b/src/wallet.js index 9df1483bf..40a55a98a 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -1,7 +1,9 @@ /* @flow */ import { HDNode } from 'bitcoinjs-lib' import { ecPairToHexString } from './utils' -import crypto from 'crypto' +import { encryptMnemonic, decryptMnemonic } from './encryption' +import crypto, { randomBytes } from 'crypto' +import bip39 from 'bip39' const APPS_NODE_INDEX = 0 const IDENTITY_KEYCHAIN = 888 @@ -55,7 +57,7 @@ export class BlockstackWallet { } /** - * Initialize a blockstack wallet + * Initialize a blockstack wallet from a seed buffer * @param {Buffer} seed - the input seed for initializing the root node * of the hierarchical wallet * @return {BlockstackWallet} the constructed wallet @@ -65,7 +67,7 @@ export class BlockstackWallet { } /** - * Initialize a blockstack wallet + * Initialize a blockstack wallet from a base58 string * @param {string} keychain - the Base58 string used to initialize * the root node of the hierarchical wallet * @return {BlockstackWallet} the constructed wallet @@ -74,6 +76,38 @@ export class BlockstackWallet { return new BlockstackWallet(HDNode.fromBase58(keychain)) } + /** + * Initialize a blockstack wallet from an encrypted phrase & password. Throws + * if the password is incorrect. Supports all formats of Blockstack phrases. + * @param {string} data - The encrypted phrase as a hex-encoded string + * @param {string} password - The plain password + * @return {Promise} the constructed wallet + */ + static async fromEncryptedMnemonic(data: string, password: string) { + const mnemonic = await decryptMnemonic(data, password) + const seed = bip39.mnemonicToSeed(mnemonic) + return new BlockstackWallet(HDNode.fromSeedBuffer(seed)) + } + + /** + * Generate a BIP-39 12 word mnemonic + * @return {Promise} space-separated 12 word phrase + */ + static generateMnemonic() { + return bip39.generateMnemonic(128, randomBytes) + } + + /** + * Encrypt a mnemonic phrase with a password + * @param {string} mnemonic - Raw mnemonic phrase + * @param {string} password - Password to encrypt mnemonic with + * @return {Promise} Hex-encoded encrypted mnemonic + */ + static async encryptMnemonic(mnemonic: string, password: string) { + const encryptedBuffer = await encryptMnemonic(mnemonic, password) + return encryptedBuffer.toString('hex') + } + getIdentityPrivateKeychain(): HDNode { return this.rootNode .deriveHardened(IDENTITY_KEYCHAIN) @@ -90,7 +124,9 @@ export class BlockstackWallet { getBitcoinNode(addressIndex: number, chainType: string = EXTERNAL_ADDRESS): HDNode { return BlockstackWallet.getNodeFromBitcoinKeychain( this.getBitcoinPrivateKeychain().toBase58(), - addressIndex, chainType) + addressIndex, + chainType + ) } getIdentityAddressNode(identityIndex: number): HDNode { @@ -128,7 +164,7 @@ export class BlockstackWallet { * characters long to denote an uncompressed bitcoin address, or 66 * characters long for a compressed bitcoin address. */ - getBitcoinPrivateKey(addressIndex: number): string { + getBitcoinPrivateKey(addressIndex: number): HDNode { return getNodePrivateKey(this.getBitcoinNode(addressIndex)) } @@ -136,20 +172,23 @@ export class BlockstackWallet { * Get the root node for the bitcoin public keychain * @return {String} base58-encoding of the public node */ - getBitcoinPublicKeychain(): string { - return this.getBitcoinPrivateKeychain().neutered().toBase58() + getBitcoinPublicKeychain(): HDNode { + return this.getBitcoinPrivateKeychain().neutered() } /** * Get the root node for the identity public keychain * @return {String} base58-encoding of the public node */ - getIdentityPublicKeychain(): string { - return this.getIdentityPrivateKeychain().neutered().toBase58() + getIdentityPublicKeychain(): HDNode { + return this.getIdentityPrivateKeychain().neutered() } - static getNodeFromBitcoinKeychain(keychainBase58: string, addressIndex: number, - chainType: string = EXTERNAL_ADDRESS): HDNode { + static getNodeFromBitcoinKeychain( + keychainBase58: string, + addressIndex: number, + chainType: string = EXTERNAL_ADDRESS + ): HDNode { let chain if (chainType === EXTERNAL_ADDRESS) { chain = 0 diff --git a/tests/unitTests/src/index.js b/tests/unitTests/src/index.js index 5e4318ff1..48322409b 100644 --- a/tests/unitTests/src/index.js +++ b/tests/unitTests/src/index.js @@ -1,3 +1,4 @@ +import 'babel-polyfill' import { runAuthTests } from './unitTestsAuth' import { runProfilesUnitTests } from './unitTestsProfiles' import { runProofsUnitTests } from './unitTestsProofs' diff --git a/tests/unitTests/src/unitTestsEncryption.js b/tests/unitTests/src/unitTestsEncryption.js index 109d42351..6afe9f978 100644 --- a/tests/unitTests/src/unitTestsEncryption.js +++ b/tests/unitTests/src/unitTestsEncryption.js @@ -1,7 +1,12 @@ import test from 'tape-promise/tape' - import { - encryptECIES, decryptECIES, getHexFromBN, signECDSA, verifyECDSA + encryptECIES, + decryptECIES, + getHexFromBN, + signECDSA, + verifyECDSA, + encryptMnemonic, + decryptMnemonic } from '../../../lib/encryption' import elliptic from 'elliptic' @@ -94,4 +99,64 @@ export function runEncryptionTests() { t.true(results.every((x) => x), 'Evil hexes must all generate 64-len hex strings') }) + + test('encryptMnemonic & decryptMnemonic', (t) => { + t.plan(4) + + const rawPhrase = 'march eager husband pilot waste rely exclude taste ' + + 'twist donkey actress scene' + const rawPassword = 'testtest' + + const preEncryptedPhrase = '7573f4f51089ba7ce2b95542552b7504de7305398637733' + + '0579649dfbc9e664073ba614fac180d3dc237b21eba57f9aee5702ba819fe17a0752c4dc7' + + '94884c9e75eb60da875f778bbc1aaca1bd373ea3' + + const legacyPhrase = 'vivid oxygen neutral wheat find thumb cigar wheel ' + + 'board kiwi portion business' + const legacyPassword = 'supersecret' + const legacyEncrypted = '1c94d7de0000000304d583f007c71e6e5fef354c046e8c64b1' + + 'adebd6904dcb007a1222f07313643873455ab2a3ab3819e99d518cc7d33c18bde02494aa' + + '74efc35a8970b2007b2fc715f6067cee27f5c92d020b1806b0444994aab80050a6732131' + + 'd2947a51bacb3952fb9286124b3c2b3196ff7edce66dee0dbd9eb59558e0044bddb3a78f' + + '48a66cf8d78bb46bb472bd2d5ec420c831fc384293252459524ee2d668869f33c586a944' + + '67d0ce8671260f4cc2e87140c873b6ca79fb86c6d77d134d7beb2018845a9e71e6c7ecde' + + 'dacd8a676f1f873c5f9c708cc6070642d44d2505aa9cdba26c50ad6f8d3e547fb0cba710' + + 'a7f7be54ff7ea7e98a809ddee5ef85f6f259b3a17a8d8dbaac618b80fe266a1e63ec19e4' + + '76bee9177b51894ee' + + // Test encryption -> decryption. Can't be done with hard-coded values + // due to random salt. + // TODO: Use generators to allow for inserting the same salt for testing? + encryptMnemonic(rawPhrase, rawPassword) + .then(encoded => + decryptMnemonic(encoded.toString('hex'), rawPassword) + , (err) => { + t.fail(`Should encrypt mnemonic phrase, instead errored: ${err}`) + }) + .then(decoded => { + t.true(decoded.toString() === rawPhrase, 'Should encrypt & decrypt a phrase correctly') + }, (err) => { + t.fail(`Should decrypt encrypted phrase, instead errored: ${err}`) + }) + + // Test valid input (No salt, so it's the same every time) + decryptMnemonic(legacyEncrypted, legacyPassword).then((decoded) => { + t.true(decoded.toString() === legacyPhrase, 'Should decrypt legacy encrypted phrase') + }, (err) => { + t.fail(`Should decrypt legacy encrypted phrase, instead errored: ${err}`) + }) + + // Invalid inputs + encryptMnemonic('not a mnemonic phrase', 'password').then(() => { + t.fail('Should have thrown on invalid mnemonic input') + }, () => { + t.pass('Should throw on invalid mnemonic input') + }) + + decryptMnemonic(preEncryptedPhrase, 'incorrect password').then(() => { + t.fail('Should have thrown on incorrect password for decryption') + }, () => { + t.pass('Should throw on incorrect password') + }) + }) } diff --git a/tests/unitTests/src/unitTestsWallet.js b/tests/unitTests/src/unitTestsWallet.js index f4c758fc6..cdd04f5a8 100644 --- a/tests/unitTests/src/unitTestsWallet.js +++ b/tests/unitTests/src/unitTestsWallet.js @@ -53,8 +53,8 @@ function testsBlockstackWallet() { .forEach((wallet) => { test('wallet matches browser 0.26.2 implementation', (t) => { t.plan(6) - t.equals(wallet.getIdentityPublicKeychain(), identityXPUB, 'id xpub is correct') - t.equals(wallet.getBitcoinPublicKeychain(), bitcoinXPUB, 'btc xpub is correct') + t.equals(wallet.getIdentityPublicKeychain().toBase58(), identityXPUB, 'id xpub is correct') + t.equals(wallet.getBitcoinPublicKeychain().toBase58(), bitcoinXPUB, 'btc xpub is correct') t.equals(wallet.getBitcoinAddress(0), bitcoinAddress, 'btc address correct') t.deepEquals( [0, 1, 2, 3].map(index => wallet.getIdentityKeyPair(index, true)), From 62fa8fa04e4f0404795a583bc07097af748aea99 Mon Sep 17 00:00:00 2001 From: William O'Beirne Date: Tue, 17 Jul 2018 12:06:26 -0400 Subject: [PATCH 12/16] Support buffers for decryption --- src/encryption.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/encryption.js b/src/encryption.js index eef97a291..f4b5fe291 100644 --- a/src/encryption.js +++ b/src/encryption.js @@ -297,12 +297,12 @@ function decryptLegacy(dataBuffer: Buffer, password: string) { /** * Encrypt a raw mnemonic phrase with a password - * @param {string} data - Hex-encoded string of theEncrypted mnemonic phrase + * @param {string | Buffer} data - Buffer or hex-encoded string of the encrypted mnemonic * @param {string} password - Password for data * @return {Promise} the raw mnemonic phrase */ -export function decryptMnemonic(data: string, password: string) { - const dataBuffer = Buffer.from(data, 'hex') +export function decryptMnemonic(data: string | Buffer, password: string) { + const dataBuffer = Buffer.isBuffer(data) ? data : Buffer.from(data, 'hex') return decryptMnemonicBuffer(dataBuffer, password).catch((err) => { // If it was a password error, don't even bother with legacy if (err instanceof PasswordError) { From 956e86d7ff2bfa825a0ac1f453745c67cd500f88 Mon Sep 17 00:00:00 2001 From: Larry Salibra Date: Wed, 1 Aug 2018 02:48:39 +0800 Subject: [PATCH 13/16] fix bip32 typedef errors --- flow-typed/bip32.js | 16 +++++----------- src/wallet.js | 4 ++-- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/flow-typed/bip32.js b/flow-typed/bip32.js index 4c19ea06e..070315b92 100644 --- a/flow-typed/bip32.js +++ b/flow-typed/bip32.js @@ -13,25 +13,19 @@ declare module 'bip32' { str: string, networks: ?(Array | Network) ): BIP32; + static fromSeed(seed: Buffer, network?: ?Network): BIP32; + getPublicKeyBuffer(): Buffer; derive(index: number): BIP32; deriveHardened(index: number): BIP32; derivePath(path: string): BIP32; toBase58(): string; - constructor(keyPair: ECPair, chainCode: Buffer): void; - - static fromBase58( - base: string, - network?: ?(Network | Array) - ): BIP32; - static fromSeedHex(seed: string, network?: ?Network): BIP32; - static fromSeedBuffer(seed: Buffer, network?: ?Network): BIP32; - getPublicKeyBuffer(): Buffer; - sign(): ECSignature; verify(hash: Buffer, signature: ECSignature): Buffer; neutered(): BIP32; isNeutered(): boolean; - constructor(keyPair: ECPair, chainCode: Buffer): void; static HIGHEST_BIT: number; + constructor(keyPair: ECPair, chainCode: Buffer): void; } + + declare export default typeof BIP32; } diff --git a/src/wallet.js b/src/wallet.js index a88ed5224..c451dc5a1 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -2,8 +2,8 @@ import crypto, { randomBytes } from 'crypto' import bitcoin, { ECPair } from 'bitcoinjs-lib' import bip39 from 'bip39' -import type BIP32 from 'bip32' import bip32 from 'bip32' +import type BIP32 from 'bip32' import { ecPairToHexString } from './utils' import { encryptMnemonic, decryptMnemonic } from './encryption' @@ -166,7 +166,7 @@ export class BlockstackWallet { * characters long to denote an uncompressed bitcoin address, or 66 * characters long for a compressed bitcoin address. */ - getBitcoinPrivateKey(addressIndex: number): BIP32 { + getBitcoinPrivateKey(addressIndex: number): string { return getNodePrivateKey(this.getBitcoinNode(addressIndex)) } From 50248c0375e9d44d42882357c523f8cd1eeba0cf Mon Sep 17 00:00:00 2001 From: Larry Salibra Date: Wed, 1 Aug 2018 03:16:45 +0800 Subject: [PATCH 14/16] mark methods not part of app developer API as private --- dist/blockstack.js | 12 +- docs.json | 12749 +++++++++---------------------------- docs/index.html | 2368 +------ src/auth/authMessages.js | 1 + src/encryption.js | 10 +- src/wallet.js | 1 + 6 files changed, 3220 insertions(+), 11921 deletions(-) diff --git a/dist/blockstack.js b/dist/blockstack.js index d9b1bb456..1d3bc2078 100644 --- a/dist/blockstack.js +++ b/dist/blockstack.js @@ -431,6 +431,7 @@ function decryptPrivateKey(privateKey, hexedEncrypted) { * in its authentication request with which secrets will be encrypted * @param {String} hubUrl URL to the write path of the user's Gaia hub * @return {String} signed and encoded authentication response token + * @private */ function makeAuthResponse(privateKey) { var profile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -1393,13 +1394,13 @@ function getHexFromBN(bnInput) { /** * Encrypt content to elliptic curve publicKey using ECIES - * @private * @param {String} publicKey - secp256k1 public key hex string * @param {String | Buffer} content - content to encrypt * @return {Object} Object containing (hex encoded): * iv (initialization vector), cipherText (cipher text), * mac (message authentication code), ephemeral public key * wasString (boolean indicating with or not to return a buffer or string on decrypt) + * @private */ function encryptECIES(publicKey, content) { var isString = typeof content === 'string'; @@ -1432,7 +1433,6 @@ function encryptECIES(publicKey, content) { /** * Decrypt content encrypted using ECIES - * @private * @param {String} privateKey - secp256k1 private key hex string * @param {Object} cipherObject - object to decrypt, should contain: * iv (initialization vector), cipherText (cipher text), @@ -1440,6 +1440,7 @@ function encryptECIES(publicKey, content) { * wasString (boolean indicating with or not to return a buffer or string on decrypt) * @return {Buffer} plaintext * @throws {Error} if unable to decrypt + * @private */ function decryptECIES(privateKey, cipherObject) { var ecSK = ecurve.keyFromPrivate(privateKey, 'hex'); @@ -1469,11 +1470,13 @@ function decryptECIES(privateKey, cipherObject) { /** * Sign content using ECDSA + * @private * @param {String} privateKey - secp256k1 private key hex string * @param {Object} content - content to sign * @return {Object} contains: * signature - Hex encoded DER signature * public key - Hex encoded private string taken from privateKey + * @private */ function signECDSA(privateKey, content) { var contentBuffer = Buffer.from(content); @@ -1495,6 +1498,7 @@ function signECDSA(privateKey, content) { * @param {String} publicKey - secp256k1 private key hex string * @param {String} signature - Hex encoded DER signature * @return {Boolean} returns true when signature matches publickey + content, false if not + * @private */ function verifyECDSA(content, publicKey, signature) { var contentBuffer = Buffer.from(content); @@ -1509,6 +1513,7 @@ function verifyECDSA(content, publicKey, signature) { * @param {string} phrase - Raw mnemonic phrase * @param {string} password - Password to encrypt mnemonic with * @return {Promise} The encrypted phrase + * @private */ function encryptMnemonic(phrase, password) { return Promise.resolve().then(function () { @@ -1601,6 +1606,7 @@ function decryptMnemonicBuffer(dataBuffer, password) { * @param {Buffer} dataBuffer - The encrypted key * @param {String} password - Password for data * @return {Promise} Decrypted seed + * @private */ function decryptLegacy(dataBuffer, password) { return new Promise(function (resolve, reject) { @@ -1622,6 +1628,7 @@ function decryptLegacy(dataBuffer, password) { * @param {string | Buffer} data - Buffer or hex-encoded string of the encrypted mnemonic * @param {string} password - Password for data * @return {Promise} the raw mnemonic phrase + * @private */ function decryptMnemonic(data, password) { var dataBuffer = Buffer.isBuffer(data) ? data : Buffer.from(data, 'hex'); @@ -8357,6 +8364,7 @@ function getNodePublicKey(node) { * paths for a standard blockstack client wallet. This includes paths * for bitcoin payment address, blockstack identity addresses, blockstack * application specific addresses. + * @private */ var BlockstackWallet = exports.BlockstackWallet = function () { diff --git a/docs.json b/docs.json index 9f8c420d5..60a945a8d 100644 --- a/docs.json +++ b/docs.json @@ -9770,7 +9770,7 @@ "children": [ { "type": "text", - "value": "Generates a signed authentication response token for an app. This\ntoken is sent back to apps which use contents to access the\nresources and data requested by the app.", + "value": "Checks if the expiration date of the ", "position": { "start": { "line": 1, @@ -9778,14 +9778,45 @@ "offset": 0 }, "end": { - "line": 3, - "column": 41, - "offset": 166 + "line": 1, + "column": 38, + "offset": 37 }, - "indent": [ - 1, - 1 - ] + "indent": [] + } + }, + { + "type": "inlineCode", + "value": "token", + "position": { + "start": { + "line": 1, + "column": 38, + "offset": 37 + }, + "end": { + "line": 1, + "column": 45, + "offset": 44 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " is before the current time", + "position": { + "start": { + "line": 1, + "column": 45, + "offset": 44 + }, + "end": { + "line": 1, + "column": 72, + "offset": 71 + }, + "indent": [] } } ], @@ -9796,14 +9827,11 @@ "offset": 0 }, "end": { - "line": 3, - "column": 41, - "offset": 166 + "line": 1, + "column": 72, + "offset": 71 }, - "indent": [ - 1, - 1 - ] + "indent": [] } } ], @@ -9814,143 +9842,63 @@ "offset": 0 }, "end": { - "line": 3, - "column": 41, - "offset": 166 + "line": 1, + "column": 72, + "offset": 71 } } }, "tags": [ { "title": "param", - "description": "the identity key of the Blockstack ID generating\nthe authentication response", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "privateKey" - }, - { - "title": "param", - "description": "the profile object for the Blockstack ID", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "Object" - }, - "name": "profile" - }, - { - "title": "param", - "description": "the username of the Blockstack ID if any, otherwise `null`", - "lineNumber": 8, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "username" - }, - { - "title": "param", - "description": "an object containing metadata sent as part of the authentication\nresponse including `email` if requested and available and a URL to the profile", - "lineNumber": 9, - "type": { - "type": "NameExpression", - "name": "AuthMetadata" - }, - "name": "metadata" - }, - { - "title": "param", - "description": "core session token when responding to a legacy auth request\nor `null` for current direct to gaia authentication requests", - "lineNumber": 11, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "coreToken" - }, - { - "title": "param", - "description": "the application private key. This private key is\nunique and specific for every Blockstack ID and application combination.", - "lineNumber": 13, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "appPrivateKey" - }, - { - "title": "param", - "description": "an integer in the same format as\n`new Date().getTime()`, milliseconds since the Unix epoch", - "lineNumber": 15, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "name": "expiresAt" - }, - { - "title": "param", - "description": "the public key provide by the app\nin its authentication request with which secrets will be encrypted", - "lineNumber": 17, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "transitPublicKey" - }, - { - "title": "param", - "description": "URL to the write path of the user's Gaia hub", - "lineNumber": 19, + "description": "encoded and signed authentication token", + "lineNumber": 2, "type": { "type": "NameExpression", "name": "String" }, - "name": "hubUrl" + "name": "token" }, { "title": "return", - "description": "signed and encoded authentication response token", - "lineNumber": 20, + "description": "`true` if the `token` has not yet expired, `false`\nif the `token` has expired", + "lineNumber": 3, "type": { "type": "NameExpression", - "name": "String" + "name": "Boolean" } } ], "loc": { "start": { - "line": 120, + "line": 153, "column": 0 }, "end": { - "line": 141, + "line": 158, "column": 3 } }, "context": { "loc": { "start": { - "line": 142, + "line": 159, "column": 0 }, "end": { - "line": 193, + "line": 174, "column": 1 } }, - "file": "/Users/larry/git/blockstack.js/src/auth/authMessages.js" + "file": "/Users/larry/git/blockstack.js/src/auth/authVerification.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "privateKey", - "lineNumber": 5, + "name": "token", + "lineNumber": 2, "description": { "type": "root", "children": [ @@ -9959,7 +9907,7 @@ "children": [ { "type": "text", - "value": "the identity key of the Blockstack ID generating\nthe authentication response", + "value": "encoded and signed authentication token", "position": { "start": { "line": 1, @@ -9967,13 +9915,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 28, - "offset": 76 + "line": 1, + "column": 40, + "offset": 39 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -9984,13 +9930,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 28, - "offset": 76 + "line": 1, + "column": 40, + "offset": 39 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -10001,9 +9945,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 28, - "offset": 76 + "line": 1, + "column": 40, + "offset": 39 } } }, @@ -10011,11 +9955,11 @@ "type": "NameExpression", "name": "String" } - }, + } + ], + "properties": [], + "returns": [ { - "title": "param", - "name": "profile", - "lineNumber": 7, "description": { "type": "root", "children": [ @@ -10023,8 +9967,8 @@ "type": "paragraph", "children": [ { - "type": "text", - "value": "the profile object for the Blockstack ID", + "type": "inlineCode", + "value": "true", "position": { "start": { "line": 1, @@ -10033,248 +9977,93 @@ }, "end": { "line": 1, - "column": 41, - "offset": 40 + "column": 7, + "offset": 6 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 41, - "offset": 40 }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 41, - "offset": 40 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Object" - }, - "default": "{}" - }, - { - "title": "param", - "name": "username", - "lineNumber": 8, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { "type": "text", - "value": "the username of the Blockstack ID if any, otherwise ", + "value": " if the ", "position": { "start": { "line": 1, - "column": 1, - "offset": 0 + "column": 7, + "offset": 6 }, "end": { "line": 1, - "column": 53, - "offset": 52 + "column": 15, + "offset": 14 }, "indent": [] } }, { "type": "inlineCode", - "value": "null", + "value": "token", "position": { "start": { "line": 1, - "column": 53, - "offset": 52 + "column": 15, + "offset": 14 }, "end": { "line": 1, - "column": 59, - "offset": 58 + "column": 22, + "offset": 21 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 1, - "column": 59, - "offset": 58 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 59, - "offset": 58 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - }, - "default": "null" - }, - { - "title": "param", - "name": "metadata", - "lineNumber": 9, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { "type": "text", - "value": "an object containing metadata sent as part of the authentication\nresponse including ", + "value": " has not yet expired, ", "position": { "start": { "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 20, - "offset": 84 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "email", - "position": { - "start": { - "line": 2, - "column": 20, - "offset": 84 + "column": 22, + "offset": 21 }, "end": { - "line": 2, - "column": 27, - "offset": 91 + "line": 1, + "column": 44, + "offset": 43 }, "indent": [] } }, { - "type": "text", - "value": " if requested and available and a URL to the profile", + "type": "inlineCode", + "value": "false", "position": { "start": { - "line": 2, - "column": 27, - "offset": 91 + "line": 1, + "column": 44, + "offset": 43 }, "end": { - "line": 2, - "column": 79, - "offset": 143 + "line": 1, + "column": 51, + "offset": 50 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 79, - "offset": 143 }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 79, - "offset": 143 - } - } - }, - "type": { - "type": "NameExpression", - "name": "AuthMetadata" - } - }, - { - "title": "param", - "name": "coreToken", - "lineNumber": 11, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { "type": "text", - "value": "core session token when responding to a legacy auth request\nor ", + "value": "\nif the ", "position": { "start": { "line": 1, - "column": 1, - "offset": 0 + "column": 51, + "offset": 50 }, "end": { "line": 2, - "column": 4, - "offset": 63 + "column": 8, + "offset": 58 }, "indent": [ 1 @@ -10283,34 +10072,34 @@ }, { "type": "inlineCode", - "value": "null", + "value": "token", "position": { "start": { "line": 2, - "column": 4, - "offset": 63 + "column": 8, + "offset": 58 }, "end": { "line": 2, - "column": 10, - "offset": 69 + "column": 15, + "offset": 65 }, "indent": [] } }, { "type": "text", - "value": " for current direct to gaia authentication requests", + "value": " has expired", "position": { "start": { "line": 2, - "column": 10, - "offset": 69 + "column": 15, + "offset": 65 }, "end": { "line": 2, - "column": 61, - "offset": 120 + "column": 27, + "offset": 77 }, "indent": [] } @@ -10324,8 +10113,8 @@ }, "end": { "line": 2, - "column": 61, - "offset": 120 + "column": 27, + "offset": 77 }, "indent": [ 1 @@ -10341,47 +10130,48 @@ }, "end": { "line": 2, - "column": 61, - "offset": 120 + "column": 27, + "offset": 77 } } }, + "title": "returns", "type": { "type": "NameExpression", - "name": "String" - }, - "default": "null" - }, + "name": "Boolean" + } + } + ], + "sees": [], + "throws": [], + "todos": [], + "name": "isExpirationDateValid", + "kind": "function", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ { - "title": "param", - "name": "appPrivateKey", - "lineNumber": 13, - "description": { - "type": "root", + "name": "isExpirationDateValid", + "kind": "function" + } + ], + "namespace": "isExpirationDateValid" + }, + { + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", "children": [ { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the application private key. This private key is\nunique and specific for every Blockstack ID and application combination.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 73, - "offset": 121 - }, - "indent": [ - 1 - ] - } - } - ], + "type": "text", + "value": "Makes sure the ", "position": { "start": { "line": 1, @@ -10389,13 +10179,45 @@ "offset": 0 }, "end": { - "line": 2, - "column": 73, - "offset": 121 + "line": 1, + "column": 16, + "offset": 15 }, - "indent": [ - 1 - ] + "indent": [] + } + }, + { + "type": "inlineCode", + "value": "redirect_uri", + "position": { + "start": { + "line": 1, + "column": 16, + "offset": 15 + }, + "end": { + "line": 1, + "column": 30, + "offset": 29 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " is a same origin absolute URL.", + "position": { + "start": { + "line": 1, + "column": 30, + "offset": 29 + }, + "end": { + "line": 1, + "column": 61, + "offset": 60 + }, + "indent": [] } } ], @@ -10406,22 +10228,78 @@ "offset": 0 }, "end": { - "line": 2, - "column": 73, - "offset": 121 - } + "line": 1, + "column": 61, + "offset": 60 + }, + "indent": [] } - }, - "type": { + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 61, + "offset": 60 + } + } + }, + "tags": [ + { + "title": "param", + "description": "encoded and signed authentication token", + "lineNumber": 2, + "type": { "type": "NameExpression", "name": "String" }, - "default": "null" + "name": "token" + }, + { + "title": "return", + "description": "`true` if valid, otherwise `false`", + "lineNumber": 3, + "type": { + "type": "NameExpression", + "name": "Boolean" + } + } + ], + "loc": { + "start": { + "line": 187, + "column": 0 + }, + "end": { + "line": 191, + "column": 3 + } + }, + "context": { + "loc": { + "start": { + "line": 192, + "column": 0 + }, + "end": { + "line": 195, + "column": 1 + } }, + "file": "/Users/larry/git/blockstack.js/src/auth/authVerification.js" + }, + "augments": [], + "examples": [], + "params": [ { "title": "param", - "name": "expiresAt", - "lineNumber": 15, + "name": "token", + "lineNumber": 2, "description": { "type": "root", "children": [ @@ -10430,7 +10308,7 @@ "children": [ { "type": "text", - "value": "an integer in the same format as\n", + "value": "encoded and signed authentication token", "position": { "start": { "line": 1, @@ -10438,45 +10316,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 1, - "offset": 33 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "new Date().getTime()", - "position": { - "start": { - "line": 2, - "column": 1, - "offset": 33 - }, - "end": { - "line": 2, - "column": 23, - "offset": 55 - }, - "indent": [] - } - }, - { - "type": "text", - "value": ", milliseconds since the Unix epoch", - "position": { - "start": { - "line": 2, - "column": 23, - "offset": 55 - }, - "end": { - "line": 2, - "column": 58, - "offset": 90 + "line": 1, + "column": 40, + "offset": 39 }, "indent": [] } @@ -10489,13 +10331,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 58, - "offset": 90 + "line": 1, + "column": 40, + "offset": 39 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -10506,22 +10346,21 @@ "offset": 0 }, "end": { - "line": 2, - "column": 58, - "offset": 90 + "line": 1, + "column": 40, + "offset": 39 } } }, "type": { "type": "NameExpression", - "name": "Number" - }, - "default": "nextMonth().getTime()" - }, + "name": "String" + } + } + ], + "properties": [], + "returns": [ { - "title": "param", - "name": "transitPublicKey", - "lineNumber": 17, "description": { "type": "root", "children": [ @@ -10529,8 +10368,8 @@ "type": "paragraph", "children": [ { - "type": "text", - "value": "the public key provide by the app\nin its authentication request with which secrets will be encrypted", + "type": "inlineCode", + "value": "true", "position": { "start": { "line": 1, @@ -10538,137 +10377,43 @@ "offset": 0 }, "end": { - "line": 2, - "column": 67, - "offset": 100 + "line": 1, + "column": 7, + "offset": 6 }, - "indent": [ - 1 - ] + "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 67, - "offset": 100 }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 67, - "offset": 100 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - }, - "default": "null" - }, - { - "title": "param", - "name": "hubUrl", - "lineNumber": 19, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { "type": "text", - "value": "URL to the write path of the user's Gaia hub", + "value": " if valid, otherwise ", "position": { "start": { "line": 1, - "column": 1, - "offset": 0 + "column": 7, + "offset": 6 }, "end": { "line": 1, - "column": 45, - "offset": 44 + "column": 28, + "offset": 27 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - }, - "default": "null" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { - "type": "text", - "value": "signed and encoded authentication response token", + "type": "inlineCode", + "value": "false", "position": { "start": { "line": 1, - "column": 1, - "offset": 0 + "column": 28, + "offset": 27 }, "end": { "line": 1, - "column": 49, - "offset": 48 + "column": 35, + "offset": 34 }, "indent": [] } @@ -10682,8 +10427,8 @@ }, "end": { "line": 1, - "column": 49, - "offset": 48 + "column": 35, + "offset": 34 }, "indent": [] } @@ -10697,22 +10442,22 @@ }, "end": { "line": 1, - "column": 49, - "offset": 48 + "column": 35, + "offset": 34 } } }, "title": "returns", "type": { "type": "NameExpression", - "name": "String" + "name": "Boolean" } } ], "sees": [], "throws": [], "todos": [], - "name": "makeAuthResponse", + "name": "isRedirectUriValid", "kind": "function", "members": { "global": [], @@ -10723,11 +10468,11 @@ }, "path": [ { - "name": "makeAuthResponse", + "name": "isRedirectUriValid", "kind": "function" } ], - "namespace": "makeAuthResponse" + "namespace": "isRedirectUriValid" }, { "description": { @@ -10738,7 +10483,7 @@ "children": [ { "type": "text", - "value": "Checks if the expiration date of the ", + "value": "Broadcasts a signed bitcoin transaction to the network optionally waiting to broadcast the\ntransaction until a second transaction has a certain number of confirmations.", "position": { "start": { "line": 1, @@ -10746,45 +10491,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 38, - "offset": 37 - }, - "indent": [] - } - }, - { - "type": "inlineCode", - "value": "token", - "position": { - "start": { - "line": 1, - "column": 38, - "offset": 37 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " is before the current time", - "position": { - "start": { - "line": 1, - "column": 45, - "offset": 44 - }, - "end": { - "line": 1, - "column": 72, - "offset": 71 + "line": 2, + "column": 78, + "offset": 168 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -10795,11 +10508,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 72, - "offset": 71 + "line": 2, + "column": 78, + "offset": 168 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -10810,63 +10525,101 @@ "offset": 0 }, "end": { - "line": 1, - "column": 72, - "offset": 71 + "line": 2, + "column": 78, + "offset": 168 } } }, "tags": [ { "title": "param", - "description": "encoded and signed authentication token", - "lineNumber": 2, + "description": "the hex-encoded transaction to broadcast", + "lineNumber": 4, "type": { "type": "NameExpression", - "name": "String" + "name": "string" }, - "name": "token" + "name": "transaction" }, { - "title": "return", - "description": "`true` if the `token` has not yet expired, `false`\nif the `token` has expired", - "lineNumber": 3, + "title": "param", + "description": "the hex transaction id of the transaction to watch for\nthe specified number of confirmations before broadcasting the `transaction`", + "lineNumber": 5, "type": { "type": "NameExpression", - "name": "Boolean" + "name": "string" + }, + "name": "transactionToWatch" + }, + { + "title": "param", + "description": "the number of confirmations `transactionToWatch` must have\nbefore broadcasting `transaction`.", + "lineNumber": 7, + "type": { + "type": "NameExpression", + "name": "number" + }, + "name": "confirmations" + }, + { + "title": "return", + "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", + "lineNumber": 9, + "type": { + "type": "TypeApplication", + "expression": { + "type": "NameExpression", + "name": "Promise" + }, + "applications": [ + { + "type": "UnionType", + "elements": [ + { + "type": "NameExpression", + "name": "Object" + }, + { + "type": "NameExpression", + "name": "Error" + } + ] + } + ] } } ], "loc": { "start": { - "line": 153, - "column": 0 + "line": 239, + "column": 2 }, "end": { - "line": 158, - "column": 3 + "line": 256, + "column": 4 } }, "context": { "loc": { "start": { - "line": 159, - "column": 0 + "line": 257, + "column": 2 }, "end": { - "line": 174, - "column": 1 + "line": 292, + "column": 3 } }, - "file": "/Users/larry/git/blockstack.js/src/auth/authVerification.js" + "file": "/Users/larry/git/blockstack.js/src/network.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "token", - "lineNumber": 2, + "name": "transaction", + "lineNumber": 4, "description": { "type": "root", "children": [ @@ -10875,7 +10628,7 @@ "children": [ { "type": "text", - "value": "encoded and signed authentication token", + "value": "the hex-encoded transaction to broadcast", "position": { "start": { "line": 1, @@ -10884,8 +10637,8 @@ }, "end": { "line": 1, - "column": 40, - "offset": 39 + "column": 41, + "offset": 40 }, "indent": [] } @@ -10899,8 +10652,8 @@ }, "end": { "line": 1, - "column": 40, - "offset": 39 + "column": 41, + "offset": 40 }, "indent": [] } @@ -10914,20 +10667,20 @@ }, "end": { "line": 1, - "column": 40, - "offset": 39 + "column": 41, + "offset": 40 } } }, "type": { "type": "NameExpression", - "name": "String" + "name": "string" } - } - ], - "properties": [], - "returns": [ + }, { + "title": "param", + "name": "transactionToWatch", + "lineNumber": 5, "description": { "type": "root", "children": [ @@ -10935,8 +10688,8 @@ "type": "paragraph", "children": [ { - "type": "inlineCode", - "value": "true", + "type": "text", + "value": "the hex transaction id of the transaction to watch for\nthe specified number of confirmations before broadcasting the ", "position": { "start": { "line": 1, @@ -10944,94 +10697,126 @@ "offset": 0 }, "end": { - "line": 1, - "column": 7, - "offset": 6 + "line": 2, + "column": 63, + "offset": 117 }, - "indent": [] + "indent": [ + 1 + ] } }, { - "type": "text", - "value": " if the ", + "type": "inlineCode", + "value": "transaction", "position": { "start": { - "line": 1, - "column": 7, - "offset": 6 + "line": 2, + "column": 63, + "offset": 117 }, "end": { - "line": 1, - "column": 15, - "offset": 14 + "line": 2, + "column": 76, + "offset": 130 }, "indent": [] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 76, + "offset": 130 }, + "indent": [ + 1 + ] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 76, + "offset": 130 + } + } + }, + "type": { + "type": "NameExpression", + "name": "string" + }, + "default": "null" + }, + { + "title": "param", + "name": "confirmations", + "lineNumber": 7, + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ { - "type": "inlineCode", - "value": "token", + "type": "text", + "value": "the number of confirmations ", "position": { "start": { "line": 1, - "column": 15, - "offset": 14 + "column": 1, + "offset": 0 }, "end": { "line": 1, - "column": 22, - "offset": 21 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " has not yet expired, ", - "position": { - "start": { - "line": 1, - "column": 22, - "offset": 21 - }, - "end": { - "line": 1, - "column": 44, - "offset": 43 + "column": 29, + "offset": 28 }, "indent": [] } }, { "type": "inlineCode", - "value": "false", + "value": "transactionToWatch", "position": { "start": { "line": 1, - "column": 44, - "offset": 43 + "column": 29, + "offset": 28 }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 49, + "offset": 48 }, "indent": [] } }, { "type": "text", - "value": "\nif the ", + "value": " must have\nbefore broadcasting ", "position": { "start": { "line": 1, - "column": 51, - "offset": 50 + "column": 49, + "offset": 48 }, "end": { "line": 2, - "column": 8, - "offset": 58 + "column": 21, + "offset": 79 }, "indent": [ 1 @@ -11040,34 +10825,34 @@ }, { "type": "inlineCode", - "value": "token", + "value": "transaction", "position": { "start": { "line": 2, - "column": 8, - "offset": 58 + "column": 21, + "offset": 79 }, "end": { "line": 2, - "column": 15, - "offset": 65 + "column": 34, + "offset": 92 }, "indent": [] } }, { "type": "text", - "value": " has expired", + "value": ".", "position": { "start": { "line": 2, - "column": 15, - "offset": 65 + "column": 34, + "offset": 92 }, "end": { "line": 2, - "column": 27, - "offset": 77 + "column": 35, + "offset": 93 }, "indent": [] } @@ -11081,8 +10866,8 @@ }, "end": { "line": 2, - "column": 27, - "offset": 77 + "column": 35, + "offset": 93 }, "indent": [ 1 @@ -11098,48 +10883,81 @@ }, "end": { "line": 2, - "column": 27, - "offset": 77 + "column": 35, + "offset": 93 } } }, - "title": "returns", "type": { "type": "NameExpression", - "name": "Boolean" - } + "name": "number" + }, + "default": "6" } ], - "sees": [], - "throws": [], - "todos": [], - "name": "isExpirationDateValid", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ + "properties": [], + "returns": [ { - "name": "isExpirationDateValid", - "kind": "function" - } - ], - "namespace": "isExpirationDateValid" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "description": { + "type": "root", "children": [ { - "type": "text", - "value": "Makes sure the ", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "Returns a Promise that resolves to an object with a\n", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 1, + "offset": 52 + }, + "indent": [ + 1 + ] + } + }, + { + "type": "inlineCode", + "value": "transaction_hash", + "position": { + "start": { + "line": 2, + "column": 1, + "offset": 52 + }, + "end": { + "line": 2, + "column": 19, + "offset": 70 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " key containing the transaction hash of the broadcasted transaction.", + "position": { + "start": { + "line": 2, + "column": 19, + "offset": 70 + }, + "end": { + "line": 2, + "column": 87, + "offset": 138 + }, + "indent": [] + } + } + ], "position": { "start": { "line": 1, @@ -11147,163 +10965,246 @@ "offset": 0 }, "end": { - "line": 1, - "column": 16, - "offset": 15 + "line": 2, + "column": 87, + "offset": 138 }, - "indent": [] + "indent": [ + 1 + ] } }, { - "type": "inlineCode", - "value": "redirect_uri", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "In the event of an error, it rejects with:", + "position": { + "start": { + "line": 4, + "column": 1, + "offset": 140 + }, + "end": { + "line": 4, + "column": 43, + "offset": 182 + }, + "indent": [] + } + } + ], "position": { "start": { - "line": 1, - "column": 16, - "offset": 15 + "line": 4, + "column": 1, + "offset": 140 }, "end": { - "line": 1, - "column": 30, - "offset": 29 + "line": 4, + "column": 43, + "offset": 182 }, "indent": [] } }, { - "type": "text", - "value": " is a same origin absolute URL.", - "position": { - "start": { - "line": 1, - "column": 30, - "offset": 29 - }, - "end": { - "line": 1, - "column": 61, - "offset": 60 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 61, - "offset": 60 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 61, - "offset": 60 - } - } - }, - "tags": [ - { - "title": "param", - "description": "encoded and signed authentication token", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "token" - }, - { - "title": "return", - "description": "`true` if valid, otherwise `false`", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "Boolean" - } - } - ], - "loc": { - "start": { - "line": 187, - "column": 0 - }, - "end": { - "line": 191, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 192, - "column": 0 - }, - "end": { - "line": 195, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/auth/authVerification.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "token", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "type": "list", + "ordered": false, + "start": null, + "loose": false, "children": [ { - "type": "text", - "value": "encoded and signed authentication token", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "a ", + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 5, + "column": 5, + "offset": 187 + }, + "indent": [] + } + }, + { + "type": "inlineCode", + "value": "RemoteServiceError", + "position": { + "start": { + "line": 5, + "column": 5, + "offset": 187 + }, + "end": { + "line": 5, + "column": 25, + "offset": 207 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if there is a problem\nwith the transaction broadcast service", + "position": { + "start": { + "line": 5, + "column": 25, + "offset": 207 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 40, - "offset": 39 + "line": 6, + "column": 41, + "offset": 270 }, - "indent": [] + "indent": [ + 1 + ] + } + }, + { + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "inlineCode", + "value": "MissingParameterError", + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 7, + "column": 26, + "offset": 296 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if you call the function without a required\nparameter", + "position": { + "start": { + "line": 7, + "column": 26, + "offset": 296 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 7, + "column": 1, + "offset": 271 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 40, - "offset": 39 + "line": 8, + "column": 12, + "offset": 352 }, - "indent": [] + "indent": [ + 1, + 1, + 1 + ] } } ], @@ -11314,119 +11215,44 @@ "offset": 0 }, "end": { - "line": 1, - "column": 40, - "offset": 39 + "line": 8, + "column": 12, + "offset": 352 } } }, + "title": "returns", "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "inlineCode", - "value": "true", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 7, - "offset": 6 - }, - "indent": [] - } - }, + "type": "TypeApplication", + "expression": { + "type": "NameExpression", + "name": "Promise" + }, + "applications": [ + { + "type": "UnionType", + "elements": [ { - "type": "text", - "value": " if valid, otherwise ", - "position": { - "start": { - "line": 1, - "column": 7, - "offset": 6 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - }, - "indent": [] - } + "type": "NameExpression", + "name": "Object" }, { - "type": "inlineCode", - "value": "false", - "position": { - "start": { - "line": 1, - "column": 28, - "offset": 27 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } + "type": "NameExpression", + "name": "Error" } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 + ] } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Boolean" + ] } } ], "sees": [], "throws": [], "todos": [], - "name": "isRedirectUriValid", + "name": "broadcastTransaction", "kind": "function", + "memberof": "BlockstackNetwork", + "scope": "instance", "members": { "global": [], "inner": [], @@ -11436,11 +11262,12 @@ }, "path": [ { - "name": "isRedirectUriValid", - "kind": "function" + "name": "broadcastTransaction", + "kind": "function", + "scope": "instance" } ], - "namespace": "isRedirectUriValid" + "namespace": "#broadcastTransaction" }, { "description": { @@ -11451,7 +11278,7 @@ "children": [ { "type": "text", - "value": "Sign content using ECDSA", + "value": "Broadcasts a zone file to the Atlas network via the transaction broadcast service.", "position": { "start": { "line": 1, @@ -11460,8 +11287,8 @@ }, "end": { "line": 1, - "column": 25, - "offset": 24 + "column": 83, + "offset": 82 }, "indent": [] } @@ -11475,8 +11302,8 @@ }, "end": { "line": 1, - "column": 25, - "offset": 24 + "column": 83, + "offset": 82 }, "indent": [] } @@ -11490,72 +11317,90 @@ }, "end": { "line": 1, - "column": 25, - "offset": 24 + "column": 83, + "offset": 82 } } }, "tags": [ { "title": "param", - "description": "secp256k1 private key hex string", - "lineNumber": 2, + "description": "the zone file to be broadcast to the Atlas network", + "lineNumber": 3, "type": { "type": "NameExpression", "name": "String" }, - "name": "privateKey" + "name": "zoneFile" }, { "title": "param", - "description": "content to sign", - "lineNumber": 3, + "description": "the hex transaction id of the transaction\nto watch for confirmation before broadcasting the zone file to the Atlas network", + "lineNumber": 4, "type": { "type": "NameExpression", - "name": "Object" + "name": "String" }, - "name": "content" + "name": "transactionToWatch" }, { "title": "return", - "description": "contains:\nsignature - Hex encoded DER signature\npublic key - Hex encoded private string taken from privateKey", - "lineNumber": 4, + "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", + "lineNumber": 6, "type": { - "type": "NameExpression", - "name": "Object" + "type": "TypeApplication", + "expression": { + "type": "NameExpression", + "name": "Promise" + }, + "applications": [ + { + "type": "UnionType", + "elements": [ + { + "type": "NameExpression", + "name": "Object" + }, + { + "type": "NameExpression", + "name": "Error" + } + ] + } + ] } } ], "loc": { "start": { - "line": 151, - "column": 0 + "line": 294, + "column": 2 }, "end": { - "line": 158, - "column": 3 + "line": 308, + "column": 5 } }, "context": { "loc": { "start": { - "line": 159, - "column": 0 + "line": 309, + "column": 2 }, "end": { - "line": 172, - "column": 1 + "line": 362, + "column": 3 } }, - "file": "/Users/larry/git/blockstack.js/src/encryption.js" + "file": "/Users/larry/git/blockstack.js/src/network.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "privateKey", - "lineNumber": 2, + "name": "zoneFile", + "lineNumber": 3, "description": { "type": "root", "children": [ @@ -11564,7 +11409,7 @@ "children": [ { "type": "text", - "value": "secp256k1 private key hex string", + "value": "the zone file to be broadcast to the Atlas network", "position": { "start": { "line": 1, @@ -11573,8 +11418,8 @@ }, "end": { "line": 1, - "column": 33, - "offset": 32 + "column": 51, + "offset": 50 }, "indent": [] } @@ -11588,8 +11433,8 @@ }, "end": { "line": 1, - "column": 33, - "offset": 32 + "column": 51, + "offset": 50 }, "indent": [] } @@ -11603,8 +11448,8 @@ }, "end": { "line": 1, - "column": 33, - "offset": 32 + "column": 51, + "offset": 50 } } }, @@ -11615,8 +11460,8 @@ }, { "title": "param", - "name": "content", - "lineNumber": 3, + "name": "transactionToWatch", + "lineNumber": 4, "description": { "type": "root", "children": [ @@ -11625,7 +11470,7 @@ "children": [ { "type": "text", - "value": "content to sign", + "value": "the hex transaction id of the transaction\nto watch for confirmation before broadcasting the zone file to the Atlas network", "position": { "start": { "line": 1, @@ -11633,11 +11478,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 16, - "offset": 15 + "line": 2, + "column": 81, + "offset": 122 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -11648,11 +11495,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 16, - "offset": 15 + "line": 2, + "column": 81, + "offset": 122 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -11663,16 +11512,17 @@ "offset": 0 }, "end": { - "line": 1, - "column": 16, - "offset": 15 + "line": 2, + "column": 81, + "offset": 122 } } }, "type": { "type": "NameExpression", - "name": "Object" - } + "name": "String" + }, + "default": "null" } ], "properties": [], @@ -11686,7 +11536,7 @@ "children": [ { "type": "text", - "value": "contains:\nsignature - Hex encoded DER signature\npublic key - Hex encoded private string taken from privateKey", + "value": "Returns a Promise that resolves to an object with a\n", "position": { "start": { "line": 1, @@ -11694,227 +11544,45 @@ "offset": 0 }, "end": { - "line": 3, - "column": 62, - "offset": 109 + "line": 2, + "column": 1, + "offset": 52 }, "indent": [ - 1, 1 ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 3, - "column": 62, - "offset": 109 + { + "type": "inlineCode", + "value": "transaction_hash", + "position": { + "start": { + "line": 2, + "column": 1, + "offset": 52 + }, + "end": { + "line": 2, + "column": 19, + "offset": 70 + }, + "indent": [] + } }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 62, - "offset": 109 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Object" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "signECDSA", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "signECDSA", - "kind": "function" - } - ], - "namespace": "signECDSA" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Verify content using ECDSA", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 27, - "offset": 26 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 27, - "offset": 26 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 27, - "offset": 26 - } - } - }, - "tags": [ - { - "title": "param", - "description": "Content to verify was signed", - "lineNumber": 2, - "type": { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "String" - }, - { - "type": "NameExpression", - "name": "Buffer" - } - ] - }, - "name": "content" - }, - { - "title": "param", - "description": "secp256k1 private key hex string", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "publicKey" - }, - { - "title": "param", - "description": "Hex encoded DER signature", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "signature" - }, - { - "title": "return", - "description": "returns true when signature matches publickey + content, false if not", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "Boolean" - } - } - ], - "loc": { - "start": { - "line": 174, - "column": 0 - }, - "end": { - "line": 180, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 181, - "column": 0 - }, - "end": { - "line": 189, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/encryption.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "content", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { "type": "text", - "value": "Content to verify was signed", + "value": " key containing the transaction hash of the broadcasted transaction.", "position": { "start": { - "line": 1, - "column": 1, - "offset": 0 + "line": 2, + "column": 19, + "offset": 70 }, "end": { - "line": 1, - "column": 29, - "offset": 28 + "line": 2, + "column": 87, + "offset": 138 }, "indent": [] } @@ -11927,64 +11595,31 @@ "offset": 0 }, "end": { - "line": 1, - "column": 29, - "offset": 28 + "line": 2, + "column": 87, + "offset": 138 }, - "indent": [] + "indent": [ + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 29, - "offset": 28 - } - } - }, - "type": { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "String" }, - { - "type": "NameExpression", - "name": "Buffer" - } - ] - } - }, - { - "title": "param", - "name": "publicKey", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ { "type": "paragraph", "children": [ { "type": "text", - "value": "secp256k1 private key hex string", + "value": "In the event of an error, it rejects with:", "position": { "start": { - "line": 1, + "line": 4, "column": 1, - "offset": 0 + "offset": 140 }, "end": { - "line": 1, - "column": 33, - "offset": 32 + "line": 4, + "column": 43, + "offset": 182 }, "indent": [] } @@ -11992,138 +11627,214 @@ ], "position": { "start": { - "line": 1, + "line": 4, "column": 1, - "offset": 0 + "offset": 140 }, "end": { - "line": 1, - "column": 33, - "offset": 32 + "line": 4, + "column": 43, + "offset": 182 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 1, - "column": 33, - "offset": 32 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "signature", - "lineNumber": 4, - "description": { - "type": "root", - "children": [ { - "type": "paragraph", + "type": "list", + "ordered": false, + "start": null, + "loose": false, "children": [ { - "type": "text", - "value": "Hex encoded DER signature", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "a ", + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 5, + "column": 5, + "offset": 187 + }, + "indent": [] + } + }, + { + "type": "inlineCode", + "value": "RemoteServiceError", + "position": { + "start": { + "line": 5, + "column": 5, + "offset": 187 + }, + "end": { + "line": 5, + "column": 25, + "offset": 207 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if there is a problem\nwith the transaction broadcast service", + "position": { + "start": { + "line": 5, + "column": 25, + "offset": 207 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 26, - "offset": 25 + "line": 6, + "column": 41, + "offset": 270 }, - "indent": [] + "indent": [ + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 26, - "offset": 25 }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 26, - "offset": 25 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { - "type": "text", - "value": "returns true when signature matches publickey + content, false if not", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "inlineCode", + "value": "MissingParameterError", + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 7, + "column": 26, + "offset": 296 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if you call the function without a required\nparameter", + "position": { + "start": { + "line": 7, + "column": 26, + "offset": 296 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 7, "column": 1, - "offset": 0 + "offset": 271 }, "end": { - "line": 1, - "column": 70, - "offset": 69 + "line": 8, + "column": 12, + "offset": 352 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 70, - "offset": 69 + "line": 8, + "column": 12, + "offset": 352 }, - "indent": [] + "indent": [ + 1, + 1, + 1 + ] } } ], @@ -12134,24 +11845,44 @@ "offset": 0 }, "end": { - "line": 1, - "column": 70, - "offset": 69 + "line": 8, + "column": 12, + "offset": 352 } } }, "title": "returns", "type": { - "type": "NameExpression", - "name": "Boolean" - } - } - ], - "sees": [], - "throws": [], + "type": "TypeApplication", + "expression": { + "type": "NameExpression", + "name": "Promise" + }, + "applications": [ + { + "type": "UnionType", + "elements": [ + { + "type": "NameExpression", + "name": "Object" + }, + { + "type": "NameExpression", + "name": "Error" + } + ] + } + ] + } + } + ], + "sees": [], + "throws": [], "todos": [], - "name": "verifyECDSA", + "name": "broadcastZoneFile", "kind": "function", + "memberof": "BlockstackNetwork", + "scope": "instance", "members": { "global": [], "inner": [], @@ -12161,11 +11892,12 @@ }, "path": [ { - "name": "verifyECDSA", - "kind": "function" + "name": "broadcastZoneFile", + "kind": "function", + "scope": "instance" } ], - "namespace": "verifyECDSA" + "namespace": "#broadcastZoneFile" }, { "description": { @@ -12176,7 +11908,7 @@ "children": [ { "type": "text", - "value": "Encrypt a raw mnemonic phrase to be password protected", + "value": "Sends the preorder and registration transactions and zone file\nfor a Blockstack name registration\nalong with the to the transaction broadcast service.", "position": { "start": { "line": 1, @@ -12184,11 +11916,14 @@ "offset": 0 }, "end": { - "line": 1, - "column": 55, - "offset": 54 + "line": 3, + "column": 53, + "offset": 150 }, - "indent": [] + "indent": [ + 1, + 1 + ] } } ], @@ -12199,131 +11934,32 @@ "offset": 0 }, "end": { - "line": 1, - "column": 55, - "offset": 54 + "line": 3, + "column": 53, + "offset": 150 }, - "indent": [] + "indent": [ + 1, + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 55, - "offset": 54 - } - } - }, - "tags": [ - { - "title": "param", - "description": "Raw mnemonic phrase", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "phrase" - }, - { - "title": "param", - "description": "Password to encrypt mnemonic with", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "password" - }, - { - "title": "return", - "description": "The encrypted phrase", - "lineNumber": 4, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "Buffer" - } - ] - } - } - ], - "loc": { - "start": { - "line": 191, - "column": 0 - }, - "end": { - "line": 196, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 197, - "column": 0 }, - "end": { - "line": 229, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/encryption.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "phrase", - "lineNumber": 2, - "description": { - "type": "root", + { + "type": "paragraph", "children": [ { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Raw mnemonic phrase", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 20, - "offset": 19 - }, - "indent": [] - } - } - ], + "type": "text", + "value": "The transaction broadcast:", "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 152 }, "end": { - "line": 1, - "column": 20, - "offset": 19 + "line": 5, + "column": 27, + "offset": 178 }, "indent": [] } @@ -12331,45 +11967,60 @@ ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 152 }, "end": { - "line": 1, - "column": 20, - "offset": 19 - } + "line": 5, + "column": 27, + "offset": 178 + }, + "indent": [] } }, - "type": { - "type": "NameExpression", - "name": "string" - } - }, - { - "title": "param", - "name": "password", - "lineNumber": 3, - "description": { - "type": "root", + { + "type": "list", + "ordered": false, + "start": null, + "loose": false, "children": [ { - "type": "paragraph", + "type": "listItem", + "loose": false, + "checked": null, "children": [ { - "type": "text", - "value": "Password to encrypt mnemonic with", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "immediately broadcasts the preorder transaction", + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 182 + }, + "end": { + "line": 7, + "column": 50, + "offset": 229 + }, + "indent": [] + } + } + ], "position": { "start": { - "line": 1, - "column": 1, - "offset": 0 + "line": 7, + "column": 3, + "offset": 182 }, "end": { - "line": 1, - "column": 34, - "offset": 33 + "line": 7, + "column": 50, + "offset": 229 }, "indent": [] } @@ -12377,166 +12028,158 @@ ], "position": { "start": { - "line": 1, + "line": 7, "column": 1, - "offset": 0 + "offset": 180 }, "end": { - "line": 1, - "column": 34, - "offset": 33 + "line": 7, + "column": 50, + "offset": 229 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 1, - "column": 34, - "offset": 33 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ { - "type": "paragraph", + "type": "listItem", + "loose": false, + "checked": null, "children": [ { - "type": "text", - "value": "The encrypted phrase", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "broadcasts the register transactions after the preorder transaction\nhas an appropriate number of confirmations", + "position": { + "start": { + "line": 8, + "column": 3, + "offset": 232 + }, + "end": { + "line": 9, + "column": 43, + "offset": 342 + }, + "indent": [ + 1 + ] + } + } + ], "position": { "start": { - "line": 1, - "column": 1, - "offset": 0 + "line": 8, + "column": 3, + "offset": 232 }, "end": { - "line": 1, - "column": 21, - "offset": 20 + "line": 9, + "column": 43, + "offset": 342 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 1, + "line": 8, "column": 1, - "offset": 0 + "offset": 230 }, "end": { - "line": 1, - "column": 21, - "offset": 20 + "line": 9, + "column": 43, + "offset": 342 }, - "indent": [] + "indent": [ + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 1, - "column": 21, - "offset": 20 - } - } - }, - "title": "returns", - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "Buffer" - } - ] - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "encryptMnemonic", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "encryptMnemonic", - "kind": "function" - } - ], - "namespace": "encryptMnemonic" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { - "type": "text", - "value": "Decrypt legacy triplesec keys", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "broadcasts the zone file to the Atlas network after the register transaction\nhas an appropriate number of confirmations", + "position": { + "start": { + "line": 10, + "column": 3, + "offset": 345 + }, + "end": { + "line": 11, + "column": 43, + "offset": 464 + }, + "indent": [ + 1 + ] + } + } + ], + "position": { + "start": { + "line": 10, + "column": 3, + "offset": 345 + }, + "end": { + "line": 11, + "column": 43, + "offset": 464 + }, + "indent": [ + 1 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 10, "column": 1, - "offset": 0 + "offset": 343 }, "end": { - "line": 1, - "column": 30, - "offset": 29 + "line": 11, + "column": 43, + "offset": 464 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 1, + "line": 7, "column": 1, - "offset": 0 + "offset": 180 }, "end": { - "line": 1, - "column": 30, - "offset": 29 + "line": 11, + "column": 43, + "offset": 464 }, - "indent": [] + "indent": [ + 1, + 1, + 1, + 1 + ] } } ], @@ -12547,37 +12190,47 @@ "offset": 0 }, "end": { - "line": 1, - "column": 30, - "offset": 29 + "line": 11, + "column": 43, + "offset": 464 } } }, "tags": [ { "title": "param", - "description": "The encrypted key", - "lineNumber": 2, + "description": "the hex-encoded, signed preorder transaction generated\nusing the `makePreorder` function", + "lineNumber": 13, "type": { "type": "NameExpression", - "name": "Buffer" + "name": "String" }, - "name": "dataBuffer" + "name": "preorderTransaction" }, { "title": "param", - "description": "Password for data", - "lineNumber": 3, + "description": "the hex-encoded, signed register transaction generated\nusing the `makeRegister` function", + "lineNumber": 15, + "type": { + "type": "NameExpression", + "name": "String" + }, + "name": "registerTransaction" + }, + { + "title": "param", + "description": "the zone file to be broadcast to the Atlas network", + "lineNumber": 17, "type": { "type": "NameExpression", "name": "String" }, - "name": "password" + "name": "zoneFile" }, { "title": "return", - "description": "Decrypted seed", - "lineNumber": 4, + "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", + "lineNumber": 18, "type": { "type": "TypeApplication", "expression": { @@ -12586,8 +12239,17 @@ }, "applications": [ { - "type": "NameExpression", - "name": "Buffer" + "type": "UnionType", + "elements": [ + { + "type": "NameExpression", + "name": "Object" + }, + { + "type": "NameExpression", + "name": "Error" + } + ] } ] } @@ -12595,34 +12257,34 @@ ], "loc": { "start": { - "line": 281, - "column": 0 + "line": 364, + "column": 2 }, "end": { - "line": 286, - "column": 3 + "line": 390, + "column": 5 } }, "context": { "loc": { "start": { - "line": 287, - "column": 0 + "line": 391, + "column": 2 }, "end": { - "line": 303, - "column": 1 + "line": 428, + "column": 3 } }, - "file": "/Users/larry/git/blockstack.js/src/encryption.js" + "file": "/Users/larry/git/blockstack.js/src/network.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "dataBuffer", - "lineNumber": 2, + "name": "preorderTransaction", + "lineNumber": 13, "description": { "type": "root", "children": [ @@ -12631,7 +12293,7 @@ "children": [ { "type": "text", - "value": "The encrypted key", + "value": "the hex-encoded, signed preorder transaction generated\nusing the ", "position": { "start": { "line": 1, @@ -12639,11 +12301,47 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 11, + "offset": 65 }, - "indent": [] + "indent": [ + 1 + ] + } + }, + { + "type": "inlineCode", + "value": "makePreorder", + "position": { + "start": { + "line": 2, + "column": 11, + "offset": 65 + }, + "end": { + "line": 2, + "column": 25, + "offset": 79 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " function", + "position": { + "start": { + "line": 2, + "column": 25, + "offset": 79 + }, + "end": { + "line": 2, + "column": 34, + "offset": 88 + }, + "indent": [] } } ], @@ -12654,11 +12352,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 34, + "offset": 88 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -12669,21 +12369,21 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 34, + "offset": 88 } } }, "type": { "type": "NameExpression", - "name": "Buffer" + "name": "String" } }, { "title": "param", - "name": "password", - "lineNumber": 3, + "name": "registerTransaction", + "lineNumber": 15, "description": { "type": "root", "children": [ @@ -12692,7 +12392,7 @@ "children": [ { "type": "text", - "value": "Password for data", + "value": "the hex-encoded, signed register transaction generated\nusing the ", "position": { "start": { "line": 1, @@ -12700,9 +12400,45 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 11, + "offset": 65 + }, + "indent": [ + 1 + ] + } + }, + { + "type": "inlineCode", + "value": "makeRegister", + "position": { + "start": { + "line": 2, + "column": 11, + "offset": 65 + }, + "end": { + "line": 2, + "column": 25, + "offset": 79 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " function", + "position": { + "start": { + "line": 2, + "column": 25, + "offset": 79 + }, + "end": { + "line": 2, + "column": 34, + "offset": 88 }, "indent": [] } @@ -12715,11 +12451,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 34, + "offset": 88 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -12730,9 +12468,9 @@ "offset": 0 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 2, + "column": 34, + "offset": 88 } } }, @@ -12740,11 +12478,11 @@ "type": "NameExpression", "name": "String" } - } - ], - "properties": [], - "returns": [ + }, { + "title": "param", + "name": "zoneFile", + "lineNumber": 17, "description": { "type": "root", "children": [ @@ -12753,7 +12491,7 @@ "children": [ { "type": "text", - "value": "Decrypted seed", + "value": "the zone file to be broadcast to the Atlas network", "position": { "start": { "line": 1, @@ -12762,8 +12500,8 @@ }, "end": { "line": 1, - "column": 15, - "offset": 14 + "column": 51, + "offset": 50 }, "indent": [] } @@ -12777,8 +12515,8 @@ }, "end": { "line": 1, - "column": 15, - "offset": 14 + "column": 51, + "offset": 50 }, "indent": [] } @@ -12792,57 +12530,80 @@ }, "end": { "line": 1, - "column": 15, - "offset": 14 + "column": 51, + "offset": 50 } } }, - "title": "returns", "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "Buffer" - } - ] + "type": "NameExpression", + "name": "String" } } ], - "sees": [], - "throws": [], - "todos": [], - "name": "decryptLegacy", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ + "properties": [], + "returns": [ { - "name": "decryptLegacy", - "kind": "function" - } - ], - "namespace": "decryptLegacy" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "description": { + "type": "root", "children": [ { - "type": "text", - "value": "Encrypt a raw mnemonic phrase with a password", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "Returns a Promise that resolves to an object with a\n", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 1, + "offset": 52 + }, + "indent": [ + 1 + ] + } + }, + { + "type": "inlineCode", + "value": "transaction_hash", + "position": { + "start": { + "line": 2, + "column": 1, + "offset": 52 + }, + "end": { + "line": 2, + "column": 19, + "offset": 70 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " key containing the transaction hash of the broadcasted transaction.", + "position": { + "start": { + "line": 2, + "column": 19, + "offset": 70 + }, + "end": { + "line": 2, + "column": 87, + "offset": 138 + }, + "indent": [] + } + } + ], "position": { "start": { "line": 1, @@ -12850,140 +12611,31 @@ "offset": 0 }, "end": { - "line": 1, - "column": 46, - "offset": 45 + "line": 2, + "column": 87, + "offset": 138 }, - "indent": [] + "indent": [ + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 1, - "column": 46, - "offset": 45 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 46, - "offset": 45 - } - } - }, - "tags": [ - { - "title": "param", - "description": "Buffer or hex-encoded string of the encrypted mnemonic", - "lineNumber": 2, - "type": { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "string" - }, - { - "type": "NameExpression", - "name": "Buffer" - } - ] - }, - "name": "data" - }, - { - "title": "param", - "description": "Password for data", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "password" - }, - { - "title": "return", - "description": "the raw mnemonic phrase", - "lineNumber": 4, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "Buffer" - } - ] - } - } - ], - "loc": { - "start": { - "line": 305, - "column": 0 - }, - "end": { - "line": 310, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 311, - "column": 0 - }, - "end": { - "line": 320, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/encryption.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "data", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ { "type": "paragraph", "children": [ { "type": "text", - "value": "Buffer or hex-encoded string of the encrypted mnemonic", + "value": "In the event of an error, it rejects with:", "position": { "start": { - "line": 1, + "line": 4, "column": 1, - "offset": 0 + "offset": 140 }, "end": { - "line": 1, - "column": 55, - "offset": 54 + "line": 4, + "column": 43, + "offset": 182 }, "indent": [] } @@ -12991,147 +12643,214 @@ ], "position": { "start": { - "line": 1, + "line": 4, "column": 1, - "offset": 0 + "offset": 140 }, "end": { - "line": 1, - "column": 55, - "offset": 54 + "line": 4, + "column": 43, + "offset": 182 }, "indent": [] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 55, - "offset": 54 - } - } - }, - "type": { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "string" }, { - "type": "NameExpression", - "name": "Buffer" - } - ] - } - }, - { - "title": "param", - "name": "password", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "type": "list", + "ordered": false, + "start": null, + "loose": false, "children": [ { - "type": "text", - "value": "Password for data", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "a ", + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 5, + "column": 5, + "offset": 187 + }, + "indent": [] + } + }, + { + "type": "inlineCode", + "value": "RemoteServiceError", + "position": { + "start": { + "line": 5, + "column": 5, + "offset": 187 + }, + "end": { + "line": 5, + "column": 25, + "offset": 207 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if there is a problem\nwith the transaction broadcast service", + "position": { + "start": { + "line": 5, + "column": 25, + "offset": 207 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 5, + "column": 3, + "offset": 185 + }, + "end": { + "line": 6, + "column": 41, + "offset": 270 + }, + "indent": [ + 3 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 18, - "offset": 17 + "line": 6, + "column": 41, + "offset": 270 }, - "indent": [] + "indent": [ + 1 + ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 18, - "offset": 17 }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 18, - "offset": 17 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ { - "type": "text", - "value": "the raw mnemonic phrase", + "type": "listItem", + "loose": false, + "checked": null, + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "inlineCode", + "value": "MissingParameterError", + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 7, + "column": 26, + "offset": 296 + }, + "indent": [] + } + }, + { + "type": "text", + "value": " if you call the function without a required\nparameter", + "position": { + "start": { + "line": 7, + "column": 26, + "offset": 296 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], + "position": { + "start": { + "line": 7, + "column": 3, + "offset": 273 + }, + "end": { + "line": 8, + "column": 12, + "offset": 352 + }, + "indent": [ + 3 + ] + } + } + ], "position": { "start": { - "line": 1, + "line": 7, "column": 1, - "offset": 0 + "offset": 271 }, "end": { - "line": 1, - "column": 24, - "offset": 23 + "line": 8, + "column": 12, + "offset": 352 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 1, + "line": 5, "column": 1, - "offset": 0 + "offset": 183 }, "end": { - "line": 1, - "column": 24, - "offset": 23 + "line": 8, + "column": 12, + "offset": 352 }, - "indent": [] + "indent": [ + 1, + 1, + 1 + ] } } ], @@ -13142,9 +12861,9 @@ "offset": 0 }, "end": { - "line": 1, - "column": 24, - "offset": 23 + "line": 8, + "column": 12, + "offset": 352 } } }, @@ -13157,8 +12876,17 @@ }, "applications": [ { - "type": "NameExpression", - "name": "Buffer" + "type": "UnionType", + "elements": [ + { + "type": "NameExpression", + "name": "Object" + }, + { + "type": "NameExpression", + "name": "Error" + } + ] } ] } @@ -13167,8 +12895,10 @@ "sees": [], "throws": [], "todos": [], - "name": "decryptMnemonic", + "name": "broadcastNameRegistration", "kind": "function", + "memberof": "BlockstackNetwork", + "scope": "instance", "members": { "global": [], "inner": [], @@ -13178,22 +12908,76 @@ }, "path": [ { - "name": "decryptMnemonic", - "kind": "function" + "name": "broadcastNameRegistration", + "kind": "function", + "scope": "instance" } ], - "namespace": "decryptMnemonic" + "namespace": "#broadcastNameRegistration" }, { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "description": "", + "tags": [ + { + "title": "returns", + "description": "version number of the signer, currently, should always be 1", + "lineNumber": 1, + "type": null + } + ], + "loc": { + "start": { + "line": 6, + "column": 2 + }, + "end": { + "line": 8, + "column": 5 + } + }, + "context": { + "loc": { + "start": { + "line": 9, + "column": 2 + }, + "end": { + "line": 9, + "column": 26 + } + }, + "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" + }, + "augments": [], + "examples": [], + "params": [], + "properties": [], + "returns": [ + { + "description": { + "type": "root", "children": [ { - "type": "text", - "value": "Broadcasts a signed bitcoin transaction to the network optionally waiting to broadcast the\ntransaction until a second transaction has a certain number of confirmations.", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "version number of the signer, currently, should always be 1", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 60, + "offset": 59 + }, + "indent": [] + } + } + ], "position": { "start": { "line": 1, @@ -13201,13 +12985,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 78, - "offset": 168 + "line": 1, + "column": 60, + "offset": 59 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -13218,118 +13000,72 @@ "offset": 0 }, "end": { - "line": 2, - "column": 78, - "offset": 168 - }, - "indent": [ - 1 - ] + "line": 1, + "column": 60, + "offset": 59 + } } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 }, - "end": { - "line": 2, - "column": 78, - "offset": 168 - } + "title": "returns" } - }, - "tags": [ - { - "title": "param", - "description": "the hex-encoded transaction to broadcast", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "transaction" - }, - { - "title": "param", - "description": "the hex transaction id of the transaction to watch for\nthe specified number of confirmations before broadcasting the `transaction`", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "transactionToWatch" - }, + ], + "sees": [], + "throws": [], + "todos": [], + "name": "signerVersion", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ { - "title": "param", - "description": "the number of confirmations `transactionToWatch` must have\nbefore broadcasting `transaction`.", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "number" - }, - "name": "confirmations" - }, + "name": "signerVersion" + } + ], + "namespace": "signerVersion" + }, + { + "description": "", + "tags": [ { - "title": "return", - "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", - "lineNumber": 9, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] - } + "title": "returns", + "description": "a string representing the transaction signer's address\n(usually Base58 check encoding)", + "lineNumber": 1, + "type": null } ], "loc": { "start": { - "line": 239, + "line": 10, "column": 2 }, "end": { - "line": 256, - "column": 4 + "line": 13, + "column": 5 } }, "context": { "loc": { "start": { - "line": 257, + "line": 14, "column": 2 }, "end": { - "line": 292, - "column": 3 + "line": 14, + "column": 32 } }, - "file": "/Users/larry/git/blockstack.js/src/network.js" + "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" }, "augments": [], "examples": [], - "params": [ + "params": [], + "properties": [], + "returns": [ { - "title": "param", - "name": "transaction", - "lineNumber": 4, "description": { "type": "root", "children": [ @@ -13338,7 +13074,7 @@ "children": [ { "type": "text", - "value": "the hex-encoded transaction to broadcast", + "value": "a string representing the transaction signer's address\n(usually Base58 check encoding)", "position": { "start": { "line": 1, @@ -13346,11 +13082,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 41, - "offset": 40 + "line": 2, + "column": 32, + "offset": 86 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -13361,11 +13099,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 41, - "offset": 40 + "line": 2, + "column": 32, + "offset": 86 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -13376,64 +13116,43 @@ "offset": 0 }, "end": { - "line": 1, - "column": 41, - "offset": 40 + "line": 2, + "column": 32, + "offset": 86 } } }, - "type": { - "type": "NameExpression", - "name": "string" - } - }, + "title": "returns" + } + ], + "sees": [], + "throws": [], + "todos": [], + "name": "getAddress", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ { - "title": "param", - "name": "transactionToWatch", - "lineNumber": 5, - "description": { - "type": "root", + "name": "getAddress" + } + ], + "namespace": "getAddress" + }, + { + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", "children": [ { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the hex transaction id of the transaction to watch for\nthe specified number of confirmations before broadcasting the ", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 63, - "offset": 117 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "transaction", - "position": { - "start": { - "line": 2, - "column": 63, - "offset": 117 - }, - "end": { - "line": 2, - "column": 76, - "offset": 130 - }, - "indent": [] - } - } - ], + "type": "text", + "value": "Signs a transaction input", "position": { "start": { "line": 1, @@ -13441,13 +13160,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 76, - "offset": 130 + "line": 1, + "column": 26, + "offset": 25 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -13458,111 +13175,98 @@ "offset": 0 }, "end": { - "line": 2, - "column": 76, - "offset": 130 - } + "line": 1, + "column": 26, + "offset": 25 + }, + "indent": [] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, + "end": { + "line": 1, + "column": 26, + "offset": 25 + } + } + }, + "tags": [ + { + "title": "param", + "description": "the transaction to sign", + "lineNumber": 2, "type": { "type": "NameExpression", - "name": "string" + "name": "TransactionBuilder" }, - "default": "null" + "name": "transaction" }, { "title": "param", - "name": "confirmations", - "lineNumber": 7, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the number of confirmations ", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 29, - "offset": 28 - }, - "indent": [] - } - }, - { - "type": "inlineCode", - "value": "transactionToWatch", - "position": { - "start": { - "line": 1, - "column": 29, - "offset": 28 - }, - "end": { - "line": 1, - "column": 49, - "offset": 48 - }, - "indent": [] - } - }, + "description": "the input on the transaction to sign", + "lineNumber": 3, + "type": { + "type": "NameExpression", + "name": "number" + }, + "name": "inputIndex" + } + ], + "loc": { + "start": { + "line": 15, + "column": 2 + }, + "end": { + "line": 19, + "column": 5 + } + }, + "context": { + "loc": { + "start": { + "line": 20, + "column": 2 + }, + "end": { + "line": 20, + "column": 96 + } + }, + "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" + }, + "augments": [], + "examples": [], + "params": [ + { + "title": "param", + "name": "transaction", + "lineNumber": 2, + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ { "type": "text", - "value": " must have\nbefore broadcasting ", + "value": "the transaction to sign", "position": { "start": { "line": 1, - "column": 49, - "offset": 48 - }, - "end": { - "line": 2, - "column": 21, - "offset": 79 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "transaction", - "position": { - "start": { - "line": 2, - "column": 21, - "offset": 79 - }, - "end": { - "line": 2, - "column": 34, - "offset": 92 - }, - "indent": [] - } - }, - { - "type": "text", - "value": ".", - "position": { - "start": { - "line": 2, - "column": 34, - "offset": 92 + "column": 1, + "offset": 0 }, "end": { - "line": 2, - "column": 35, - "offset": 93 + "line": 1, + "column": 24, + "offset": 23 }, "indent": [] } @@ -13575,13 +13279,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 35, - "offset": 93 + "line": 1, + "column": 24, + "offset": 23 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -13592,22 +13294,21 @@ "offset": 0 }, "end": { - "line": 2, - "column": 35, - "offset": 93 + "line": 1, + "column": 24, + "offset": 23 } } }, "type": { "type": "NameExpression", - "name": "number" - }, - "default": "6" - } - ], - "properties": [], - "returns": [ + "name": "TransactionBuilder" + } + }, { + "title": "param", + "name": "inputIndex", + "lineNumber": 3, "description": { "type": "root", "children": [ @@ -13616,7 +13317,7 @@ "children": [ { "type": "text", - "value": "Returns a Promise that resolves to an object with a\n", + "value": "the input on the transaction to sign", "position": { "start": { "line": 1, @@ -13624,45 +13325,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 1, - "offset": 52 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "transaction_hash", - "position": { - "start": { - "line": 2, - "column": 1, - "offset": 52 - }, - "end": { - "line": 2, - "column": 19, - "offset": 70 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " key containing the transaction hash of the broadcasted transaction.", - "position": { - "start": { - "line": 2, - "column": 19, - "offset": 70 - }, - "end": { - "line": 2, - "column": 87, - "offset": 138 + "line": 1, + "column": 37, + "offset": 36 }, "indent": [] } @@ -13675,294 +13340,39 @@ "offset": 0 }, "end": { - "line": 2, - "column": 87, - "offset": 138 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "In the event of an error, it rejects with:", - "position": { - "start": { - "line": 4, - "column": 1, - "offset": 140 - }, - "end": { - "line": 4, - "column": 43, - "offset": 182 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 4, - "column": 1, - "offset": 140 - }, - "end": { - "line": 4, - "column": 43, - "offset": 182 + "line": 1, + "column": 37, + "offset": 36 }, "indent": [] } - }, - { - "type": "list", - "ordered": false, - "start": null, - "loose": false, - "children": [ - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a ", - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 5, - "column": 5, - "offset": 187 - }, - "indent": [] - } - }, - { - "type": "inlineCode", - "value": "RemoteServiceError", - "position": { - "start": { - "line": 5, - "column": 5, - "offset": 187 - }, - "end": { - "line": 5, - "column": 25, - "offset": 207 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if there is a problem\nwith the transaction broadcast service", - "position": { - "start": { - "line": 5, - "column": 25, - "offset": 207 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 1, - "offset": 183 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "inlineCode", - "value": "MissingParameterError", - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 7, - "column": 26, - "offset": 296 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if you call the function without a required\nparameter", - "position": { - "start": { - "line": 7, - "column": 26, - "offset": 296 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 1, - "offset": 271 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 1, - "offset": 183 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, "end": { - "line": 8, - "column": 12, - "offset": 352 + "line": 1, + "column": 37, + "offset": 36 } } }, - "title": "returns", "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] + "type": "NameExpression", + "name": "number" } } ], + "properties": [], + "returns": [], "sees": [], "throws": [], "todos": [], - "name": "broadcastTransaction", - "kind": "function", - "memberof": "BlockstackNetwork", - "scope": "instance", + "name": "signTransaction", "members": { "global": [], "inner": [], @@ -13972,12 +13382,10 @@ }, "path": [ { - "name": "broadcastTransaction", - "kind": "function", - "scope": "instance" + "name": "signTransaction" } ], - "namespace": "#broadcastTransaction" + "namespace": "signTransaction" }, { "description": { @@ -13988,7 +13396,7 @@ "children": [ { "type": "text", - "value": "Broadcasts a zone file to the Atlas network via the transaction broadcast service.", + "value": "Class representing a transaction signer for pubkeyhash addresses\n(a.k.a. single-sig addresses)", "position": { "start": { "line": 1, @@ -13996,11 +13404,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 83, - "offset": 82 + "line": 2, + "column": 30, + "offset": 94 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -14011,11 +13421,13 @@ "offset": 0 }, "end": { - "line": 1, - "column": 83, - "offset": 82 + "line": 2, + "column": 30, + "offset": 94 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -14026,91 +13438,205 @@ "offset": 0 }, "end": { - "line": 1, - "column": 83, - "offset": 82 + "line": 2, + "column": 30, + "offset": 94 + } + } + }, + "tags": [], + "loc": { + "start": { + "line": 23, + "column": 0 + }, + "end": { + "line": 26, + "column": 3 + } + }, + "context": { + "loc": { + "start": { + "line": 27, + "column": 0 + }, + "end": { + "line": 53, + "column": 1 + } + }, + "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" + }, + "augments": [], + "examples": [], + "params": [ + { + "title": "param", + "name": "ecPair", + "lineNumber": 30, + "type": { + "type": "NameExpression", + "name": "bitcoinjs.ECPair" + } + } + ], + "properties": [], + "returns": [], + "sees": [], + "throws": [], + "todos": [], + "name": "PubkeyHashSigner", + "kind": "class", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ + { + "name": "PubkeyHashSigner", + "kind": "class" + } + ], + "namespace": "PubkeyHashSigner" + }, + { + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "Estimates cost of a namesapce reveal transaction for a namespace", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 65, + "offset": 64 + }, + "indent": [] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 65, + "offset": 64 + }, + "indent": [] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 65, + "offset": 64 } } }, "tags": [ { "title": "param", - "description": "the zone file to be broadcast to the Atlas network", + "description": "the namespace to reveal", + "lineNumber": 2, + "type": { + "type": "NameExpression", + "name": "BlockstackNamespace" + }, + "name": "namespace" + }, + { + "title": "param", + "description": "the address to receive the namespace\n (this must have been passed as 'revealAddress' to a prior namespace\n preorder)", "lineNumber": 3, "type": { "type": "NameExpression", "name": "String" }, - "name": "zoneFile" + "name": "revealAddress" }, { "title": "param", - "description": "the hex transaction id of the transaction\nto watch for confirmation before broadcasting the zone file to the Atlas network", - "lineNumber": 4, + "description": "the address that pays for this transaction", + "lineNumber": 6, "type": { "type": "NameExpression", "name": "String" }, - "name": "transactionToWatch" + "name": "paymentAddress" }, { - "title": "return", - "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", - "lineNumber": 6, + "title": "param", + "description": "the number of UTXOs we expect will be required\n from the payment address", + "lineNumber": 7, "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] + "type": "NameExpression", + "name": "Number" + }, + "name": "paymentUtxos" + }, + { + "title": "returns", + "description": "a promise which resolves to the satoshi cost to\n fund the reveal. This includes a 5500 satoshi dust output for the\n preorder. Even though this is a change output, the payer must have\n enough funds to generate this output, so we include it in the cost.", + "lineNumber": 9, + "type": { + "type": "NameExpression", + "name": "Promise" } } ], "loc": { "start": { - "line": 294, - "column": 2 + "line": 297, + "column": 0 }, "end": { - "line": 308, - "column": 5 + "line": 310, + "column": 3 } }, "context": { "loc": { "start": { - "line": 309, - "column": 2 + "line": 311, + "column": 0 }, "end": { - "line": 362, - "column": 3 + "line": 325, + "column": 1 } }, - "file": "/Users/larry/git/blockstack.js/src/network.js" + "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "zoneFile", - "lineNumber": 3, + "name": "namespace", + "lineNumber": 2, "description": { "type": "root", "children": [ @@ -14119,7 +13645,7 @@ "children": [ { "type": "text", - "value": "the zone file to be broadcast to the Atlas network", + "value": "the namespace to reveal", "position": { "start": { "line": 1, @@ -14128,8 +13654,8 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 24, + "offset": 23 }, "indent": [] } @@ -14143,8 +13669,8 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 24, + "offset": 23 }, "indent": [] } @@ -14158,20 +13684,20 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 24, + "offset": 23 } } }, "type": { "type": "NameExpression", - "name": "String" + "name": "BlockstackNamespace" } }, { "title": "param", - "name": "transactionToWatch", - "lineNumber": 4, + "name": "revealAddress", + "lineNumber": 3, "description": { "type": "root", "children": [ @@ -14180,7 +13706,7 @@ "children": [ { "type": "text", - "value": "the hex transaction id of the transaction\nto watch for confirmation before broadcasting the zone file to the Atlas network", + "value": "the address to receive the namespace\n (this must have been passed as 'revealAddress' to a prior namespace\n preorder)", "position": { "start": { "line": 1, @@ -14188,11 +13714,12 @@ "offset": 0 }, "end": { - "line": 2, - "column": 81, - "offset": 122 + "line": 3, + "column": 13, + "offset": 120 }, "indent": [ + 1, 1 ] } @@ -14205,11 +13732,12 @@ "offset": 0 }, "end": { - "line": 2, - "column": 81, - "offset": 122 + "line": 3, + "column": 13, + "offset": 120 }, "indent": [ + 1, 1 ] } @@ -14222,22 +13750,21 @@ "offset": 0 }, "end": { - "line": 2, - "column": 81, - "offset": 122 + "line": 3, + "column": 13, + "offset": 120 } } }, "type": { "type": "NameExpression", "name": "String" - }, - "default": "null" - } - ], - "properties": [], - "returns": [ + } + }, { + "title": "param", + "name": "paymentAddress", + "lineNumber": 6, "description": { "type": "root", "children": [ @@ -14246,7 +13773,7 @@ "children": [ { "type": "text", - "value": "Returns a Promise that resolves to an object with a\n", + "value": "the address that pays for this transaction", "position": { "start": { "line": 1, @@ -14254,47 +13781,74 @@ "offset": 0 }, "end": { - "line": 2, - "column": 1, - "offset": 52 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "transaction_hash", - "position": { - "start": { - "line": 2, - "column": 1, - "offset": 52 - }, - "end": { - "line": 2, - "column": 19, - "offset": 70 + "line": 1, + "column": 43, + "offset": 42 }, "indent": [] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 43, + "offset": 42 }, + "indent": [] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 43, + "offset": 42 + } + } + }, + "type": { + "type": "NameExpression", + "name": "String" + } + }, + { + "title": "param", + "name": "paymentUtxos", + "lineNumber": 7, + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ { "type": "text", - "value": " key containing the transaction hash of the broadcasted transaction.", + "value": "the number of UTXOs we expect will be required\n from the payment address", "position": { "start": { - "line": 2, - "column": 19, - "offset": 70 + "line": 1, + "column": 1, + "offset": 0 }, "end": { "line": 2, - "column": 87, - "offset": 138 + "column": 28, + "offset": 74 }, - "indent": [] + "indent": [ + 1 + ] } } ], @@ -14306,245 +13860,275 @@ }, "end": { "line": 2, - "column": 87, - "offset": 138 + "column": 28, + "offset": 74 }, "indent": [ 1 ] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, + "end": { + "line": 2, + "column": 28, + "offset": 74 + } + } + }, + "type": { + "type": "NameExpression", + "name": "Number" + }, + "default": "1" + } + ], + "properties": [], + "returns": [ + { + "description": { + "type": "root", + "children": [ { "type": "paragraph", "children": [ { "type": "text", - "value": "In the event of an error, it rejects with:", + "value": "a promise which resolves to the satoshi cost to\n fund the reveal. This includes a 5500 satoshi dust output for the\n preorder. Even though this is a change output, the payer must have\n enough funds to generate this output, so we include it in the cost.", "position": { "start": { - "line": 4, + "line": 1, "column": 1, - "offset": 140 + "offset": 0 }, "end": { "line": 4, - "column": 43, - "offset": 182 + "column": 71, + "offset": 259 }, - "indent": [] + "indent": [ + 1, + 1, + 1 + ] } } ], "position": { "start": { - "line": 4, + "line": 1, "column": 1, - "offset": 140 + "offset": 0 }, "end": { "line": 4, - "column": 43, - "offset": 182 + "column": 71, + "offset": 259 }, - "indent": [] + "indent": [ + 1, + 1, + 1 + ] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, + "end": { + "line": 4, + "column": 71, + "offset": 259 + } + } + }, + "title": "returns", + "type": { + "type": "NameExpression", + "name": "Promise" + } + } + ], + "sees": [], + "throws": [], + "todos": [], + "name": "estimateNamespaceReveal", + "kind": "function", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ + { + "name": "estimateNamespaceReveal", + "kind": "function" + } + ], + "namespace": "estimateNamespaceReveal" + }, + { + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ { - "type": "list", - "ordered": false, - "start": null, - "loose": false, - "children": [ - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a ", - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 5, - "column": 5, - "offset": 187 - }, - "indent": [] - } - }, - { - "type": "inlineCode", - "value": "RemoteServiceError", - "position": { - "start": { - "line": 5, - "column": 5, - "offset": 187 - }, - "end": { - "line": 5, - "column": 25, - "offset": 207 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if there is a problem\nwith the transaction broadcast service", - "position": { - "start": { - "line": 5, - "column": 25, - "offset": 207 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 1, - "offset": 183 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 1 - ] - } + "type": "text", + "value": "Estimates the cost of a namespace-ready transaction for a namespace", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 68, + "offset": 67 }, + "indent": [] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 68, + "offset": 67 + }, + "indent": [] + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 68, + "offset": 67 + } + } + }, + "tags": [ + { + "title": "param", + "description": "the namespace to ready", + "lineNumber": 2, + "type": { + "type": "NameExpression", + "name": "String" + }, + "name": "namespaceID" + }, + { + "title": "param", + "description": "the number of UTXOs we expect will\n be required from the reveal address", + "lineNumber": 3, + "type": { + "type": "NameExpression", + "name": "Number" + }, + "name": "revealUtxos" + }, + { + "title": "returns", + "description": "a promise which resolves to the satoshi cost to\n fund this namespacey-ready transaction.", + "lineNumber": 5, + "type": { + "type": "NameExpression", + "name": "Promise" + } + } + ], + "loc": { + "start": { + "line": 327, + "column": 0 + }, + "end": { + "line": 334, + "column": 3 + } + }, + "context": { + "loc": { + "start": { + "line": 335, + "column": 0 + }, + "end": { + "line": 346, + "column": 1 + } + }, + "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" + }, + "augments": [], + "examples": [], + "params": [ + { + "title": "param", + "name": "namespaceID", + "lineNumber": 2, + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "inlineCode", - "value": "MissingParameterError", - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 7, - "column": 26, - "offset": 296 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if you call the function without a required\nparameter", - "position": { - "start": { - "line": 7, - "column": 26, - "offset": 296 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], + "type": "text", + "value": "the namespace to ready", "position": { "start": { - "line": 7, + "line": 1, "column": 1, - "offset": 271 + "offset": 0 }, "end": { - "line": 8, - "column": 12, - "offset": 352 + "line": 1, + "column": 23, + "offset": 22 }, - "indent": [ - 1 - ] + "indent": [] } } ], "position": { "start": { - "line": 5, + "line": 1, "column": 1, - "offset": 183 + "offset": 0 }, "end": { - "line": 8, - "column": 12, - "offset": 352 + "line": 1, + "column": 23, + "offset": 22 }, - "indent": [ - 1, - 1, - 1 - ] + "indent": [] } } ], @@ -14555,70 +14139,47 @@ "offset": 0 }, "end": { - "line": 8, - "column": 12, - "offset": 352 + "line": 1, + "column": 23, + "offset": 22 } } }, - "title": "returns", "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] + "type": "NameExpression", + "name": "String" } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "broadcastZoneFile", - "kind": "function", - "memberof": "BlockstackNetwork", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ + }, { - "name": "broadcastZoneFile", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "#broadcastZoneFile" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", + "title": "param", + "name": "revealUtxos", + "lineNumber": 3, + "description": { + "type": "root", "children": [ { - "type": "text", - "value": "Sends the preorder and registration transactions and zone file\nfor a Blockstack name registration\nalong with the to the transaction broadcast service.", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "the number of UTXOs we expect will\n be required from the reveal address", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 37, + "offset": 71 + }, + "indent": [ + 1 + ] + } + } + ], "position": { "start": { "line": 1, @@ -14626,12 +14187,11 @@ "offset": 0 }, "end": { - "line": 3, - "column": 53, - "offset": 150 + "line": 2, + "column": 37, + "offset": 71 }, "indent": [ - 1, 1 ] } @@ -14644,252 +14204,142 @@ "offset": 0 }, "end": { - "line": 3, - "column": 53, - "offset": 150 - }, - "indent": [ - 1, - 1 - ] + "line": 2, + "column": 37, + "offset": 71 + } } }, - { - "type": "paragraph", + "type": { + "type": "NameExpression", + "name": "Number" + }, + "default": "1" + } + ], + "properties": [], + "returns": [ + { + "description": { + "type": "root", "children": [ { - "type": "text", - "value": "The transaction broadcast:", + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "a promise which resolves to the satoshi cost to\n fund this namespacey-ready transaction.", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 41, + "offset": 88 + }, + "indent": [ + 1 + ] + } + } + ], "position": { "start": { - "line": 5, + "line": 1, "column": 1, - "offset": 152 + "offset": 0 }, "end": { - "line": 5, - "column": 27, - "offset": 178 + "line": 2, + "column": 41, + "offset": 88 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 5, + "line": 1, "column": 1, - "offset": 152 + "offset": 0 }, "end": { - "line": 5, - "column": 27, - "offset": 178 - }, - "indent": [] + "line": 2, + "column": 41, + "offset": 88 + } } }, + "title": "returns", + "type": { + "type": "NameExpression", + "name": "Promise" + } + } + ], + "sees": [], + "throws": [], + "todos": [], + "name": "estimateNamespaceReady", + "kind": "function", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] + }, + "path": [ + { + "name": "estimateNamespaceReady", + "kind": "function" + } + ], + "namespace": "estimateNamespaceReady" + }, + { + "description": { + "type": "root", + "children": [ { - "type": "list", - "ordered": false, - "start": null, - "loose": false, + "type": "paragraph", "children": [ { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "immediately broadcasts the preorder transaction", - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 182 - }, - "end": { - "line": 7, - "column": 50, - "offset": 229 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 182 - }, - "end": { - "line": 7, - "column": 50, - "offset": 229 - }, - "indent": [] - } - } - ], + "type": "text", + "value": "Estimates the cost of a name-import transaction", "position": { "start": { - "line": 7, + "line": 1, "column": 1, - "offset": 180 + "offset": 0 }, "end": { - "line": 7, - "column": 50, - "offset": 229 + "line": 1, + "column": 48, + "offset": 47 }, "indent": [] } - }, - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "broadcasts the register transactions after the preorder transaction\nhas an appropriate number of confirmations", - "position": { - "start": { - "line": 8, - "column": 3, - "offset": 232 - }, - "end": { - "line": 9, - "column": 43, - "offset": 342 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 8, - "column": 3, - "offset": 232 - }, - "end": { - "line": 9, - "column": 43, - "offset": 342 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 8, - "column": 1, - "offset": 230 - }, - "end": { - "line": 9, - "column": 43, - "offset": 342 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "broadcasts the zone file to the Atlas network after the register transaction\nhas an appropriate number of confirmations", - "position": { - "start": { - "line": 10, - "column": 3, - "offset": 345 - }, - "end": { - "line": 11, - "column": 43, - "offset": 464 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 10, - "column": 3, - "offset": 345 - }, - "end": { - "line": 11, - "column": 43, - "offset": 464 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 10, - "column": 1, - "offset": 343 - }, - "end": { - "line": 11, - "column": 43, - "offset": 464 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 1, - "offset": 180 + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, "end": { - "line": 11, - "column": 43, - "offset": 464 + "line": 1, + "column": 48, + "offset": 47 }, - "indent": [ - 1, - 1, - 1, - 1 - ] + "indent": [] } } ], @@ -14900,101 +14350,93 @@ "offset": 0 }, "end": { - "line": 11, - "column": 43, - "offset": 464 + "line": 1, + "column": 48, + "offset": 47 } } }, "tags": [ { "title": "param", - "description": "the hex-encoded, signed preorder transaction generated\nusing the `makePreorder` function", - "lineNumber": 13, + "description": "the fully-qualified name", + "lineNumber": 2, "type": { "type": "NameExpression", "name": "String" }, - "name": "preorderTransaction" + "name": "name" }, { "title": "param", - "description": "the hex-encoded, signed register transaction generated\nusing the `makeRegister` function", - "lineNumber": 15, + "description": "the recipient", + "lineNumber": 3, "type": { "type": "NameExpression", "name": "String" }, - "name": "registerTransaction" + "name": "recipientAddr" }, { "title": "param", - "description": "the zone file to be broadcast to the Atlas network", - "lineNumber": 17, + "description": "the zone file hash", + "lineNumber": 4, "type": { "type": "NameExpression", "name": "String" }, - "name": "zoneFile" + "name": "zonefileHash" }, { - "title": "return", - "description": "Returns a Promise that resolves to an object with a\n`transaction_hash` key containing the transaction hash of the broadcasted transaction.\n\nIn the event of an error, it rejects with:\n* a `RemoteServiceError` if there is a problem\n with the transaction broadcast service\n* `MissingParameterError` if you call the function without a required\n parameter", - "lineNumber": 18, + "title": "param", + "description": "the number of UTXOs we expect will\n be required from the importer address", + "lineNumber": 5, "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] + "type": "NameExpression", + "name": "Number" + }, + "name": "importUtxos" + }, + { + "title": "returns", + "description": "a promise which resolves to the satoshi cost\n to fund this name-import transaction", + "lineNumber": 7, + "type": { + "type": "NameExpression", + "name": "Promise" } } ], "loc": { "start": { - "line": 364, - "column": 2 + "line": 348, + "column": 0 }, "end": { - "line": 390, - "column": 5 + "line": 357, + "column": 3 } }, "context": { "loc": { "start": { - "line": 391, - "column": 2 + "line": 358, + "column": 0 }, "end": { - "line": 428, - "column": 3 + "line": 371, + "column": 1 } }, - "file": "/Users/larry/git/blockstack.js/src/network.js" + "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "preorderTransaction", - "lineNumber": 13, + "name": "name", + "lineNumber": 2, "description": { "type": "root", "children": [ @@ -15003,7 +14445,7 @@ "children": [ { "type": "text", - "value": "the hex-encoded, signed preorder transaction generated\nusing the ", + "value": "the fully-qualified name", "position": { "start": { "line": 1, @@ -15011,64 +14453,26 @@ "offset": 0 }, "end": { - "line": 2, - "column": 11, - "offset": 65 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "makePreorder", - "position": { - "start": { - "line": 2, - "column": 11, - "offset": 65 - }, - "end": { - "line": 2, + "line": 1, "column": 25, - "offset": 79 + "offset": 24 }, "indent": [] } - }, - { - "type": "text", - "value": " function", - "position": { - "start": { - "line": 2, - "column": 25, - "offset": 79 - }, - "end": { - "line": 2, - "column": 34, - "offset": 88 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, "end": { - "line": 2, - "column": 34, - "offset": 88 + "line": 1, + "column": 25, + "offset": 24 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -15079,9 +14483,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 34, - "offset": 88 + "line": 1, + "column": 25, + "offset": 24 } } }, @@ -15092,8 +14496,8 @@ }, { "title": "param", - "name": "registerTransaction", - "lineNumber": 15, + "name": "recipientAddr", + "lineNumber": 3, "description": { "type": "root", "children": [ @@ -15102,7 +14506,7 @@ "children": [ { "type": "text", - "value": "the hex-encoded, signed register transaction generated\nusing the ", + "value": "the recipient", "position": { "start": { "line": 1, @@ -15110,45 +14514,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 11, - "offset": 65 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "makeRegister", - "position": { - "start": { - "line": 2, - "column": 11, - "offset": 65 - }, - "end": { - "line": 2, - "column": 25, - "offset": 79 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " function", - "position": { - "start": { - "line": 2, - "column": 25, - "offset": 79 - }, - "end": { - "line": 2, - "column": 34, - "offset": 88 + "line": 1, + "column": 14, + "offset": 13 }, "indent": [] } @@ -15161,13 +14529,11 @@ "offset": 0 }, "end": { - "line": 2, - "column": 34, - "offset": 88 + "line": 1, + "column": 14, + "offset": 13 }, - "indent": [ - 1 - ] + "indent": [] } } ], @@ -15178,9 +14544,9 @@ "offset": 0 }, "end": { - "line": 2, - "column": 34, - "offset": 88 + "line": 1, + "column": 14, + "offset": 13 } } }, @@ -15191,8 +14557,8 @@ }, { "title": "param", - "name": "zoneFile", - "lineNumber": 17, + "name": "zonefileHash", + "lineNumber": 4, "description": { "type": "root", "children": [ @@ -15201,7 +14567,7 @@ "children": [ { "type": "text", - "value": "the zone file to be broadcast to the Atlas network", + "value": "the zone file hash", "position": { "start": { "line": 1, @@ -15210,8 +14576,8 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 19, + "offset": 18 }, "indent": [] } @@ -15225,8 +14591,8 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 19, + "offset": 18 }, "indent": [] } @@ -15240,8 +14606,8 @@ }, "end": { "line": 1, - "column": 51, - "offset": 50 + "column": 19, + "offset": 18 } } }, @@ -15249,11 +14615,11 @@ "type": "NameExpression", "name": "String" } - } - ], - "properties": [], - "returns": [ + }, { + "title": "param", + "name": "importUtxos", + "lineNumber": 5, "description": { "type": "root", "children": [ @@ -15262,7 +14628,7 @@ "children": [ { "type": "text", - "value": "Returns a Promise that resolves to an object with a\n", + "value": "the number of UTXOs we expect will\n be required from the importer address", "position": { "start": { "line": 1, @@ -15271,47 +14637,13 @@ }, "end": { "line": 2, - "column": 1, - "offset": 52 + "column": 39, + "offset": 73 }, "indent": [ 1 ] } - }, - { - "type": "inlineCode", - "value": "transaction_hash", - "position": { - "start": { - "line": 2, - "column": 1, - "offset": 52 - }, - "end": { - "line": 2, - "column": 19, - "offset": 70 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " key containing the transaction hash of the broadcasted transaction.", - "position": { - "start": { - "line": 2, - "column": 19, - "offset": 70 - }, - "end": { - "line": 2, - "column": 87, - "offset": 138 - }, - "indent": [] - } } ], "position": { @@ -15322,293 +14654,106 @@ }, "end": { "line": 2, - "column": 87, - "offset": 138 + "column": 39, + "offset": 73 }, "indent": [ 1 ] } + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, + "end": { + "line": 2, + "column": 39, + "offset": 73 + } + } + }, + "type": { + "type": "NameExpression", + "name": "Number" + }, + "default": "1" + } + ], + "properties": [], + "returns": [ + { + "description": { + "type": "root", + "children": [ { "type": "paragraph", "children": [ { "type": "text", - "value": "In the event of an error, it rejects with:", + "value": "a promise which resolves to the satoshi cost\n to fund this name-import transaction", "position": { "start": { - "line": 4, + "line": 1, "column": 1, - "offset": 140 + "offset": 0 }, "end": { - "line": 4, - "column": 43, - "offset": 182 + "line": 2, + "column": 38, + "offset": 82 }, - "indent": [] + "indent": [ + 1 + ] } } ], "position": { "start": { - "line": 4, + "line": 1, "column": 1, - "offset": 140 + "offset": 0 }, "end": { - "line": 4, - "column": 43, - "offset": 182 + "line": 2, + "column": 38, + "offset": 82 }, - "indent": [] + "indent": [ + 1 + ] } - }, - { - "type": "list", - "ordered": false, - "start": null, - "loose": false, - "children": [ - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a ", - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 5, - "column": 5, - "offset": 187 - }, - "indent": [] - } - }, - { - "type": "inlineCode", - "value": "RemoteServiceError", - "position": { - "start": { - "line": 5, - "column": 5, - "offset": 187 - }, - "end": { - "line": 5, - "column": 25, - "offset": 207 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if there is a problem\nwith the transaction broadcast service", - "position": { - "start": { - "line": 5, - "column": 25, - "offset": 207 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 3, - "offset": 185 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 1, - "offset": 183 - }, - "end": { - "line": 6, - "column": 41, - "offset": 270 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "listItem", - "loose": false, - "checked": null, - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "inlineCode", - "value": "MissingParameterError", - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 7, - "column": 26, - "offset": 296 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " if you call the function without a required\nparameter", - "position": { - "start": { - "line": 7, - "column": 26, - "offset": 296 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 3, - "offset": 273 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 3 - ] - } - } - ], - "position": { - "start": { - "line": 7, - "column": 1, - "offset": 271 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 5, - "column": 1, - "offset": 183 - }, - "end": { - "line": 8, - "column": 12, - "offset": 352 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 + } + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, "end": { - "line": 8, - "column": 12, - "offset": 352 + "line": 2, + "column": 38, + "offset": 82 } } }, "title": "returns", "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "UnionType", - "elements": [ - { - "type": "NameExpression", - "name": "Object" - }, - { - "type": "NameExpression", - "name": "Error" - } - ] - } - ] + "type": "NameExpression", + "name": "Promise" } } ], "sees": [], "throws": [], "todos": [], - "name": "broadcastNameRegistration", + "name": "estimateNameImport", "kind": "function", - "memberof": "BlockstackNetwork", - "scope": "instance", "members": { "global": [], "inner": [], @@ -15618,240 +14763,11 @@ }, "path": [ { - "name": "broadcastNameRegistration", - "kind": "function", - "scope": "instance" + "name": "estimateNameImport", + "kind": "function" } ], - "namespace": "#broadcastNameRegistration" - }, - { - "description": "", - "tags": [ - { - "title": "returns", - "description": "version number of the signer, currently, should always be 1", - "lineNumber": 1, - "type": null - } - ], - "loc": { - "start": { - "line": 6, - "column": 2 - }, - "end": { - "line": 8, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 9, - "column": 2 - }, - "end": { - "line": 9, - "column": 26 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "version number of the signer, currently, should always be 1", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 60, - "offset": 59 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 60, - "offset": 59 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 60, - "offset": 59 - } - } - }, - "title": "returns" - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "signerVersion", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "signerVersion" - } - ], - "namespace": "signerVersion" - }, - { - "description": "", - "tags": [ - { - "title": "returns", - "description": "a string representing the transaction signer's address\n(usually Base58 check encoding)", - "lineNumber": 1, - "type": null - } - ], - "loc": { - "start": { - "line": 10, - "column": 2 - }, - "end": { - "line": 13, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 14, - "column": 2 - }, - "end": { - "line": 14, - "column": 32 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a string representing the transaction signer's address\n(usually Base58 check encoding)", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 32, - "offset": 86 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 32, - "offset": 86 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 32, - "offset": 86 - } - } - }, - "title": "returns" - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getAddress", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "getAddress" - } - ], - "namespace": "getAddress" + "namespace": "estimateNameImport" }, { "description": { @@ -15862,7 +14778,7 @@ "children": [ { "type": "text", - "value": "Signs a transaction input", + "value": "Estimates the cost of an announce transaction", "position": { "start": { "line": 1, @@ -15871,8 +14787,8 @@ }, "end": { "line": 1, - "column": 26, - "offset": 25 + "column": 46, + "offset": 45 }, "indent": [] } @@ -15886,8 +14802,8 @@ }, "end": { "line": 1, - "column": 26, - "offset": 25 + "column": 46, + "offset": 45 }, "indent": [] } @@ -15901,62 +14817,71 @@ }, "end": { "line": 1, - "column": 26, - "offset": 25 + "column": 46, + "offset": 45 } } }, "tags": [ { "title": "param", - "description": "the transaction to sign", + "description": "the hash of the message", "lineNumber": 2, "type": { "type": "NameExpression", - "name": "TransactionBuilder" + "name": "String" }, - "name": "transaction" + "name": "messageHash" }, { "title": "param", - "description": "the input on the transaction to sign", + "description": "the number of utxos we expect will\n be required from the importer address", "lineNumber": 3, "type": { "type": "NameExpression", - "name": "number" + "name": "Number" }, - "name": "inputIndex" + "name": "senderUtxos" + }, + { + "title": "returns", + "description": "a promise which resolves to the satoshi cost\n to fund this announce transaction", + "lineNumber": 5, + "type": { + "type": "NameExpression", + "name": "Promise" + } } ], "loc": { "start": { - "line": 15, - "column": 2 + "line": 373, + "column": 0 }, "end": { - "line": 19, - "column": 5 + "line": 380, + "column": 3 } }, "context": { "loc": { "start": { - "line": 20, - "column": 2 + "line": 381, + "column": 0 }, "end": { - "line": 20, - "column": 96 + "line": 392, + "column": 1 } }, - "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" + "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" }, "augments": [], "examples": [], "params": [ { "title": "param", - "name": "transaction", + "name": "messageHash", "lineNumber": 2, "description": { "type": "root", @@ -15966,6032 +14891,206 @@ "children": [ { "type": "text", - "value": "the transaction to sign", + "value": "the hash of the message", "position": { "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - } - } - }, - "type": { - "type": "NameExpression", - "name": "TransactionBuilder" - } - }, - { - "title": "param", - "name": "inputIndex", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the input on the transaction to sign", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 37, - "offset": 36 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 37, - "offset": 36 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 37, - "offset": 36 - } - } - }, - "type": { - "type": "NameExpression", - "name": "number" - } - } - ], - "properties": [], - "returns": [], - "sees": [], - "throws": [], - "todos": [], - "name": "signTransaction", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "signTransaction" - } - ], - "namespace": "signTransaction" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Class representing a transaction signer for pubkeyhash addresses\n(a.k.a. single-sig addresses)", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 30, - "offset": 94 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 30, - "offset": 94 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 30, - "offset": 94 - } - } - }, - "tags": [], - "loc": { - "start": { - "line": 23, - "column": 0 - }, - "end": { - "line": 26, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 27, - "column": 0 - }, - "end": { - "line": 53, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/signers.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "ecPair", - "lineNumber": 30, - "type": { - "type": "NameExpression", - "name": "bitcoinjs.ECPair" - } - } - ], - "properties": [], - "returns": [], - "sees": [], - "throws": [], - "todos": [], - "name": "PubkeyHashSigner", - "kind": "class", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "PubkeyHashSigner", - "kind": "class" - } - ], - "namespace": "PubkeyHashSigner" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Estimates cost of a namesapce reveal transaction for a namespace", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 65, - "offset": 64 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 65, - "offset": 64 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 65, - "offset": 64 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the namespace to reveal", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "BlockstackNamespace" - }, - "name": "namespace" - }, - { - "title": "param", - "description": "the address to receive the namespace\n (this must have been passed as 'revealAddress' to a prior namespace\n preorder)", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "revealAddress" - }, - { - "title": "param", - "description": "the address that pays for this transaction", - "lineNumber": 6, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "paymentAddress" - }, - { - "title": "param", - "description": "the number of UTXOs we expect will be required\n from the payment address", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "name": "paymentUtxos" - }, - { - "title": "returns", - "description": "a promise which resolves to the satoshi cost to\n fund the reveal. This includes a 5500 satoshi dust output for the\n preorder. Even though this is a change output, the payer must have\n enough funds to generate this output, so we include it in the cost.", - "lineNumber": 9, - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "loc": { - "start": { - "line": 297, - "column": 0 - }, - "end": { - "line": 310, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 311, - "column": 0 - }, - "end": { - "line": 325, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "namespace", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the namespace to reveal", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - } - } - }, - "type": { - "type": "NameExpression", - "name": "BlockstackNamespace" - } - }, - { - "title": "param", - "name": "revealAddress", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the address to receive the namespace\n (this must have been passed as 'revealAddress' to a prior namespace\n preorder)", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 13, - "offset": 120 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 13, - "offset": 120 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 13, - "offset": 120 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "paymentAddress", - "lineNumber": 6, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the address that pays for this transaction", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 43, - "offset": 42 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 43, - "offset": 42 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 43, - "offset": 42 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "paymentUtxos", - "lineNumber": 7, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the number of UTXOs we expect will be required\n from the payment address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 74 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 74 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 74 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "default": "1" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a promise which resolves to the satoshi cost to\n fund the reveal. This includes a 5500 satoshi dust output for the\n preorder. Even though this is a change output, the payer must have\n enough funds to generate this output, so we include it in the cost.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 71, - "offset": 259 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 71, - "offset": 259 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 71, - "offset": 259 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "estimateNamespaceReveal", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "estimateNamespaceReveal", - "kind": "function" - } - ], - "namespace": "estimateNamespaceReveal" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Estimates the cost of a namespace-ready transaction for a namespace", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 68, - "offset": 67 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 68, - "offset": 67 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 68, - "offset": 67 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the namespace to ready", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "namespaceID" - }, - { - "title": "param", - "description": "the number of UTXOs we expect will\n be required from the reveal address", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "name": "revealUtxos" - }, - { - "title": "returns", - "description": "a promise which resolves to the satoshi cost to\n fund this namespacey-ready transaction.", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "loc": { - "start": { - "line": 327, - "column": 0 - }, - "end": { - "line": 334, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 335, - "column": 0 - }, - "end": { - "line": 346, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "namespaceID", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the namespace to ready", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "revealUtxos", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the number of UTXOs we expect will\n be required from the reveal address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 37, - "offset": 71 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 37, - "offset": 71 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 37, - "offset": 71 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "default": "1" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a promise which resolves to the satoshi cost to\n fund this namespacey-ready transaction.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 41, - "offset": 88 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 41, - "offset": 88 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 41, - "offset": 88 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "estimateNamespaceReady", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "estimateNamespaceReady", - "kind": "function" - } - ], - "namespace": "estimateNamespaceReady" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Estimates the cost of a name-import transaction", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 48, - "offset": 47 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 48, - "offset": 47 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 48, - "offset": 47 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the fully-qualified name", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "name" - }, - { - "title": "param", - "description": "the recipient", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "recipientAddr" - }, - { - "title": "param", - "description": "the zone file hash", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "zonefileHash" - }, - { - "title": "param", - "description": "the number of UTXOs we expect will\n be required from the importer address", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "name": "importUtxos" - }, - { - "title": "returns", - "description": "a promise which resolves to the satoshi cost\n to fund this name-import transaction", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "loc": { - "start": { - "line": 348, - "column": 0 - }, - "end": { - "line": 357, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 358, - "column": 0 - }, - "end": { - "line": 371, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "name", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the fully-qualified name", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "recipientAddr", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the recipient", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 14, - "offset": 13 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 14, - "offset": 13 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 14, - "offset": 13 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "zonefileHash", - "lineNumber": 4, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the zone file hash", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "importUtxos", - "lineNumber": 5, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the number of UTXOs we expect will\n be required from the importer address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "default": "1" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a promise which resolves to the satoshi cost\n to fund this name-import transaction", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 38, - "offset": 82 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 38, - "offset": 82 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 38, - "offset": 82 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "estimateNameImport", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "estimateNameImport", - "kind": "function" - } - ], - "namespace": "estimateNameImport" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Estimates the cost of an announce transaction", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 46, - "offset": 45 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 46, - "offset": 45 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 46, - "offset": 45 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the hash of the message", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "messageHash" - }, - { - "title": "param", - "description": "the number of utxos we expect will\n be required from the importer address", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "name": "senderUtxos" - }, - { - "title": "returns", - "description": "a promise which resolves to the satoshi cost\n to fund this announce transaction", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "loc": { - "start": { - "line": 373, - "column": 0 - }, - "end": { - "line": 380, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 381, - "column": 0 - }, - "end": { - "line": 392, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/operations/txbuild.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "messageHash", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the hash of the message", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 24, - "offset": 23 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "senderUtxos", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the number of utxos we expect will\n be required from the importer address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 73 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Number" - }, - "default": "1" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a promise which resolves to the satoshi cost\n to fund this announce transaction", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 35, - "offset": 79 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 35, - "offset": 79 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 35, - "offset": 79 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Promise" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "estimateAnnounce", - "kind": "function", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "estimateAnnounce", - "kind": "function" - } - ], - "namespace": "estimateAnnounce" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "The BlockstackWallet class manages the hierarchical derivation\n paths for a standard blockstack client wallet. This includes paths\n for bitcoin payment address, blockstack identity addresses, blockstack\n application specific addresses.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 33, - "offset": 235 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 33, - "offset": 235 - }, - "indent": [ - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 4, - "column": 33, - "offset": 235 - } - } - }, - "tags": [], - "loc": { - "start": { - "line": 48, - "column": 0 - }, - "end": { - "line": 53, - "column": 3 - } - }, - "context": { - "loc": { - "start": { - "line": 54, - "column": 0 - }, - "end": { - "line": 319, - "column": 1 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "rootNode", - "lineNumber": 57, - "type": { - "type": "NameExpression", - "name": "BIP32" - } - } - ], - "properties": [], - "returns": [], - "sees": [], - "throws": [], - "todos": [], - "name": "BlockstackWallet", - "kind": "class", - "members": { - "global": [], - "inner": [], - "instance": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get a salt for use with creating application specific addresses", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 64, - "offset": 63 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 64, - "offset": 63 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 64, - "offset": 63 - } - } - }, - "tags": [ - { - "title": "return", - "description": "the salt", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 143, - "column": 2 - }, - "end": { - "line": 146, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 147, - "column": 2 - }, - "end": { - "line": 151, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the salt", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 9, - "offset": 8 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 9, - "offset": 8 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 9, - "offset": 8 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getIdentitySalt", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getIdentitySalt", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getIdentitySalt" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get a bitcoin receive address at a given index", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 47, - "offset": 46 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 47, - "offset": 46 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 47, - "offset": 46 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the index of the address", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "number" - }, - "name": "addressIndex" - }, - { - "title": "return", - "description": "address", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 153, - "column": 2 - }, - "end": { - "line": 157, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 158, - "column": 2 - }, - "end": { - "line": 160, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "addressIndex", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the index of the address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - } - } - }, - "type": { - "type": "NameExpression", - "name": "number" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 8, - "offset": 7 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 8, - "offset": 7 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 8, - "offset": 7 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getBitcoinAddress", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getBitcoinAddress", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getBitcoinAddress" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get the private key hex-string for a given bitcoin receive address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 67, - "offset": 66 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 67, - "offset": 66 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 67, - "offset": 66 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the index of the address", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "number" - }, - "name": "addressIndex" - }, - { - "title": "return", - "description": "the hex-string. this will be either 64\ncharacters long to denote an uncompressed bitcoin address, or 66\ncharacters long for a compressed bitcoin address.", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 162, - "column": 2 - }, - "end": { - "line": 168, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 169, - "column": 2 - }, - "end": { - "line": 171, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "addressIndex", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the index of the address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 25, - "offset": 24 - } - } - }, - "type": { - "type": "NameExpression", - "name": "number" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the hex-string. this will be either 64\ncharacters long to denote an uncompressed bitcoin address, or 66\ncharacters long for a compressed bitcoin address.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 50, - "offset": 153 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 50, - "offset": 153 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 50, - "offset": 153 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getBitcoinPrivateKey", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getBitcoinPrivateKey", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getBitcoinPrivateKey" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get the root node for the bitcoin public keychain", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - } - } - }, - "tags": [ - { - "title": "return", - "description": "base58-encoding of the public node", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 173, - "column": 2 - }, - "end": { - "line": 176, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 177, - "column": 2 - }, - "end": { - "line": 179, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "base58-encoding of the public node", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getBitcoinPublicKeychain", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getBitcoinPublicKeychain", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getBitcoinPublicKeychain" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get the root node for the identity public keychain", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 51, - "offset": 50 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 51, - "offset": 50 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 51, - "offset": 50 - } - } - }, - "tags": [ - { - "title": "return", - "description": "base58-encoding of the public node", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 181, - "column": 2 - }, - "end": { - "line": 184, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 185, - "column": 2 - }, - "end": { - "line": 187, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "base58-encoding of the public node", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getIdentityPublicKeychain", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getIdentityPublicKeychain", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getIdentityPublicKeychain" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get the keypair information for a given identity index. This\ninformation is used to obtain the private key for an identity address\nand derive application specific keys for that address.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 55, - "offset": 185 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 55, - "offset": 185 - }, - "indent": [ - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 3, - "column": 55, - "offset": 185 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the identity index", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "number" - }, - "name": "addressIndex" - }, - { - "title": "param", - "description": "if true, always return a\n private-key hex string corresponding to the uncompressed address", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "boolean" - }, - "name": "alwaysUncompressed" - }, - { - "title": "return", - "description": "an IdentityKeyPair type object with keys:\n .key {String} - the private key hex-string\n .keyID {String} - the public key hex-string\n .address {String} - the identity address\n .appsNodeKey {String} - the base-58 encoding of the applications node\n .salt {String} - the salt used for creating app-specific addresses", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "Object" - } - } - ], - "loc": { - "start": { - "line": 284, - "column": 2 - }, - "end": { - "line": 297, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 298, - "column": 2 - }, - "end": { - "line": 318, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "addressIndex", - "lineNumber": 4, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the identity index", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - } - } - }, - "type": { - "type": "NameExpression", - "name": "number" - } - }, - { - "title": "param", - "name": "alwaysUncompressed", - "lineNumber": 5, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "if true, always return a\n private-key hex string corresponding to the uncompressed address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 67, - "offset": 91 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 67, - "offset": 91 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 67, - "offset": 91 - } - } - }, - "type": { - "type": "NameExpression", - "name": "boolean" - }, - "default": "false" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "an IdentityKeyPair type object with keys:\n .key {String} - the private key hex-string\n .keyID {String} - the public key hex-string\n .address {String} - the identity address\n .appsNodeKey {String} - the base-58 encoding of the applications node\n .salt {String} - the salt used for creating app-specific addresses", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 6, - "column": 69, - "offset": 316 - }, - "indent": [ - 1, - 1, - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 6, - "column": 69, - "offset": 316 - }, - "indent": [ - 1, - 1, - 1, - 1, - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 6, - "column": 69, - "offset": 316 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "Object" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getIdentityKeyPair", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "instance", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getIdentityKeyPair", - "kind": "function", - "scope": "instance" - } - ], - "namespace": "BlockstackWallet#getIdentityKeyPair" - } - ], - "events": [], - "static": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Initialize a blockstack wallet from a seed buffer", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 50, - "offset": 49 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the input seed for initializing the root node\n of the hierarchical wallet", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "Buffer" - }, - "name": "seed" - }, - { - "title": "return", - "description": "the constructed wallet", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "BlockstackWallet" - } - } - ], - "loc": { - "start": { - "line": 61, - "column": 2 - }, - "end": { - "line": 66, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 67, - "column": 2 - }, - "end": { - "line": 69, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "seed", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the input seed for initializing the root node\n of the hierarchical wallet", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 73 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 28, - "offset": 73 - } - } - }, - "type": { - "type": "NameExpression", - "name": "Buffer" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the constructed wallet", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "BlockstackWallet" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "fromSeedBuffer", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "fromSeedBuffer", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.fromSeedBuffer" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Initialize a blockstack wallet from a base58 string", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 52, - "offset": 51 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 52, - "offset": 51 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 52, - "offset": 51 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the Base58 string used to initialize\n the root node of the hierarchical wallet", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "keychain" - }, - { - "title": "return", - "description": "the constructed wallet", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "BlockstackWallet" - } - } - ], - "loc": { - "start": { - "line": 71, - "column": 2 - }, - "end": { - "line": 76, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 77, - "column": 2 - }, - "end": { - "line": 79, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "keychain", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the Base58 string used to initialize\n the root node of the hierarchical wallet", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 42, - "offset": 78 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 42, - "offset": 78 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 42, - "offset": 78 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the constructed wallet", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "BlockstackWallet" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "fromBase58", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "fromBase58", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.fromBase58" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Initialize a blockstack wallet from an encrypted phrase & password. Throws\nif the password is incorrect. Supports all formats of Blockstack phrases.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 74, - "offset": 148 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 74, - "offset": 148 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 74, - "offset": 148 - } - } - }, - "tags": [ - { - "title": "param", - "description": "The encrypted phrase as a hex-encoded string", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "data" - }, - { - "title": "param", - "description": "The plain password", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "password" - }, - { - "title": "return", - "description": "the constructed wallet", - "lineNumber": 5, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "BlockstackWallet" - } - ] - } - } - ], - "loc": { - "start": { - "line": 81, - "column": 2 - }, - "end": { - "line": 87, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 88, - "column": 2 - }, - "end": { - "line": 92, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "data", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "The encrypted phrase as a hex-encoded string", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 45, - "offset": 44 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - }, - { - "title": "param", - "name": "password", - "lineNumber": 4, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "The plain password", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 19, - "offset": 18 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the constructed wallet", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 23, - "offset": 22 - } - } - }, - "title": "returns", - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "BlockstackWallet" - } - ] - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "fromEncryptedMnemonic", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "fromEncryptedMnemonic", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.fromEncryptedMnemonic" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Generate a BIP-39 12 word mnemonic", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 35, - "offset": 34 - } - } - }, - "tags": [ - { - "title": "return", - "description": "space-separated 12 word phrase", - "lineNumber": 2, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "string" - } - ] - } - } - ], - "loc": { - "start": { - "line": 94, - "column": 2 - }, - "end": { - "line": 97, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 98, - "column": 2 - }, - "end": { - "line": 100, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "space-separated 12 word phrase", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - } - } - }, - "title": "returns", - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "string" - } - ] - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "generateMnemonic", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "generateMnemonic", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.generateMnemonic" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Encrypt a mnemonic phrase with a password", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 42, - "offset": 41 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 42, - "offset": 41 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 42, - "offset": 41 - } - } - }, - "tags": [ - { - "title": "param", - "description": "Raw mnemonic phrase", - "lineNumber": 2, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "mnemonic" - }, - { - "title": "param", - "description": "Password to encrypt mnemonic with", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "string" - }, - "name": "password" - }, - { - "title": "return", - "description": "Hex-encoded encrypted mnemonic", - "lineNumber": 4, - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "string" - } - ] - } - } - ], - "loc": { - "start": { - "line": 102, - "column": 2 - }, - "end": { - "line": 107, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 108, - "column": 2 - }, - "end": { - "line": 111, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "mnemonic", - "lineNumber": 2, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Raw mnemonic phrase", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 20, - "offset": 19 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 20, - "offset": 19 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 20, - "offset": 19 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - }, - { - "title": "param", - "name": "password", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Password to encrypt mnemonic with", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 34, - "offset": 33 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 34, - "offset": 33 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 34, - "offset": 33 - } - } - }, - "type": { - "type": "NameExpression", - "name": "string" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Hex-encoded encrypted mnemonic", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 31, - "offset": 30 - } - } - }, - "title": "returns", - "type": { - "type": "TypeApplication", - "expression": { - "type": "NameExpression", - "name": "Promise" - }, - "applications": [ - { - "type": "NameExpression", - "name": "string" - } - ] - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "encryptMnemonic", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "encryptMnemonic", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.encryptMnemonic" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get a bitcoin address given a base-58 encoded bitcoin node\n(usually called the account node)", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 34, - "offset": 92 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 34, - "offset": 92 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 34, - "offset": 92 - } - } - }, - "tags": [ - { - "title": "param", - "description": "base58-encoding of the node", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "keychainBase58" - }, - { - "title": "param", - "description": "index of the address to get", - "lineNumber": 4, - "type": { - "type": "NameExpression", - "name": "number" - }, - "name": "addressIndex" - }, - { - "title": "param", - "description": "either 'EXTERNAL_ADDRESS' (for a\n\"receive\" address) or 'CHANGE_ADDRESS'", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "chainType" - }, - { - "title": "return", - "description": "the address", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 207, - "column": 2 - }, - "end": { - "line": 215, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 216, - "column": 2 - }, - "end": { - "line": 220, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "keychainBase58", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "base58-encoding of the node", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "addressIndex", - "lineNumber": 4, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "index of the address to get", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 28, - "offset": 27 - } - } - }, - "type": { - "type": "NameExpression", - "name": "number" - } - }, - { - "title": "param", - "name": "chainType", - "lineNumber": 5, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "either 'EXTERNAL_ADDRESS' (for a\n\"receive\" address) or 'CHANGE_ADDRESS'", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 71 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 71 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 39, - "offset": 71 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - }, - "default": "EXTERNAL_ADDRESS" - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the address", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 12, - "offset": 11 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 12, - "offset": 11 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 12, - "offset": 11 - } - } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "sees": [], - "throws": [], - "todos": [], - "name": "getAddressFromBitcoinKeychain", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" - }, - { - "name": "getAddressFromBitcoinKeychain", - "kind": "function", - "scope": "static" - } - ], - "namespace": "BlockstackWallet.getAddressFromBitcoinKeychain" - }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get a ECDSA private key hex-string for an application-specific\n address.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the base58-encoded private key for\napplications node (the `appsNodeKey` return in getIdentityKeyPair())", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "appsNodeKey" - }, - { - "title": "param", - "description": "a string, used to salt the\napplication-specific addresses", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "salt" - }, - { - "title": "param", - "description": "the appDomain to generate a key for", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "appDomain" - }, - { - "title": "return", - "description": "the private key hex-string. this will be a 64\ncharacter string", - "lineNumber": 8, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "loc": { - "start": { - "line": 222, - "column": 2 - }, - "end": { - "line": 232, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 233, - "column": 2 - }, - "end": { - "line": 241, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "appsNodeKey", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the base58-encoded private key for\napplications node (the ", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 24, - "offset": 58 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "appsNodeKey", - "position": { - "start": { - "line": 2, - "column": 24, - "offset": 58 - }, - "end": { - "line": 2, - "column": 37, - "offset": 71 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " return in getIdentityKeyPair())", - "position": { - "start": { - "line": 2, - "column": 37, - "offset": 71 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "salt", - "lineNumber": 5, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a string, used to salt the\napplication-specific addresses", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "appDomain", - "lineNumber": 7, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the appDomain to generate a key for", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - } - ], - "properties": [], - "returns": [ - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the private key hex-string. this will be a 64\ncharacter string", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 24, + "offset": 23 + }, + "indent": [] } } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 1, + "column": 24, + "offset": 23 + }, + "indent": [] } } ], - "sees": [], - "throws": [], - "todos": [], - "name": "getLegacyAppPrivateKey", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, - { - "name": "getLegacyAppPrivateKey", - "kind": "function", - "scope": "static" + "end": { + "line": 1, + "column": 24, + "offset": 23 } - ], - "namespace": "BlockstackWallet.getLegacyAppPrivateKey" + } }, - { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "Get a ECDSA private key hex-string for an application-specific\n address.", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - }, - "indent": [ - 1 - ] - } + "type": { + "type": "NameExpression", + "name": "String" + } + }, + { + "title": "param", + "name": "senderUtxos", + "lineNumber": 3, + "description": { + "type": "root", + "children": [ + { + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "the number of utxos we expect will\n be required from the importer address", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 39, + "offset": 73 + }, + "indent": [ + 1 + ] } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - }, - "indent": [ - 1 - ] } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 10, - "offset": 72 - } - } - }, - "tags": [ - { - "title": "param", - "description": "the base58-encoded private key for\napplications node (the `appsNodeKey` return in getIdentityKeyPair())", - "lineNumber": 3, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "appsNodeKey" - }, - { - "title": "param", - "description": "a string, used to salt the\napplication-specific addresses", - "lineNumber": 5, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "salt" - }, - { - "title": "param", - "description": "the appDomain to generate a key for", - "lineNumber": 7, - "type": { - "type": "NameExpression", - "name": "String" - }, - "name": "appDomain" - }, - { - "title": "return", - "description": "the private key hex-string. this will be a 64\ncharacter string", - "lineNumber": 8, - "type": { - "type": "NameExpression", - "name": "String" + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 39, + "offset": 73 + }, + "indent": [ + 1 + ] } } ], - "loc": { + "position": { "start": { - "line": 247, - "column": 2 + "line": 1, + "column": 1, + "offset": 0 }, "end": { - "line": 257, - "column": 5 - } - }, - "context": { - "loc": { - "start": { - "line": 258, - "column": 2 - }, - "end": { - "line": 282, - "column": 3 - } - }, - "file": "/Users/larry/git/blockstack.js/src/wallet.js" - }, - "augments": [], - "examples": [], - "params": [ - { - "title": "param", - "name": "appsNodeKey", - "lineNumber": 3, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the base58-encoded private key for\napplications node (the ", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 24, - "offset": 58 - }, - "indent": [ - 1 - ] - } - }, - { - "type": "inlineCode", - "value": "appsNodeKey", - "position": { - "start": { - "line": 2, - "column": 24, - "offset": 58 - }, - "end": { - "line": 2, - "column": 37, - "offset": 71 - }, - "indent": [] - } - }, - { - "type": "text", - "value": " return in getIdentityKeyPair())", - "position": { - "start": { - "line": 2, - "column": 37, - "offset": 71 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 69, - "offset": 103 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "salt", - "lineNumber": 5, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "a string, used to salt the\napplication-specific addresses", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 31, - "offset": 57 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } - }, - { - "title": "param", - "name": "appDomain", - "lineNumber": 7, - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the appDomain to generate a key for", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - }, - "indent": [] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 1, - "column": 36, - "offset": 35 - } - } - }, - "type": { - "type": "NameExpression", - "name": "String" - } + "line": 2, + "column": 39, + "offset": 73 } - ], - "properties": [], - "returns": [ + } + }, + "type": { + "type": "NameExpression", + "name": "Number" + }, + "default": "1" + } + ], + "properties": [], + "returns": [ + { + "description": { + "type": "root", + "children": [ { - "description": { - "type": "root", - "children": [ - { - "type": "paragraph", - "children": [ - { - "type": "text", - "value": "the private key hex-string. this will be a 64\ncharacter string", - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 - }, - "indent": [ - 1 - ] - } - } - ], - "position": { - "start": { - "line": 1, - "column": 1, - "offset": 0 - }, - "end": { - "line": 2, - "column": 17, - "offset": 62 + "type": "paragraph", + "children": [ + { + "type": "text", + "value": "a promise which resolves to the satoshi cost\n to fund this announce transaction", + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 35, + "offset": 79 + }, + "indent": [ + 1 + ] } } - }, - "title": "returns", - "type": { - "type": "NameExpression", - "name": "String" + ], + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 + }, + "end": { + "line": 2, + "column": 35, + "offset": 79 + }, + "indent": [ + 1 + ] } } ], - "sees": [], - "throws": [], - "todos": [], - "name": "getAppPrivateKey", - "kind": "function", - "memberof": "BlockstackWallet", - "scope": "static", - "members": { - "global": [], - "inner": [], - "instance": [], - "events": [], - "static": [] - }, - "path": [ - { - "name": "BlockstackWallet", - "kind": "class" + "position": { + "start": { + "line": 1, + "column": 1, + "offset": 0 }, - { - "name": "getAppPrivateKey", - "kind": "function", - "scope": "static" + "end": { + "line": 2, + "column": 35, + "offset": 79 } - ], - "namespace": "BlockstackWallet.getAppPrivateKey" + } + }, + "title": "returns", + "type": { + "type": "NameExpression", + "name": "Promise" } - ] + } + ], + "sees": [], + "throws": [], + "todos": [], + "name": "estimateAnnounce", + "kind": "function", + "members": { + "global": [], + "inner": [], + "instance": [], + "events": [], + "static": [] }, "path": [ { - "name": "BlockstackWallet", - "kind": "class" + "name": "estimateAnnounce", + "kind": "function" } ], - "namespace": "BlockstackWallet" + "namespace": "estimateAnnounce" } ] \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 46444e640..1432e8550 100644 --- a/docs/index.html +++ b/docs/index.html @@ -284,16 +284,6 @@

blockstack

-
  • - makeAuthResponse - - - -
  • - -
  • @@ -314,56 +304,6 @@

    blockstack

  • -
  • - signECDSA - - - -
  • - - -
  • - verifyECDSA - - - -
  • - - -
  • - encryptMnemonic - - - -
  • - - -
  • - decryptLegacy - - - -
  • - - -
  • - decryptMnemonic - - - -
  • - -
  • @@ -473,117 +413,6 @@

    blockstack

  • - -
  • - BlockstackWallet - - - - - -
  • -
    @@ -2676,20 +2505,18 @@

    -

    - makeAuthResponse +

    + isExpirationDateValid

    -

    Generates a signed authentication response token for an app. This -token is sent back to apps which use contents to access the -resources and data requested by the app.

    +

    Checks if the expiration date of the token is before the current time

    -
    makeAuthResponse(privateKey: String, profile: Object, username: String, metadata: AuthMetadata, coreToken: String, appPrivateKey: String, expiresAt: Number, transitPublicKey: String, hubUrl: String): String
    +
    isExpirationDateValid(token: String): Boolean
    @@ -2706,100 +2533,8 @@

    - privateKey (String) - the identity key of the Blockstack ID generating -the authentication response - -
    - -
    - -
    -
    - profile (Object - = {}) - the profile object for the Blockstack ID - -
    - -
    - -
    -
    - username (String - = null) - the username of the Blockstack ID if any, otherwise -null - -
    - -
    - -
    -
    - metadata (AuthMetadata) - an object containing metadata sent as part of the authentication -response including -email - if requested and available and a URL to the profile - -
    - -
    - -
    -
    - coreToken (String - = null) - core session token when responding to a legacy auth request -or -null - for current direct to gaia authentication requests - -
    - -
    - -
    -
    - appPrivateKey (String - = null) - the application private key. This private key is -unique and specific for every Blockstack ID and application combination. - -
    - -
    - -
    -
    - expiresAt (Number - = nextMonth().getTime()) - an integer in the same format as - -new Date().getTime() -, milliseconds since the Unix epoch - -
    - -
    - -
    -
    - transitPublicKey (String - = null) - the public key provide by the app -in its authentication request with which secrets will be encrypted - -
    - -
    - -
    -
    - hubUrl (String - = null) - URL to the write path of the user's Gaia hub + token (String) + encoded and signed authentication token
    @@ -2813,8 +2548,16 @@

    Returns
    - String: - signed and encoded authentication response token + Boolean: + true + if the +token + has not yet expired, +false + +if the +token + has expired @@ -2839,18 +2582,18 @@

    -

    - isExpirationDateValid +

    + isRedirectUriValid

    -

    Checks if the expiration date of the token is before the current time

    +

    Makes sure the redirect_uri is a same origin absolute URL.

    -
    isExpirationDateValid(token: String): Boolean
    +
    isRedirectUriValid(token: String): Boolean
    @@ -2884,15 +2627,9 @@

    Returns
    Boolean: true - if the -token - has not yet expired, + if valid, otherwise false -if the -token - has expired - @@ -2916,18 +2653,19 @@

    -

    - isRedirectUriValid +

    + broadcastTransaction

    -

    Makes sure the redirect_uri is a same origin absolute URL.

    +

    Broadcasts a signed bitcoin transaction to the network optionally waiting to broadcast the +transaction until a second transaction has a certain number of confirmations.

    -
    isRedirectUriValid(token: String): Boolean
    +
    broadcastTransaction(transaction: string, transactionToWatch: string, confirmations: number): Promise<(Object | Error)>
    @@ -2944,8 +2682,35 @@

    - token (String) - encoded and signed authentication token + transaction (string) + the hex-encoded transaction to broadcast + +
    + +
    + +
    +
    + transactionToWatch (string + = null) + the hex transaction id of the transaction to watch for +the specified number of confirmations before broadcasting the +transaction + +
    + +
    + +
    +
    + confirmations (number + = 6) + the number of confirmations +transactionToWatch + must have +before broadcasting +transaction +.
    @@ -2959,10 +2724,18 @@

    Returns
    - Boolean: - true - if valid, otherwise -false + Promise<(Object | Error)>: + Returns a Promise that resolves to an object with a + +transaction_hash + key containing the transaction hash of the broadcasted transaction. +

    In the event of an error, it rejects with:

    +
      +
    • a RemoteServiceError if there is a problem +with the transaction broadcast service
    • +
    • MissingParameterError if you call the function without a required +parameter
    • +
    @@ -2987,18 +2760,18 @@

    -

    - signECDSA +

    + broadcastZoneFile

    -

    Sign content using ECDSA

    +

    Broadcasts a zone file to the Atlas network via the transaction broadcast service.

    -
    signECDSA(privateKey: String, content: Object): Object
    +
    broadcastZoneFile(zoneFile: String, transactionToWatch: String): Promise<(Object | Error)>
    @@ -3015,8 +2788,8 @@

    - privateKey (String) - secp256k1 private key hex string + zoneFile (String) + the zone file to be broadcast to the Atlas network
    @@ -3024,8 +2797,10 @@

    - content (Object) - content to sign + transactionToWatch (String + = null) + the hex transaction id of the transaction +to watch for confirmation before broadcasting the zone file to the Atlas network
    @@ -3039,10 +2814,18 @@

    Returns
    - Object: - contains: -signature - Hex encoded DER signature -public key - Hex encoded private string taken from privateKey + Promise<(Object | Error)>: + Returns a Promise that resolves to an object with a + +transaction_hash + key containing the transaction hash of the broadcasted transaction. +

    In the event of an error, it rejects with:

    +
      +
    • a RemoteServiceError if there is a problem +with the transaction broadcast service
    • +
    • MissingParameterError if you call the function without a required +parameter
    • +
    @@ -3067,18 +2850,28 @@

    -

    - verifyECDSA +

    + broadcastNameRegistration

    -

    Verify content using ECDSA

    +

    Sends the preorder and registration transactions and zone file +for a Blockstack name registration +along with the to the transaction broadcast service.

    +

    The transaction broadcast:

    +
      +
    • immediately broadcasts the preorder transaction
    • +
    • broadcasts the register transactions after the preorder transaction +has an appropriate number of confirmations
    • +
    • broadcasts the zone file to the Atlas network after the register transaction +has an appropriate number of confirmations
    • +
    -
    verifyECDSA(content: (String | Buffer), publicKey: String, signature: String): Boolean
    +
    broadcastNameRegistration(preorderTransaction: String, registerTransaction: String, zoneFile: String): Promise<(Object | Error)>
    @@ -3095,17 +2888,23 @@

    - content ((String | Buffer)) - Content to verify was signed - + preorderTransaction (String) + the hex-encoded, signed preorder transaction generated +using the +makePreorder + function +
    - publicKey (String) - secp256k1 private key hex string + registerTransaction (String) + the hex-encoded, signed register transaction generated +using the +makeRegister + function
    @@ -3113,8 +2912,8 @@

    - signature (String) - Hex encoded DER signature + zoneFile (String) + the zone file to be broadcast to the Atlas network
    @@ -3128,8 +2927,18 @@

    Returns
    - Boolean: - returns true when signature matches publickey + content, false if not + Promise<(Object | Error)>: + Returns a Promise that resolves to an object with a + +transaction_hash + key containing the transaction hash of the broadcasted transaction. +

    In the event of an error, it rejects with:

    +
      +
    • a RemoteServiceError if there is a problem +with the transaction broadcast service
    • +
    • MissingParameterError if you call the function without a required +parameter
    • +
    @@ -3154,18 +2963,17 @@

    -

    - encryptMnemonic +

    + signerVersion

    -

    Encrypt a raw mnemonic phrase to be password protected

    - + -
    encryptMnemonic(phrase: string, password: string): Promise<Buffer>
    +
    signerVersion
    @@ -3177,28 +2985,59 @@

    -
    Parameters
    -
    - -
    -
    - phrase (string) - Raw mnemonic phrase -
    - -
    + + + + +
    Returns
    + any: + version number of the signer, currently, should always be 1 + -
    -
    - password (string) - Password to encrypt mnemonic with + + + + + + + + + + + + + -
    -
    - -
    + + +
    + + +
    + +

    + getAddress +

    + + +
    + + + + +
    getAddress
    + + + + + + + + + + @@ -3206,8 +3045,9 @@

    Returns
    - Promise<Buffer>: - The encrypted phrase + any: + a string representing the transaction signer's address +(usually Base58 check encoding) @@ -3232,18 +3072,18 @@

    -

    - decryptLegacy +

    + signTransaction

    -

    Decrypt legacy triplesec keys

    +

    Signs a transaction input

    -
    decryptLegacy(dataBuffer: Buffer, password: String): Promise<Buffer>
    +
    signTransaction
    @@ -3260,8 +3100,8 @@

    - dataBuffer (Buffer) - The encrypted key + transaction (TransactionBuilder) + the transaction to sign
    @@ -3269,8 +3109,8 @@

    - password (String) - Password for data + inputIndex (number) + the input on the transaction to sign
    @@ -3282,14 +3122,6 @@

    - -
    Returns
    - Promise<Buffer>: - Decrypted seed - - - - @@ -3310,18 +3142,19 @@

    -

    - decryptMnemonic +

    + PubkeyHashSigner

    -

    Encrypt a raw mnemonic phrase with a password

    +

    Class representing a transaction signer for pubkeyhash addresses +(a.k.a. single-sig addresses)

    -
    decryptMnemonic(data: (string | Buffer), password: string): Promise<Buffer>
    +
    new PubkeyHashSigner(ecPair: bitcoinjs.ECPair)
    @@ -3338,18 +3171,8 @@

    - data ((string | Buffer)) - Buffer or hex-encoded string of the encrypted mnemonic - -
    - -
    - -
    -
    - password (string) - Password for data - + ecPair (bitcoinjs.ECPair) +
    @@ -3360,14 +3183,6 @@

    - -
    Returns
    - Promise<Buffer>: - the raw mnemonic phrase - - - - @@ -3388,19 +3203,18 @@

    -

    - broadcastTransaction +

    + estimateNamespaceReveal

    -

    Broadcasts a signed bitcoin transaction to the network optionally waiting to broadcast the -transaction until a second transaction has a certain number of confirmations.

    +

    Estimates cost of a namesapce reveal transaction for a namespace

    -
    broadcastTransaction(transaction: string, transactionToWatch: string, confirmations: number): Promise<(Object | Error)>
    +
    estimateNamespaceReveal(namespace: BlockstackNamespace, revealAddress: String, paymentAddress: String, paymentUtxos: Number): Promise
    @@ -3417,8 +3231,8 @@

    - transaction (string) - the hex-encoded transaction to broadcast + namespace (BlockstackNamespace) + the namespace to reveal
    @@ -3426,11 +3240,10 @@

    - transactionToWatch (string - = null) - the hex transaction id of the transaction to watch for -the specified number of confirmations before broadcasting the -transaction + revealAddress (String) + the address to receive the namespace +(this must have been passed as 'revealAddress' to a prior namespace +preorder)
    @@ -3438,14 +3251,19 @@

    - confirmations (number - = 6) - the number of confirmations -transactionToWatch - must have -before broadcasting -transaction -. + paymentAddress (String) + the address that pays for this transaction + +
    + +
    + +
    +
    + paymentUtxos (Number + = 1) + the number of UTXOs we expect will be required +from the payment address
    @@ -3459,18 +3277,11 @@

    Returns
    - Promise<(Object | Error)>: - Returns a Promise that resolves to an object with a - -transaction_hash - key containing the transaction hash of the broadcasted transaction. -

    In the event of an error, it rejects with:

    -
      -
    • a RemoteServiceError if there is a problem -with the transaction broadcast service
    • -
    • MissingParameterError if you call the function without a required -parameter
    • -
    + Promise: + a promise which resolves to the satoshi cost to +fund the reveal. This includes a 5500 satoshi dust output for the +preorder. Even though this is a change output, the payer must have +enough funds to generate this output, so we include it in the cost. @@ -3495,18 +3306,18 @@

    -

    - broadcastZoneFile +

    + estimateNamespaceReady

    -

    Broadcasts a zone file to the Atlas network via the transaction broadcast service.

    +

    Estimates the cost of a namespace-ready transaction for a namespace

    -
    broadcastZoneFile(zoneFile: String, transactionToWatch: String): Promise<(Object | Error)>
    +
    estimateNamespaceReady(namespaceID: String, revealUtxos: Number): Promise
    @@ -3523,8 +3334,8 @@

    - zoneFile (String) - the zone file to be broadcast to the Atlas network + namespaceID (String) + the namespace to ready
    @@ -3532,10 +3343,10 @@

    - transactionToWatch (String - = null) - the hex transaction id of the transaction -to watch for confirmation before broadcasting the zone file to the Atlas network + revealUtxos (Number + = 1) + the number of UTXOs we expect will +be required from the reveal address
    @@ -3549,18 +3360,9 @@

    Returns
    - Promise<(Object | Error)>: - Returns a Promise that resolves to an object with a - -transaction_hash - key containing the transaction hash of the broadcasted transaction. -

    In the event of an error, it rejects with:

    -
      -
    • a RemoteServiceError if there is a problem -with the transaction broadcast service
    • -
    • MissingParameterError if you call the function without a required -parameter
    • -
    + Promise: + a promise which resolves to the satoshi cost to +fund this namespacey-ready transaction. @@ -3585,28 +3387,18 @@

    -

    - broadcastNameRegistration +

    + estimateNameImport

    -

    Sends the preorder and registration transactions and zone file -for a Blockstack name registration -along with the to the transaction broadcast service.

    -

    The transaction broadcast:

    -
      -
    • immediately broadcasts the preorder transaction
    • -
    • broadcasts the register transactions after the preorder transaction -has an appropriate number of confirmations
    • -
    • broadcasts the zone file to the Atlas network after the register transaction -has an appropriate number of confirmations
    • -
    +

    Estimates the cost of a name-import transaction

    -
    broadcastNameRegistration(preorderTransaction: String, registerTransaction: String, zoneFile: String): Promise<(Object | Error)>
    +
    estimateNameImport(name: String, recipientAddr: String, zonefileHash: String, importUtxos: Number): Promise
    @@ -3623,11 +3415,8 @@

    - preorderTransaction (String) - the hex-encoded, signed preorder transaction generated -using the -makePreorder - function + name (String) + the fully-qualified name
    @@ -3635,11 +3424,8 @@

    - registerTransaction (String) - the hex-encoded, signed register transaction generated -using the -makeRegister - function + recipientAddr (String) + the recipient
    @@ -3647,132 +3433,25 @@

    - zoneFile (String) - the zone file to be broadcast to the Atlas network + zonefileHash (String) + the zone file hash
    -

    - - - - - - -
    Returns
    - Promise<(Object | Error)>: - Returns a Promise that resolves to an object with a - -transaction_hash - key containing the transaction hash of the broadcasted transaction. -

    In the event of an error, it rejects with:

    -
      -
    • a RemoteServiceError if there is a problem -with the transaction broadcast service
    • -
    • MissingParameterError if you call the function without a required -parameter
    • -
    - - - - - - - - - - - - - - -

    +
    +
    + importUtxos (Number + = 1) + the number of UTXOs we expect will +be required from the importer address +
    - - -
    - - -
    - -

    - signerVersion -

    - - -
    - - - - -
    signerVersion
    - - - - - - - - - - - - - - - - -
    Returns
    - any: - version number of the signer, currently, should always be 1 - +
    - - - - - - - - - - - - - - - - - -
    - - -
    - -

    - getAddress -

    - - -
    - - - - -
    getAddress
    - - - - - - - - - - +

    @@ -3780,9 +3459,9 @@

    Returns
    - any: - a string representing the transaction signer's address -(usually Base58 check encoding) + Promise: + a promise which resolves to the satoshi cost +to fund this name-import transaction @@ -3807,18 +3486,18 @@

    -

    - signTransaction +

    + estimateAnnounce

    -

    Signs a transaction input

    +

    Estimates the cost of an announce transaction

    -
    signTransaction
    +
    estimateAnnounce(messageHash: String, senderUtxos: Number): Promise
    @@ -3835,8 +3514,8 @@

    - transaction (TransactionBuilder) - the transaction to sign + messageHash (String) + the hash of the message
    @@ -3844,8 +3523,10 @@

    - inputIndex (number) - the input on the transaction to sign + senderUtxos (Number + = 1) + the number of utxos we expect will +be required from the importer address
    @@ -3857,1518 +3538,21 @@

    - - - - - - - - - - - - - - - -
    - - -
    - -

    - PubkeyHashSigner -

    - -
    - - -

    Class representing a transaction signer for pubkeyhash addresses -(a.k.a. single-sig addresses)

    - - -
    new PubkeyHashSigner(ecPair: bitcoinjs.ECPair)
    - - - - - - - - - +
    Returns
    + Promise: + a promise which resolves to the satoshi cost +to fund this announce transaction - -
    Parameters
    -
    - -
    -
    - ecPair (bitcoinjs.ECPair) - -
    - -
    -
    - - - - - - - - - - - - - - - -
    - - - - -
    - - -
    - -

    - estimateNamespaceReveal -

    - -
    -

    Estimates cost of a namesapce reveal transaction for a namespace

    - - -
    estimateNamespaceReveal(namespace: BlockstackNamespace, revealAddress: String, paymentAddress: String, paymentUtxos: Number): Promise
    - - - - - - -
    Parameters
    -
    - -
    -
    - namespace (BlockstackNamespace) - the namespace to reveal - -
    - -
    - -
    -
    - revealAddress (String) - the address to receive the namespace -(this must have been passed as 'revealAddress' to a prior namespace -preorder) - -
    - -
    - -
    -
    - paymentAddress (String) - the address that pays for this transaction - -
    - -
    - -
    -
    - paymentUtxos (Number - = 1) - the number of UTXOs we expect will be required -from the payment address - -
    - -
    - -
    - - - - - - -
    Returns
    - Promise: - a promise which resolves to the satoshi cost to -fund the reveal. This includes a 5500 satoshi dust output for the -preorder. Even though this is a change output, the payer must have -enough funds to generate this output, so we include it in the cost. - - - - - - - - - - - - - - -
    - - - - -
    - - -
    - -

    - estimateNamespaceReady -

    - - -
    - - -

    Estimates the cost of a namespace-ready transaction for a namespace

    - - -
    estimateNamespaceReady(namespaceID: String, revealUtxos: Number): Promise
    - - - - - - - - - - - -
    Parameters
    -
    - -
    -
    - namespaceID (String) - the namespace to ready - -
    - -
    - -
    -
    - revealUtxos (Number - = 1) - the number of UTXOs we expect will -be required from the reveal address - -
    - -
    - -
    - - - - - - -
    Returns
    - Promise: - a promise which resolves to the satoshi cost to -fund this namespacey-ready transaction. - - - - - - - - - - - - - - -
    - - - - -
    - - -
    - -

    - estimateNameImport -

    - - -
    - - -

    Estimates the cost of a name-import transaction

    - - -
    estimateNameImport(name: String, recipientAddr: String, zonefileHash: String, importUtxos: Number): Promise
    - - - - - - - - - - - -
    Parameters
    -
    - -
    -
    - name (String) - the fully-qualified name - -
    - -
    - -
    -
    - recipientAddr (String) - the recipient - -
    - -
    - -
    -
    - zonefileHash (String) - the zone file hash - -
    - -
    - -
    -
    - importUtxos (Number - = 1) - the number of UTXOs we expect will -be required from the importer address - -
    - -
    - -
    - - - - - - -
    Returns
    - Promise: - a promise which resolves to the satoshi cost -to fund this name-import transaction - - - - - - - - - - - - - - -
    - - - - -
    - - -
    - -

    - estimateAnnounce -

    - - -
    - - -

    Estimates the cost of an announce transaction

    - - -
    estimateAnnounce(messageHash: String, senderUtxos: Number): Promise
    - - - - - - - - - - - -
    Parameters
    -
    - -
    -
    - messageHash (String) - the hash of the message - -
    - -
    - -
    -
    - senderUtxos (Number - = 1) - the number of utxos we expect will -be required from the importer address - -
    - -
    - -
    - - - - - - -
    Returns
    - Promise: - a promise which resolves to the satoshi cost -to fund this announce transaction - - - - - - - - - - - - - - -
    - - - - -
    - - -
    - -

    - BlockstackWallet -

    - - -
    - - -

    The BlockstackWallet class manages the hierarchical derivation -paths for a standard blockstack client wallet. This includes paths -for bitcoin payment address, blockstack identity addresses, blockstack -application specific addresses.

    - - -
    new BlockstackWallet(rootNode: BIP32)
    - - - - - - - - - - - -
    Parameters
    -
    - -
    -
    - rootNode (BIP32) - -
    - -
    - -
    - - - - - - - - - - - -
    Static Members
    -
    - -
    -
    -
    - - fromSeedBuffer(seed) -
    -
    - -
    - -
    -
    -
    - - fromBase58(keychain) -
    -
    - -
    - -
    -
    -
    - - fromEncryptedMnemonic(data, password) -
    -
    - -
    - -
    -
    -
    - - generateMnemonic() -
    -
    - -
    - -
    -
    -
    - - encryptMnemonic(mnemonic, password) -
    -
    - -
    - -
    -
    -
    - - getAddressFromBitcoinKeychain(keychainBase58, addressIndex, chainType) -
    -
    - -
    - -
    -
    -
    - - getLegacyAppPrivateKey(appsNodeKey, salt, appDomain) -
    -
    - -
    - -
    -
    -
    - - getAppPrivateKey(appsNodeKey, salt, appDomain) -
    -
    - -
    - -
    - - - - -
    Instance Members
    -
    - -
    -
    -
    - - getIdentitySalt() -
    -
    - -
    - -
    -
    -
    - - getBitcoinAddress(addressIndex) -
    -
    - -
    - -
    -
    -
    - - getBitcoinPrivateKey(addressIndex) -
    -
    - -
    - -
    -
    -
    - - getBitcoinPublicKeychain() -
    -
    - -
    - -
    -
    -
    - - getIdentityPublicKeychain() -
    -
    - -
    - -
    -
    -
    - - getIdentityKeyPair(addressIndex, alwaysUncompressed) -
    -
    - -
    - -
    diff --git a/src/auth/authMessages.js b/src/auth/authMessages.js index bb5b0cfaf..4d77c6791 100644 --- a/src/auth/authMessages.js +++ b/src/auth/authMessages.js @@ -138,6 +138,7 @@ export function decryptPrivateKey(privateKey: string, * in its authentication request with which secrets will be encrypted * @param {String} hubUrl URL to the write path of the user's Gaia hub * @return {String} signed and encoded authentication response token + * @private */ export function makeAuthResponse(privateKey: string, profile: {} = {}, diff --git a/src/encryption.js b/src/encryption.js index 668022768..3046115a8 100644 --- a/src/encryption.js +++ b/src/encryption.js @@ -64,13 +64,13 @@ export function getHexFromBN(bnInput: Object) { /** * Encrypt content to elliptic curve publicKey using ECIES - * @private * @param {String} publicKey - secp256k1 public key hex string * @param {String | Buffer} content - content to encrypt * @return {Object} Object containing (hex encoded): * iv (initialization vector), cipherText (cipher text), * mac (message authentication code), ephemeral public key * wasString (boolean indicating with or not to return a buffer or string on decrypt) + * @private */ export function encryptECIES(publicKey: string, content: string | Buffer) : CipherObject { const isString = (typeof (content) === 'string') @@ -109,7 +109,6 @@ export function encryptECIES(publicKey: string, content: string | Buffer) : Ciph /** * Decrypt content encrypted using ECIES - * @private * @param {String} privateKey - secp256k1 private key hex string * @param {Object} cipherObject - object to decrypt, should contain: * iv (initialization vector), cipherText (cipher text), @@ -117,6 +116,7 @@ export function encryptECIES(publicKey: string, content: string | Buffer) : Ciph * wasString (boolean indicating with or not to return a buffer or string on decrypt) * @return {Buffer} plaintext * @throws {Error} if unable to decrypt + * @private */ export function decryptECIES(privateKey: string, cipherObject: CipherObject): Buffer | string { const ecSK = ecurve.keyFromPrivate(privateKey, 'hex') @@ -150,11 +150,13 @@ export function decryptECIES(privateKey: string, cipherObject: CipherObject): Bu /** * Sign content using ECDSA + * @private * @param {String} privateKey - secp256k1 private key hex string * @param {Object} content - content to sign * @return {Object} contains: * signature - Hex encoded DER signature * public key - Hex encoded private string taken from privateKey + * @private */ export function signECDSA(privateKey: string, content: string | Buffer) : {publicKey: string, signature: string } { @@ -177,6 +179,7 @@ export function signECDSA(privateKey: string, content: string | Buffer) * @param {String} publicKey - secp256k1 private key hex string * @param {String} signature - Hex encoded DER signature * @return {Boolean} returns true when signature matches publickey + content, false if not + * @private */ export function verifyECDSA(content: string | Buffer, publicKey: string, @@ -193,6 +196,7 @@ export function verifyECDSA(content: string | Buffer, * @param {string} phrase - Raw mnemonic phrase * @param {string} password - Password to encrypt mnemonic with * @return {Promise} The encrypted phrase + * @private */ export function encryptMnemonic(phrase: string, password: string) { return Promise.resolve().then(() => { @@ -283,6 +287,7 @@ function decryptMnemonicBuffer(dataBuffer: Buffer, password: string) { * @param {Buffer} dataBuffer - The encrypted key * @param {String} password - Password for data * @return {Promise} Decrypted seed + * @private */ function decryptLegacy(dataBuffer: Buffer, password: string) { return new Promise((resolve, reject) => { @@ -307,6 +312,7 @@ function decryptLegacy(dataBuffer: Buffer, password: string) { * @param {string | Buffer} data - Buffer or hex-encoded string of the encrypted mnemonic * @param {string} password - Password for data * @return {Promise} the raw mnemonic phrase + * @private */ export function decryptMnemonic(data: (string | Buffer), password: string) { const dataBuffer = Buffer.isBuffer(data) ? data : Buffer.from((data: any), 'hex') diff --git a/src/wallet.js b/src/wallet.js index c451dc5a1..1a3491e51 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -50,6 +50,7 @@ function getNodePublicKey(node: BIP32): string { * paths for a standard blockstack client wallet. This includes paths * for bitcoin payment address, blockstack identity addresses, blockstack * application specific addresses. + * @private */ export class BlockstackWallet { rootNode: BIP32 From 78fdcb8fb296b29fd15b2ea73f083e0c5ae077a7 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Mon, 6 Aug 2018 16:22:58 -0500 Subject: [PATCH 15/16] add toBase58 to wallet so clients twiddle with bip32s less --- src/keys.js | 4 ++-- src/wallet.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/keys.js b/src/keys.js index 1a95f2090..3eeaa3b31 100644 --- a/src/keys.js +++ b/src/keys.js @@ -15,13 +15,13 @@ export function makeECPrivateKey() { } export function publicKeyToAddress(publicKey: string) { - const publicKeyBuffer = new Buffer(publicKey, 'hex') + const publicKeyBuffer = Buffer.from(publicKey, 'hex') const publicKeyHash160 = bcrypto.hash160(publicKeyBuffer) const address = baddress.toBase58Check(publicKeyHash160, 0x00) return address } export function getPublicKeyFromPrivate(privateKey: string) { - const keyPair = ECPair.fromPrivateKey(new Buffer(privateKey, 'hex')) + const keyPair = ECPair.fromPrivateKey(Buffer.from(privateKey, 'hex')) return keyPair.publicKey.toString('hex') } diff --git a/src/wallet.js b/src/wallet.js index 1a3491e51..5077056ac 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -59,6 +59,10 @@ export class BlockstackWallet { this.rootNode = rootNode } + toBase58(): string { + return this.rootNode.toBase58() + } + /** * Initialize a blockstack wallet from a seed buffer * @param {Buffer} seed - the input seed for initializing the root node From 36bb1e515124cedb59f2d321d1e51da49b6d920b Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Mon, 6 Aug 2018 16:44:54 -0500 Subject: [PATCH 16/16] use incorrect password message when given a bad password --- src/wallet.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/wallet.js b/src/wallet.js index 5077056ac..fd3d52498 100644 --- a/src/wallet.js +++ b/src/wallet.js @@ -90,10 +90,19 @@ export class BlockstackWallet { * @param {string} password - The plain password * @return {Promise} the constructed wallet */ - static async fromEncryptedMnemonic(data: string, password: string) { - const mnemonic = await decryptMnemonic(data, password) - const seed = bip39.mnemonicToSeed(mnemonic) - return new BlockstackWallet(bip32.fromSeed(seed)) + static fromEncryptedMnemonic(data: string, password: string) { + return decryptMnemonic(data, password) + .then((mnemonic) => { + const seed = bip39.mnemonicToSeed(mnemonic) + return new BlockstackWallet(bip32.fromSeed(seed)) + }) + .catch((err) => { + if (err.message && err.message.startsWith('bad header;')) { + throw new Error('Incorrect password') + } else { + throw err + } + }) } /**