├── .gitignore ├── README.md ├── metacoin ├── contracts │ ├── .placeholder │ ├── ConvertLib.sol │ ├── MetaCoin.sol │ └── Migrations.sol ├── migrations │ ├── 1_initial_migration.js │ └── 2_deploy_contracts.js ├── test │ ├── .placeholder │ ├── TestMetacoin.sol │ ├── metacoin.js │ └── metacoin_2.js ├── truffle-config.js └── truffle.js ├── metamask_example ├── index.html ├── publish.js └── script.js ├── metamask_template ├── index.html └── script.js ├── package-lock.json ├── package.json └── truffle ├── contracts └── Migrations.sol ├── migrations └── 1_initial_migration.js ├── truffle-config.js └── truffle.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # web3_demo 2 | A resource repository, containing examples and templates for the web3 API and Metamask plugin 3 | 4 | ## Prerequisites 5 | You need to know how to use the command prompt and how to change your working directory and execute commands. 6 | You can take a look at [this tutorial](https://www.youtube.com/watch?v=MBBWVgE0ewk). 7 | 8 | ## Setup 9 | 10 | 1. Install node.js 11 | 2. To install `truffle` (Solidity development framework), `web3` and `http-server` (allows you to host local HTML as a website), run: 12 | 13 | You may need Admin priviledges. Try to open the command prompt as an administrator. 14 | 15 | ```bash 16 | npm install -g truffle web3@0.20.4 http-server 17 | ``` 18 | 19 | 3. Clone this GitHub repository 20 | 21 | If you have git installed, run: 22 | ``` 23 | git clone https://github.com/universe1216/web3-demo 24 | ``` 25 | 26 | Or just download the repository as a zip and extract somewhere 27 | 28 | 4. Navigate to the repository and run: 29 | ``` 30 | npm install 31 | ``` 32 | 33 | This will install the node dependencies of the example project, which are a local install of `truffle` and `web3`. 34 | 35 | ## Running a local blockchain 36 | 37 | You need to **navigate to the truffle folder** of the project and run: 38 | ``` 39 | truffle develop 40 | ``` 41 | 42 | If you get an error while doing that, try to run the same command from **git bash** - it should be installed automatically with [Git](https://git-scm.com/downloads). 43 | 44 | ## Connecting to the local Ethereum node via `Node.js` 45 | 46 | Not to confuse `Node.js` with your Ethereum node, they have nothing in common. 47 | Navigate to the project directory and run: 48 | ``` 49 | node 50 | ``` 51 | 52 | This will put you in an interactive `Node.js` session, where you can load the web3 API and connect to the Ethereum node. 53 | 54 | ## Running the MetaMask example 55 | 56 | 1. Navigate to the `metamask_example` folder in the project and run: 57 | ```node publish.js``` 58 | 59 | This will run a script that will publish a contract on your local blockchain and print out its address. 60 | 61 | 2. Edit the `script.js` file with the new contract address 62 | 63 | 3. To host the website, while inside the metamask_example folder, run: 64 | ``` 65 | http-server 66 | ``` 67 | 68 | `Ctrl + C` closes it. 69 | 70 | 4. Install MetaMask in chrome 71 | 72 | 5. Open MetaMask and click the "Import existing DEN" 73 | 74 | 6. Copy the 12 word key that was printed out when you started your local blockchain. 75 | 76 | The 12 words are used to generate the Ethereum accounts that have Ether in your local blockchain. They should be: 77 | ``` 78 | candy maple cake sugar pudding cream honey rich smooth crumble sweet treat 79 | ``` 80 | 81 | Because every truffle develop session uses the same account set. 82 | 83 | 7. After you log in to MetaMask with this key, click on the upper left corner and choose "Custom RPC" 84 | 85 | 8. Enter the URL `http://localhost:9545/` and click save. Go back and you should have successfully connected to your local node! 86 | 87 | 9. Visit `127.0.0.1:8080` and use the website! 88 | 89 | ## Developing DAPPs 90 | 91 | You can edit the website files (html and js files) directly and they will be updated when you reload the page. **If you're using chrome, reload the page with Ctrl + Shift + R instead, because chrome will cache your last version and won't update it**. 92 | -------------------------------------------------------------------------------- /metacoin/contracts/.placeholder: -------------------------------------------------------------------------------- 1 | This is a placeholder file to ensure the parent directory in the git repository. Feel free to remove. 2 | -------------------------------------------------------------------------------- /metacoin/contracts/ConvertLib.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.4; 2 | 3 | library ConvertLib{ 4 | function convert(uint amount,uint conversionRate) public pure returns (uint convertedAmount) 5 | { 6 | return amount * conversionRate; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /metacoin/contracts/MetaCoin.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | import "./ConvertLib.sol"; 4 | 5 | // This is just a simple example of a coin-like contract. 6 | // It is not standards compatible and cannot be expected to talk to other 7 | // coin/token contracts. If you want to create a standards-compliant 8 | // token, see: https://github.com/ConsenSys/Tokens. Cheers! 9 | 10 | contract MetaCoin { 11 | mapping (address => uint) balances; 12 | 13 | event Transfer(address indexed _from, address indexed _to, uint256 _value); 14 | 15 | function MetaCoin() public { 16 | balances[tx.origin] = 10000; 17 | } 18 | 19 | function sendCoin(address receiver, uint amount) public returns(bool sufficient) { 20 | if (balances[msg.sender] < amount) return false; 21 | balances[msg.sender] -= amount; 22 | balances[receiver] += amount; 23 | Transfer(msg.sender, receiver, amount); 24 | return true; 25 | } 26 | 27 | function getBalanceInEth(address addr) public view returns(uint){ 28 | return ConvertLib.convert(getBalance(addr),2); 29 | } 30 | 31 | function getBalance(address addr) public view returns(uint) { 32 | return balances[addr]; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /metacoin/contracts/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.2; 2 | 3 | contract Migrations { 4 | address public owner; 5 | uint public last_completed_migration; 6 | 7 | modifier restricted() { 8 | if (msg.sender == owner) _; 9 | } 10 | 11 | function Migrations() public { 12 | owner = msg.sender; 13 | } 14 | 15 | function setCompleted(uint completed) public restricted { 16 | last_completed_migration = completed; 17 | } 18 | 19 | function upgrade(address new_address) public restricted { 20 | Migrations upgraded = Migrations(new_address); 21 | upgraded.setCompleted(last_completed_migration); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /metacoin/migrations/1_initial_migration.js: -------------------------------------------------------------------------------- 1 | var Migrations = artifacts.require("./Migrations.sol"); 2 | 3 | module.exports = function(deployer) { 4 | deployer.deploy(Migrations); 5 | }; 6 | -------------------------------------------------------------------------------- /metacoin/migrations/2_deploy_contracts.js: -------------------------------------------------------------------------------- 1 | var ConvertLib = artifacts.require("./ConvertLib.sol"); 2 | var MetaCoin = artifacts.require("./MetaCoin.sol"); 3 | 4 | module.exports = function(deployer) { 5 | deployer.deploy(ConvertLib); 6 | deployer.link(ConvertLib, MetaCoin); 7 | deployer.deploy(MetaCoin); 8 | }; 9 | -------------------------------------------------------------------------------- /metacoin/test/.placeholder: -------------------------------------------------------------------------------- 1 | This is a placeholder file to ensure the parent directory in the git repository. Feel free to remove. 2 | -------------------------------------------------------------------------------- /metacoin/test/TestMetacoin.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.2; 2 | 3 | import "truffle/Assert.sol"; 4 | import "truffle/DeployedAddresses.sol"; 5 | import "../contracts/MetaCoin.sol"; 6 | 7 | contract TestMetacoin { 8 | 9 | function testInitialBalanceUsingDeployedContract() public { 10 | MetaCoin meta = MetaCoin(DeployedAddresses.MetaCoin()); 11 | 12 | uint expected = 10000; 13 | 14 | Assert.equal(meta.getBalance(tx.origin), expected, "Owner should have 10000 MetaCoin initially"); 15 | } 16 | 17 | function testInitialBalanceWithNewMetaCoin() public { 18 | MetaCoin meta = new MetaCoin(); 19 | 20 | uint expected = 10000; 21 | 22 | Assert.equal(meta.getBalance(tx.origin), expected, "Owner should have 10000 MetaCoin initially"); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /metacoin/test/metacoin.js: -------------------------------------------------------------------------------- 1 | var MetaCoin = artifacts.require("MetaCoin"); 2 | 3 | contract('MetaCoin', function(accounts) { 4 | it("should put 10000 MetaCoin in the first account", function() { 5 | return MetaCoin.deployed().then(function(instance) { 6 | return instance.getBalance.call(accounts[0]); 7 | }).then(function(balance) { 8 | assert.equal(balance.valueOf(), 10000, "10000 wasn't in the first account"); 9 | }); 10 | }); 11 | it("should call a function that depends on a linked library", function() { 12 | var meta; 13 | var metaCoinBalance; 14 | var metaCoinEthBalance; 15 | 16 | return MetaCoin.deployed().then(function(instance) { 17 | meta = instance; 18 | return meta.getBalance.call(accounts[0]); 19 | }).then(function(outCoinBalance) { 20 | metaCoinBalance = outCoinBalance.toNumber(); 21 | return meta.getBalanceInEth.call(accounts[0]); 22 | }).then(function(outCoinBalanceEth) { 23 | metaCoinEthBalance = outCoinBalanceEth.toNumber(); 24 | }).then(function() { 25 | assert.equal(metaCoinEthBalance, 2 * metaCoinBalance, "Library function returned unexpected function, linkage may be broken"); 26 | }); 27 | }); 28 | it("should send coin correctly", function() { 29 | var meta; 30 | 31 | // Get initial balances of first and second account. 32 | var account_one = accounts[0]; 33 | var account_two = accounts[1]; 34 | 35 | var account_one_starting_balance; 36 | var account_two_starting_balance; 37 | var account_one_ending_balance; 38 | var account_two_ending_balance; 39 | 40 | var amount = 10; 41 | 42 | return MetaCoin.deployed().then(function(instance) { 43 | meta = instance; 44 | return meta.getBalance.call(account_one); 45 | }).then(function(balance) { 46 | account_one_starting_balance = balance.toNumber(); 47 | return meta.getBalance.call(account_two); 48 | }).then(function(balance) { 49 | account_two_starting_balance = balance.toNumber(); 50 | return meta.sendCoin(account_two, amount, {from: account_one}); 51 | }).then(function() { 52 | return meta.getBalance.call(account_one); 53 | }).then(function(balance) { 54 | account_one_ending_balance = balance.toNumber(); 55 | return meta.getBalance.call(account_two); 56 | }).then(function(balance) { 57 | account_two_ending_balance = balance.toNumber(); 58 | 59 | assert.equal(account_one_ending_balance, account_one_starting_balance - amount, "Amount wasn't correctly taken from the sender"); 60 | assert.equal(account_two_ending_balance, account_two_starting_balance + amount, "Amount wasn't correctly sent to the receiver"); 61 | }); 62 | }); 63 | }); 64 | -------------------------------------------------------------------------------- /metacoin/test/metacoin_2.js: -------------------------------------------------------------------------------- 1 | const MetaCoin = artifacts.require("MetaCoin"); 2 | 3 | contract('2nd MetaCoin test', async (accounts) => { 4 | 5 | it("should put 10000 MetaCoin in the first account", async () => { 6 | let instance = await MetaCoin.deployed(); 7 | let balance = await instance.getBalance.call(accounts[0]); 8 | assert.equal(balance.valueOf(), 10000); 9 | }) 10 | 11 | it("should call a function that depends on a linked library", async () => { 12 | let meta = await MetaCoin.deployed(); 13 | let outCoinBalance = await meta.getBalance.call(accounts[0]); 14 | let metaCoinBalance = outCoinBalance.toNumber(); 15 | let outCoinBalanceEth = await meta.getBalanceInEth.call(accounts[0]); 16 | let metaCoinEthBalance = outCoinBalanceEth.toNumber(); 17 | assert.equal(metaCoinEthBalance, 2 * metaCoinBalance); 18 | 19 | }); 20 | 21 | it("should send coin correctly", async () => { 22 | 23 | // Get initial balances of first and second account. 24 | let account_one = accounts[0]; 25 | let account_two = accounts[1]; 26 | 27 | let amount = 10; 28 | 29 | 30 | let instance = await MetaCoin.deployed(); 31 | let meta = instance; 32 | 33 | let balance = await meta.getBalance.call(account_one); 34 | let account_one_starting_balance = balance.toNumber(); 35 | 36 | balance = await meta.getBalance.call(account_two); 37 | let account_two_starting_balance = balance.toNumber(); 38 | await meta.sendCoin(account_two, amount, {from: account_one}); 39 | 40 | balance = await meta.getBalance.call(account_one); 41 | let account_one_ending_balance = balance.toNumber(); 42 | 43 | balance = await meta.getBalance.call(account_two); 44 | let account_two_ending_balance = balance.toNumber(); 45 | 46 | assert.equal(account_one_ending_balance, account_one_starting_balance - amount, "Amount wasn't correctly taken from the sender"); 47 | assert.equal(account_two_ending_balance, account_two_starting_balance + amount, "Amount wasn't correctly sent to the receiver"); 48 | }); 49 | 50 | }) -------------------------------------------------------------------------------- /metacoin/truffle-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // See 3 | // to customize your Truffle configuration! 4 | }; 5 | -------------------------------------------------------------------------------- /metacoin/truffle.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // See 3 | // to customize your Truffle configuration! 4 | }; 5 | -------------------------------------------------------------------------------- /metamask_example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

Hello!


8 | 9 |
10 |
11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /metamask_example/publish.js: -------------------------------------------------------------------------------- 1 | var Web3 = require("web3"); 2 | var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:9545")); 3 | 4 | var acc = web3.eth.accounts[0]; //get the first account 5 | 6 | //Code: 7 | /* 8 | contract Ownable { 9 | address public owner; 10 | 11 | event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); 12 | 13 | 14 | function Ownable() public { 15 | owner = msg.sender; 16 | } 17 | 18 | modifier onlyOwner() { 19 | require(msg.sender == owner); 20 | _; 21 | } 22 | 23 | function transferOwnership(address newOwner) public onlyOwner { 24 | require(newOwner != address(0)); 25 | OwnershipTransferred(owner, newOwner); 26 | owner = newOwner; 27 | } 28 | } 29 | */ 30 | 31 | //Store this contract's compiled bytecode and ABI 32 | var abi = [{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}] 33 | var bytecode = "6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102858061005e6000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638da5cb5b14610051578063f2fde38b146100a6575b600080fd5b341561005c57600080fd5b6100646100df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100b157600080fd5b6100dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610104565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561015f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561019b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582081efbb72c8063d07f5609b8e41937697f7c0fefba7841d589f2b21c46afef4800029" 34 | 35 | //create the contract instance. We can use this instance to publish or connect to a published contract 36 | var Contract = web3.eth.contract(abi); 37 | 38 | //create a JS Object (key-value pairs), holding the data we need to publish our contract 39 | var publishData = { 40 | "from": acc, //the account from which it will be published 41 | "data": bytecode, 42 | "gas": 4000000 //gas limit. This should be the same or lower than Ethereum's gas limit 43 | } 44 | 45 | //publish the contract, passing a callback that will be called twice. Once when the transaction is sent, and once when it is mined 46 | //the first argument is the constructor argument 47 | Contract.new(publishData, function(err, contractInstance) { 48 | if(!err) { 49 | if(contractInstance.address) { //if the contract has an address aka if the transaction is mined 50 | console.log("New contract address is :", contractInstance.address); 51 | } 52 | } else { 53 | console.error(err); //something went wrong 54 | } 55 | }); 56 | -------------------------------------------------------------------------------- /metamask_example/script.js: -------------------------------------------------------------------------------- 1 | //this function will be called when the whole page is loaded 2 | window.onload = function(){ 3 | if (typeof web3 === 'undefined') { 4 | //if there is no web3 variable 5 | displayMessage("Error! Are you sure that you are using metamask?"); 6 | } else { 7 | displayMessage("Welcome to our DAPP!"); 8 | init(); 9 | } 10 | } 11 | 12 | var contractInstance; 13 | 14 | var abi = [{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]; 15 | 16 | var address = "0x4e72770760c011647d4873f60a3cf6cdea896cd8"; 17 | var acc; 18 | 19 | function init(){ 20 | var Contract = web3.eth.contract(abi); 21 | contractInstance = Contract.at(address); 22 | updateAccount(); 23 | } 24 | 25 | function updateAccount(){ 26 | //in metamask, the accounts array is of size 1 and only contains the currently selected account. The user can select a different account and so we need to update our account variable 27 | acc = web3.eth.accounts[0]; 28 | } 29 | 30 | function displayMessage(message){ 31 | var el = document.getElementById("message"); 32 | el.innerHTML = message; 33 | } 34 | 35 | function getTextInput(){ 36 | var el = document.getElementById("input"); 37 | 38 | return el.value; 39 | } 40 | 41 | function onButtonPressed(){ 42 | updateAccount(); 43 | 44 | var input = getTextInput(); 45 | 46 | contractInstance.transferOwnership(input, {"from": acc}, function(err, res){ 47 | if(!err){ 48 | displayMessage("Success! Transaction hash: " + res.valueOf()); 49 | } else { 50 | displayMessage("Something went wrong. Are you sure that you are the current owner?"); 51 | } 52 | }); 53 | } 54 | 55 | function onSecondButtonPressed(){ 56 | updateAccount(); 57 | 58 | contractInstance.owner.call({"from": acc}, function(err, res) { 59 | if(!err){ 60 | displayMessage("The current owner is " + res.valueOf()); 61 | } else { 62 | displayMessage("Something went horribly wrong. Deal with it:", err); 63 | } 64 | }); 65 | } 66 | -------------------------------------------------------------------------------- /metamask_template/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

Hello!


8 | 9 |
10 |
11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /metamask_template/script.js: -------------------------------------------------------------------------------- 1 | //this function will be called when the whole page is loaded 2 | window.onload = function(){ 3 | if (typeof web3 === 'undefined') { 4 | //if there is no web3 variable 5 | displayMessage("Error! Are you sure that you are using metamask?"); 6 | } else { 7 | displayMessage("Welcome to our DAPP!"); 8 | init(); 9 | } 10 | } 11 | 12 | var contractInstance; 13 | 14 | var abi = []; //TODO 15 | 16 | var address = ""; //TODO 17 | var acc; 18 | 19 | function init(){ 20 | var Contract = web3.eth.contract(abi); 21 | contractInstance = Contract.at(address); 22 | updateAccount(); 23 | } 24 | 25 | function updateAccount(){ 26 | //in metamask, the accounts array is of size 1 and only contains the currently selected account. The user can select a different account and so we need to update our account variable 27 | acc = web3.eth.accounts[0]; 28 | } 29 | 30 | function displayMessage(message){ 31 | var el = document.getElementById("message"); 32 | el.innerHTML = message; 33 | } 34 | 35 | function getTextInput(){ 36 | var el = document.getElementById("input"); 37 | 38 | return el.value; 39 | } 40 | 41 | function onButtonPressed(){ 42 | updateAccount(); 43 | 44 | //TODO 45 | } 46 | 47 | function onSecondButtonPressed(){ 48 | updateAccount(); 49 | 50 | //TODO 51 | } 52 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web3_demo", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "acorn": { 8 | "version": "5.4.1", 9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", 10 | "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" 11 | }, 12 | "acorn-dynamic-import": { 13 | "version": "2.0.2", 14 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", 15 | "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", 16 | "requires": { 17 | "acorn": "4.0.13" 18 | }, 19 | "dependencies": { 20 | "acorn": { 21 | "version": "4.0.13", 22 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 23 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" 24 | } 25 | } 26 | }, 27 | "ajv": { 28 | "version": "6.1.1", 29 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz", 30 | "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=", 31 | "requires": { 32 | "fast-deep-equal": "1.0.0", 33 | "fast-json-stable-stringify": "2.0.0", 34 | "json-schema-traverse": "0.3.1" 35 | } 36 | }, 37 | "ajv-keywords": { 38 | "version": "3.1.0", 39 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", 40 | "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=" 41 | }, 42 | "align-text": { 43 | "version": "0.1.4", 44 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 45 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 46 | "requires": { 47 | "kind-of": "3.2.2", 48 | "longest": "1.0.1", 49 | "repeat-string": "1.6.1" 50 | } 51 | }, 52 | "ansi-regex": { 53 | "version": "2.1.1", 54 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 55 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 56 | }, 57 | "anymatch": { 58 | "version": "1.3.2", 59 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 60 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 61 | "requires": { 62 | "micromatch": "2.3.11", 63 | "normalize-path": "2.1.1" 64 | } 65 | }, 66 | "arr-diff": { 67 | "version": "2.0.0", 68 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 69 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 70 | "requires": { 71 | "arr-flatten": "1.1.0" 72 | } 73 | }, 74 | "arr-flatten": { 75 | "version": "1.1.0", 76 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 77 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" 78 | }, 79 | "array-unique": { 80 | "version": "0.2.1", 81 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 82 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" 83 | }, 84 | "asn1.js": { 85 | "version": "4.10.1", 86 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 87 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 88 | "requires": { 89 | "bn.js": "4.11.8", 90 | "inherits": "2.0.3", 91 | "minimalistic-assert": "1.0.0" 92 | } 93 | }, 94 | "assert": { 95 | "version": "1.4.1", 96 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 97 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 98 | "requires": { 99 | "util": "0.10.3" 100 | } 101 | }, 102 | "async": { 103 | "version": "2.6.0", 104 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", 105 | "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", 106 | "requires": { 107 | "lodash": "4.17.5" 108 | } 109 | }, 110 | "async-each": { 111 | "version": "1.0.1", 112 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 113 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" 114 | }, 115 | "balanced-match": { 116 | "version": "1.0.0", 117 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 118 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 119 | }, 120 | "base64-js": { 121 | "version": "1.2.3", 122 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", 123 | "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" 124 | }, 125 | "big.js": { 126 | "version": "3.2.0", 127 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", 128 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" 129 | }, 130 | "bignumber.js": { 131 | "version": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" 132 | }, 133 | "binary-extensions": { 134 | "version": "1.11.0", 135 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 136 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" 137 | }, 138 | "bn.js": { 139 | "version": "4.11.8", 140 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 141 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 142 | }, 143 | "brace-expansion": { 144 | "version": "1.1.11", 145 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 146 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 147 | "requires": { 148 | "balanced-match": "1.0.0", 149 | "concat-map": "0.0.1" 150 | } 151 | }, 152 | "braces": { 153 | "version": "1.8.5", 154 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 155 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 156 | "requires": { 157 | "expand-range": "1.8.2", 158 | "preserve": "0.2.0", 159 | "repeat-element": "1.1.2" 160 | } 161 | }, 162 | "brorand": { 163 | "version": "1.1.0", 164 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 165 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 166 | }, 167 | "browser-stdout": { 168 | "version": "1.3.0", 169 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", 170 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" 171 | }, 172 | "browserify-aes": { 173 | "version": "1.1.1", 174 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", 175 | "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", 176 | "requires": { 177 | "buffer-xor": "1.0.3", 178 | "cipher-base": "1.0.4", 179 | "create-hash": "1.1.3", 180 | "evp_bytestokey": "1.0.3", 181 | "inherits": "2.0.3", 182 | "safe-buffer": "5.1.1" 183 | } 184 | }, 185 | "browserify-cipher": { 186 | "version": "1.0.0", 187 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", 188 | "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", 189 | "requires": { 190 | "browserify-aes": "1.1.1", 191 | "browserify-des": "1.0.0", 192 | "evp_bytestokey": "1.0.3" 193 | } 194 | }, 195 | "browserify-des": { 196 | "version": "1.0.0", 197 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", 198 | "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", 199 | "requires": { 200 | "cipher-base": "1.0.4", 201 | "des.js": "1.0.0", 202 | "inherits": "2.0.3" 203 | } 204 | }, 205 | "browserify-rsa": { 206 | "version": "4.0.1", 207 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 208 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 209 | "requires": { 210 | "bn.js": "4.11.8", 211 | "randombytes": "2.0.6" 212 | } 213 | }, 214 | "browserify-sign": { 215 | "version": "4.0.4", 216 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 217 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 218 | "requires": { 219 | "bn.js": "4.11.8", 220 | "browserify-rsa": "4.0.1", 221 | "create-hash": "1.1.3", 222 | "create-hmac": "1.1.6", 223 | "elliptic": "6.4.0", 224 | "inherits": "2.0.3", 225 | "parse-asn1": "5.1.0" 226 | } 227 | }, 228 | "browserify-zlib": { 229 | "version": "0.2.0", 230 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 231 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 232 | "requires": { 233 | "pako": "1.0.6" 234 | } 235 | }, 236 | "buffer": { 237 | "version": "4.9.1", 238 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 239 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 240 | "requires": { 241 | "base64-js": "1.2.3", 242 | "ieee754": "1.1.8", 243 | "isarray": "1.0.0" 244 | } 245 | }, 246 | "buffer-xor": { 247 | "version": "1.0.3", 248 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 249 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" 250 | }, 251 | "builtin-modules": { 252 | "version": "1.1.1", 253 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 254 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" 255 | }, 256 | "builtin-status-codes": { 257 | "version": "3.0.0", 258 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 259 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" 260 | }, 261 | "camelcase": { 262 | "version": "1.2.1", 263 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 264 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" 265 | }, 266 | "center-align": { 267 | "version": "0.1.3", 268 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 269 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 270 | "requires": { 271 | "align-text": "0.1.4", 272 | "lazy-cache": "1.0.4" 273 | } 274 | }, 275 | "chokidar": { 276 | "version": "1.7.0", 277 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 278 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 279 | "requires": { 280 | "anymatch": "1.3.2", 281 | "async-each": "1.0.1", 282 | "fsevents": "1.1.3", 283 | "glob-parent": "2.0.0", 284 | "inherits": "2.0.3", 285 | "is-binary-path": "1.0.1", 286 | "is-glob": "2.0.1", 287 | "path-is-absolute": "1.0.1", 288 | "readdirp": "2.1.0" 289 | } 290 | }, 291 | "cipher-base": { 292 | "version": "1.0.4", 293 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 294 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 295 | "requires": { 296 | "inherits": "2.0.3", 297 | "safe-buffer": "5.1.1" 298 | } 299 | }, 300 | "cliui": { 301 | "version": "2.1.0", 302 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 303 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 304 | "requires": { 305 | "center-align": "0.1.3", 306 | "right-align": "0.1.3", 307 | "wordwrap": "0.0.2" 308 | } 309 | }, 310 | "code-point-at": { 311 | "version": "1.1.0", 312 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 313 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 314 | }, 315 | "commander": { 316 | "version": "2.9.0", 317 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 318 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 319 | "requires": { 320 | "graceful-readlink": "1.0.1" 321 | } 322 | }, 323 | "concat-map": { 324 | "version": "0.0.1", 325 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 326 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 327 | }, 328 | "console-browserify": { 329 | "version": "1.1.0", 330 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 331 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 332 | "requires": { 333 | "date-now": "0.1.4" 334 | } 335 | }, 336 | "constants-browserify": { 337 | "version": "1.0.0", 338 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 339 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" 340 | }, 341 | "core-util-is": { 342 | "version": "1.0.2", 343 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 344 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 345 | }, 346 | "create-ecdh": { 347 | "version": "4.0.0", 348 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", 349 | "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", 350 | "requires": { 351 | "bn.js": "4.11.8", 352 | "elliptic": "6.4.0" 353 | } 354 | }, 355 | "create-hash": { 356 | "version": "1.1.3", 357 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", 358 | "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", 359 | "requires": { 360 | "cipher-base": "1.0.4", 361 | "inherits": "2.0.3", 362 | "ripemd160": "2.0.1", 363 | "sha.js": "2.4.10" 364 | } 365 | }, 366 | "create-hmac": { 367 | "version": "1.1.6", 368 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", 369 | "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", 370 | "requires": { 371 | "cipher-base": "1.0.4", 372 | "create-hash": "1.1.3", 373 | "inherits": "2.0.3", 374 | "ripemd160": "2.0.1", 375 | "safe-buffer": "5.1.1", 376 | "sha.js": "2.4.10" 377 | } 378 | }, 379 | "cross-spawn": { 380 | "version": "5.1.0", 381 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 382 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 383 | "requires": { 384 | "lru-cache": "4.1.1", 385 | "shebang-command": "1.2.0", 386 | "which": "1.3.0" 387 | } 388 | }, 389 | "crypto-browserify": { 390 | "version": "3.12.0", 391 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 392 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 393 | "requires": { 394 | "browserify-cipher": "1.0.0", 395 | "browserify-sign": "4.0.4", 396 | "create-ecdh": "4.0.0", 397 | "create-hash": "1.1.3", 398 | "create-hmac": "1.1.6", 399 | "diffie-hellman": "5.0.2", 400 | "inherits": "2.0.3", 401 | "pbkdf2": "3.0.14", 402 | "public-encrypt": "4.0.0", 403 | "randombytes": "2.0.6", 404 | "randomfill": "1.0.4" 405 | } 406 | }, 407 | "crypto-js": { 408 | "version": "3.1.8", 409 | "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", 410 | "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=" 411 | }, 412 | "d": { 413 | "version": "1.0.0", 414 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", 415 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", 416 | "requires": { 417 | "es5-ext": "0.10.39" 418 | } 419 | }, 420 | "date-now": { 421 | "version": "0.1.4", 422 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 423 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" 424 | }, 425 | "debug": { 426 | "version": "2.6.8", 427 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 428 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 429 | "requires": { 430 | "ms": "2.0.0" 431 | } 432 | }, 433 | "decamelize": { 434 | "version": "1.2.0", 435 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 436 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 437 | }, 438 | "des.js": { 439 | "version": "1.0.0", 440 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 441 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 442 | "requires": { 443 | "inherits": "2.0.3", 444 | "minimalistic-assert": "1.0.0" 445 | } 446 | }, 447 | "diff": { 448 | "version": "3.2.0", 449 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", 450 | "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=" 451 | }, 452 | "diffie-hellman": { 453 | "version": "5.0.2", 454 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", 455 | "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", 456 | "requires": { 457 | "bn.js": "4.11.8", 458 | "miller-rabin": "4.0.1", 459 | "randombytes": "2.0.6" 460 | } 461 | }, 462 | "domain-browser": { 463 | "version": "1.2.0", 464 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 465 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" 466 | }, 467 | "elliptic": { 468 | "version": "6.4.0", 469 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", 470 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", 471 | "requires": { 472 | "bn.js": "4.11.8", 473 | "brorand": "1.1.0", 474 | "hash.js": "1.1.3", 475 | "hmac-drbg": "1.0.1", 476 | "inherits": "2.0.3", 477 | "minimalistic-assert": "1.0.0", 478 | "minimalistic-crypto-utils": "1.0.1" 479 | } 480 | }, 481 | "emojis-list": { 482 | "version": "2.1.0", 483 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 484 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" 485 | }, 486 | "enhanced-resolve": { 487 | "version": "3.4.1", 488 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", 489 | "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", 490 | "requires": { 491 | "graceful-fs": "4.1.11", 492 | "memory-fs": "0.4.1", 493 | "object-assign": "4.1.1", 494 | "tapable": "0.2.8" 495 | } 496 | }, 497 | "errno": { 498 | "version": "0.1.7", 499 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", 500 | "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", 501 | "requires": { 502 | "prr": "1.0.1" 503 | } 504 | }, 505 | "error-ex": { 506 | "version": "1.3.1", 507 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 508 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 509 | "requires": { 510 | "is-arrayish": "0.2.1" 511 | } 512 | }, 513 | "es5-ext": { 514 | "version": "0.10.39", 515 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.39.tgz", 516 | "integrity": "sha512-AlaXZhPHl0po/uxMx1tyrlt1O86M6D5iVaDH8UgLfgek4kXTX6vzsRfJQWC2Ku+aG8pkw1XWzh9eTkwfVrsD5g==", 517 | "requires": { 518 | "es6-iterator": "2.0.3", 519 | "es6-symbol": "3.1.1" 520 | } 521 | }, 522 | "es6-iterator": { 523 | "version": "2.0.3", 524 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 525 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 526 | "requires": { 527 | "d": "1.0.0", 528 | "es5-ext": "0.10.39", 529 | "es6-symbol": "3.1.1" 530 | } 531 | }, 532 | "es6-map": { 533 | "version": "0.1.5", 534 | "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", 535 | "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", 536 | "requires": { 537 | "d": "1.0.0", 538 | "es5-ext": "0.10.39", 539 | "es6-iterator": "2.0.3", 540 | "es6-set": "0.1.5", 541 | "es6-symbol": "3.1.1", 542 | "event-emitter": "0.3.5" 543 | } 544 | }, 545 | "es6-set": { 546 | "version": "0.1.5", 547 | "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", 548 | "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", 549 | "requires": { 550 | "d": "1.0.0", 551 | "es5-ext": "0.10.39", 552 | "es6-iterator": "2.0.3", 553 | "es6-symbol": "3.1.1", 554 | "event-emitter": "0.3.5" 555 | } 556 | }, 557 | "es6-symbol": { 558 | "version": "3.1.1", 559 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", 560 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", 561 | "requires": { 562 | "d": "1.0.0", 563 | "es5-ext": "0.10.39" 564 | } 565 | }, 566 | "es6-weak-map": { 567 | "version": "2.0.2", 568 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", 569 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", 570 | "requires": { 571 | "d": "1.0.0", 572 | "es5-ext": "0.10.39", 573 | "es6-iterator": "2.0.3", 574 | "es6-symbol": "3.1.1" 575 | } 576 | }, 577 | "escape-string-regexp": { 578 | "version": "1.0.5", 579 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 580 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 581 | }, 582 | "escope": { 583 | "version": "3.6.0", 584 | "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", 585 | "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", 586 | "requires": { 587 | "es6-map": "0.1.5", 588 | "es6-weak-map": "2.0.2", 589 | "esrecurse": "4.2.0", 590 | "estraverse": "4.2.0" 591 | } 592 | }, 593 | "esrecurse": { 594 | "version": "4.2.0", 595 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", 596 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", 597 | "requires": { 598 | "estraverse": "4.2.0", 599 | "object-assign": "4.1.1" 600 | } 601 | }, 602 | "estraverse": { 603 | "version": "4.2.0", 604 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 605 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" 606 | }, 607 | "event-emitter": { 608 | "version": "0.3.5", 609 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 610 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 611 | "requires": { 612 | "d": "1.0.0", 613 | "es5-ext": "0.10.39" 614 | } 615 | }, 616 | "events": { 617 | "version": "1.1.1", 618 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 619 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" 620 | }, 621 | "evp_bytestokey": { 622 | "version": "1.0.3", 623 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 624 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 625 | "requires": { 626 | "md5.js": "1.3.4", 627 | "safe-buffer": "5.1.1" 628 | } 629 | }, 630 | "execa": { 631 | "version": "0.7.0", 632 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 633 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 634 | "requires": { 635 | "cross-spawn": "5.1.0", 636 | "get-stream": "3.0.0", 637 | "is-stream": "1.1.0", 638 | "npm-run-path": "2.0.2", 639 | "p-finally": "1.0.0", 640 | "signal-exit": "3.0.2", 641 | "strip-eof": "1.0.0" 642 | } 643 | }, 644 | "expand-brackets": { 645 | "version": "0.1.5", 646 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 647 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 648 | "requires": { 649 | "is-posix-bracket": "0.1.1" 650 | } 651 | }, 652 | "expand-range": { 653 | "version": "1.8.2", 654 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 655 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 656 | "requires": { 657 | "fill-range": "2.2.3" 658 | } 659 | }, 660 | "extglob": { 661 | "version": "0.3.2", 662 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 663 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 664 | "requires": { 665 | "is-extglob": "1.0.0" 666 | } 667 | }, 668 | "fast-deep-equal": { 669 | "version": "1.0.0", 670 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 671 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" 672 | }, 673 | "fast-json-stable-stringify": { 674 | "version": "2.0.0", 675 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 676 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 677 | }, 678 | "filename-regex": { 679 | "version": "2.0.1", 680 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 681 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" 682 | }, 683 | "fill-range": { 684 | "version": "2.2.3", 685 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 686 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 687 | "requires": { 688 | "is-number": "2.1.0", 689 | "isobject": "2.1.0", 690 | "randomatic": "1.1.7", 691 | "repeat-element": "1.1.2", 692 | "repeat-string": "1.6.1" 693 | } 694 | }, 695 | "find-up": { 696 | "version": "2.1.0", 697 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 698 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 699 | "requires": { 700 | "locate-path": "2.0.0" 701 | } 702 | }, 703 | "for-in": { 704 | "version": "1.0.2", 705 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 706 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" 707 | }, 708 | "for-own": { 709 | "version": "0.1.5", 710 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 711 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 712 | "requires": { 713 | "for-in": "1.0.2" 714 | } 715 | }, 716 | "fs-extra": { 717 | "version": "0.30.0", 718 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", 719 | "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", 720 | "requires": { 721 | "graceful-fs": "4.1.11", 722 | "jsonfile": "2.4.0", 723 | "klaw": "1.3.1", 724 | "path-is-absolute": "1.0.1", 725 | "rimraf": "2.6.2" 726 | } 727 | }, 728 | "fs.realpath": { 729 | "version": "1.0.0", 730 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 731 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 732 | }, 733 | "fsevents": { 734 | "version": "1.1.3", 735 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", 736 | "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", 737 | "optional": true, 738 | "requires": { 739 | "nan": "2.9.2", 740 | "node-pre-gyp": "0.6.39" 741 | }, 742 | "dependencies": { 743 | "abbrev": { 744 | "version": "1.1.0", 745 | "bundled": true, 746 | "optional": true 747 | }, 748 | "ajv": { 749 | "version": "4.11.8", 750 | "bundled": true, 751 | "optional": true, 752 | "requires": { 753 | "co": "4.6.0", 754 | "json-stable-stringify": "1.0.1" 755 | } 756 | }, 757 | "ansi-regex": { 758 | "version": "2.1.1", 759 | "bundled": true 760 | }, 761 | "aproba": { 762 | "version": "1.1.1", 763 | "bundled": true, 764 | "optional": true 765 | }, 766 | "are-we-there-yet": { 767 | "version": "1.1.4", 768 | "bundled": true, 769 | "optional": true, 770 | "requires": { 771 | "delegates": "1.0.0", 772 | "readable-stream": "2.2.9" 773 | } 774 | }, 775 | "asn1": { 776 | "version": "0.2.3", 777 | "bundled": true, 778 | "optional": true 779 | }, 780 | "assert-plus": { 781 | "version": "0.2.0", 782 | "bundled": true, 783 | "optional": true 784 | }, 785 | "asynckit": { 786 | "version": "0.4.0", 787 | "bundled": true, 788 | "optional": true 789 | }, 790 | "aws-sign2": { 791 | "version": "0.6.0", 792 | "bundled": true, 793 | "optional": true 794 | }, 795 | "aws4": { 796 | "version": "1.6.0", 797 | "bundled": true, 798 | "optional": true 799 | }, 800 | "balanced-match": { 801 | "version": "0.4.2", 802 | "bundled": true 803 | }, 804 | "bcrypt-pbkdf": { 805 | "version": "1.0.1", 806 | "bundled": true, 807 | "optional": true, 808 | "requires": { 809 | "tweetnacl": "0.14.5" 810 | } 811 | }, 812 | "block-stream": { 813 | "version": "0.0.9", 814 | "bundled": true, 815 | "requires": { 816 | "inherits": "2.0.3" 817 | } 818 | }, 819 | "boom": { 820 | "version": "2.10.1", 821 | "bundled": true, 822 | "requires": { 823 | "hoek": "2.16.3" 824 | } 825 | }, 826 | "brace-expansion": { 827 | "version": "1.1.7", 828 | "bundled": true, 829 | "requires": { 830 | "balanced-match": "0.4.2", 831 | "concat-map": "0.0.1" 832 | } 833 | }, 834 | "buffer-shims": { 835 | "version": "1.0.0", 836 | "bundled": true 837 | }, 838 | "caseless": { 839 | "version": "0.12.0", 840 | "bundled": true, 841 | "optional": true 842 | }, 843 | "co": { 844 | "version": "4.6.0", 845 | "bundled": true, 846 | "optional": true 847 | }, 848 | "code-point-at": { 849 | "version": "1.1.0", 850 | "bundled": true 851 | }, 852 | "combined-stream": { 853 | "version": "1.0.5", 854 | "bundled": true, 855 | "requires": { 856 | "delayed-stream": "1.0.0" 857 | } 858 | }, 859 | "concat-map": { 860 | "version": "0.0.1", 861 | "bundled": true 862 | }, 863 | "console-control-strings": { 864 | "version": "1.1.0", 865 | "bundled": true 866 | }, 867 | "core-util-is": { 868 | "version": "1.0.2", 869 | "bundled": true 870 | }, 871 | "cryptiles": { 872 | "version": "2.0.5", 873 | "bundled": true, 874 | "requires": { 875 | "boom": "2.10.1" 876 | } 877 | }, 878 | "dashdash": { 879 | "version": "1.14.1", 880 | "bundled": true, 881 | "optional": true, 882 | "requires": { 883 | "assert-plus": "1.0.0" 884 | }, 885 | "dependencies": { 886 | "assert-plus": { 887 | "version": "1.0.0", 888 | "bundled": true, 889 | "optional": true 890 | } 891 | } 892 | }, 893 | "debug": { 894 | "version": "2.6.8", 895 | "bundled": true, 896 | "optional": true, 897 | "requires": { 898 | "ms": "2.0.0" 899 | } 900 | }, 901 | "deep-extend": { 902 | "version": "0.4.2", 903 | "bundled": true, 904 | "optional": true 905 | }, 906 | "delayed-stream": { 907 | "version": "1.0.0", 908 | "bundled": true 909 | }, 910 | "delegates": { 911 | "version": "1.0.0", 912 | "bundled": true, 913 | "optional": true 914 | }, 915 | "detect-libc": { 916 | "version": "1.0.2", 917 | "bundled": true, 918 | "optional": true 919 | }, 920 | "ecc-jsbn": { 921 | "version": "0.1.1", 922 | "bundled": true, 923 | "optional": true, 924 | "requires": { 925 | "jsbn": "0.1.1" 926 | } 927 | }, 928 | "extend": { 929 | "version": "3.0.1", 930 | "bundled": true, 931 | "optional": true 932 | }, 933 | "extsprintf": { 934 | "version": "1.0.2", 935 | "bundled": true 936 | }, 937 | "forever-agent": { 938 | "version": "0.6.1", 939 | "bundled": true, 940 | "optional": true 941 | }, 942 | "form-data": { 943 | "version": "2.1.4", 944 | "bundled": true, 945 | "optional": true, 946 | "requires": { 947 | "asynckit": "0.4.0", 948 | "combined-stream": "1.0.5", 949 | "mime-types": "2.1.15" 950 | } 951 | }, 952 | "fs.realpath": { 953 | "version": "1.0.0", 954 | "bundled": true 955 | }, 956 | "fstream": { 957 | "version": "1.0.11", 958 | "bundled": true, 959 | "requires": { 960 | "graceful-fs": "4.1.11", 961 | "inherits": "2.0.3", 962 | "mkdirp": "0.5.1", 963 | "rimraf": "2.6.1" 964 | } 965 | }, 966 | "fstream-ignore": { 967 | "version": "1.0.5", 968 | "bundled": true, 969 | "optional": true, 970 | "requires": { 971 | "fstream": "1.0.11", 972 | "inherits": "2.0.3", 973 | "minimatch": "3.0.4" 974 | } 975 | }, 976 | "gauge": { 977 | "version": "2.7.4", 978 | "bundled": true, 979 | "optional": true, 980 | "requires": { 981 | "aproba": "1.1.1", 982 | "console-control-strings": "1.1.0", 983 | "has-unicode": "2.0.1", 984 | "object-assign": "4.1.1", 985 | "signal-exit": "3.0.2", 986 | "string-width": "1.0.2", 987 | "strip-ansi": "3.0.1", 988 | "wide-align": "1.1.2" 989 | } 990 | }, 991 | "getpass": { 992 | "version": "0.1.7", 993 | "bundled": true, 994 | "optional": true, 995 | "requires": { 996 | "assert-plus": "1.0.0" 997 | }, 998 | "dependencies": { 999 | "assert-plus": { 1000 | "version": "1.0.0", 1001 | "bundled": true, 1002 | "optional": true 1003 | } 1004 | } 1005 | }, 1006 | "glob": { 1007 | "version": "7.1.2", 1008 | "bundled": true, 1009 | "requires": { 1010 | "fs.realpath": "1.0.0", 1011 | "inflight": "1.0.6", 1012 | "inherits": "2.0.3", 1013 | "minimatch": "3.0.4", 1014 | "once": "1.4.0", 1015 | "path-is-absolute": "1.0.1" 1016 | } 1017 | }, 1018 | "graceful-fs": { 1019 | "version": "4.1.11", 1020 | "bundled": true 1021 | }, 1022 | "har-schema": { 1023 | "version": "1.0.5", 1024 | "bundled": true, 1025 | "optional": true 1026 | }, 1027 | "har-validator": { 1028 | "version": "4.2.1", 1029 | "bundled": true, 1030 | "optional": true, 1031 | "requires": { 1032 | "ajv": "4.11.8", 1033 | "har-schema": "1.0.5" 1034 | } 1035 | }, 1036 | "has-unicode": { 1037 | "version": "2.0.1", 1038 | "bundled": true, 1039 | "optional": true 1040 | }, 1041 | "hawk": { 1042 | "version": "3.1.3", 1043 | "bundled": true, 1044 | "requires": { 1045 | "boom": "2.10.1", 1046 | "cryptiles": "2.0.5", 1047 | "hoek": "2.16.3", 1048 | "sntp": "1.0.9" 1049 | } 1050 | }, 1051 | "hoek": { 1052 | "version": "2.16.3", 1053 | "bundled": true 1054 | }, 1055 | "http-signature": { 1056 | "version": "1.1.1", 1057 | "bundled": true, 1058 | "optional": true, 1059 | "requires": { 1060 | "assert-plus": "0.2.0", 1061 | "jsprim": "1.4.0", 1062 | "sshpk": "1.13.0" 1063 | } 1064 | }, 1065 | "inflight": { 1066 | "version": "1.0.6", 1067 | "bundled": true, 1068 | "requires": { 1069 | "once": "1.4.0", 1070 | "wrappy": "1.0.2" 1071 | } 1072 | }, 1073 | "inherits": { 1074 | "version": "2.0.3", 1075 | "bundled": true 1076 | }, 1077 | "ini": { 1078 | "version": "1.3.4", 1079 | "bundled": true, 1080 | "optional": true 1081 | }, 1082 | "is-fullwidth-code-point": { 1083 | "version": "1.0.0", 1084 | "bundled": true, 1085 | "requires": { 1086 | "number-is-nan": "1.0.1" 1087 | } 1088 | }, 1089 | "is-typedarray": { 1090 | "version": "1.0.0", 1091 | "bundled": true, 1092 | "optional": true 1093 | }, 1094 | "isarray": { 1095 | "version": "1.0.0", 1096 | "bundled": true 1097 | }, 1098 | "isstream": { 1099 | "version": "0.1.2", 1100 | "bundled": true, 1101 | "optional": true 1102 | }, 1103 | "jodid25519": { 1104 | "version": "1.0.2", 1105 | "bundled": true, 1106 | "optional": true, 1107 | "requires": { 1108 | "jsbn": "0.1.1" 1109 | } 1110 | }, 1111 | "jsbn": { 1112 | "version": "0.1.1", 1113 | "bundled": true, 1114 | "optional": true 1115 | }, 1116 | "json-schema": { 1117 | "version": "0.2.3", 1118 | "bundled": true, 1119 | "optional": true 1120 | }, 1121 | "json-stable-stringify": { 1122 | "version": "1.0.1", 1123 | "bundled": true, 1124 | "optional": true, 1125 | "requires": { 1126 | "jsonify": "0.0.0" 1127 | } 1128 | }, 1129 | "json-stringify-safe": { 1130 | "version": "5.0.1", 1131 | "bundled": true, 1132 | "optional": true 1133 | }, 1134 | "jsonify": { 1135 | "version": "0.0.0", 1136 | "bundled": true, 1137 | "optional": true 1138 | }, 1139 | "jsprim": { 1140 | "version": "1.4.0", 1141 | "bundled": true, 1142 | "optional": true, 1143 | "requires": { 1144 | "assert-plus": "1.0.0", 1145 | "extsprintf": "1.0.2", 1146 | "json-schema": "0.2.3", 1147 | "verror": "1.3.6" 1148 | }, 1149 | "dependencies": { 1150 | "assert-plus": { 1151 | "version": "1.0.0", 1152 | "bundled": true, 1153 | "optional": true 1154 | } 1155 | } 1156 | }, 1157 | "mime-db": { 1158 | "version": "1.27.0", 1159 | "bundled": true 1160 | }, 1161 | "mime-types": { 1162 | "version": "2.1.15", 1163 | "bundled": true, 1164 | "requires": { 1165 | "mime-db": "1.27.0" 1166 | } 1167 | }, 1168 | "minimatch": { 1169 | "version": "3.0.4", 1170 | "bundled": true, 1171 | "requires": { 1172 | "brace-expansion": "1.1.7" 1173 | } 1174 | }, 1175 | "minimist": { 1176 | "version": "0.0.8", 1177 | "bundled": true 1178 | }, 1179 | "mkdirp": { 1180 | "version": "0.5.1", 1181 | "bundled": true, 1182 | "requires": { 1183 | "minimist": "0.0.8" 1184 | } 1185 | }, 1186 | "ms": { 1187 | "version": "2.0.0", 1188 | "bundled": true, 1189 | "optional": true 1190 | }, 1191 | "node-pre-gyp": { 1192 | "version": "0.6.39", 1193 | "bundled": true, 1194 | "optional": true, 1195 | "requires": { 1196 | "detect-libc": "1.0.2", 1197 | "hawk": "3.1.3", 1198 | "mkdirp": "0.5.1", 1199 | "nopt": "4.0.1", 1200 | "npmlog": "4.1.0", 1201 | "rc": "1.2.1", 1202 | "request": "2.81.0", 1203 | "rimraf": "2.6.1", 1204 | "semver": "5.3.0", 1205 | "tar": "2.2.1", 1206 | "tar-pack": "3.4.0" 1207 | } 1208 | }, 1209 | "nopt": { 1210 | "version": "4.0.1", 1211 | "bundled": true, 1212 | "optional": true, 1213 | "requires": { 1214 | "abbrev": "1.1.0", 1215 | "osenv": "0.1.4" 1216 | } 1217 | }, 1218 | "npmlog": { 1219 | "version": "4.1.0", 1220 | "bundled": true, 1221 | "optional": true, 1222 | "requires": { 1223 | "are-we-there-yet": "1.1.4", 1224 | "console-control-strings": "1.1.0", 1225 | "gauge": "2.7.4", 1226 | "set-blocking": "2.0.0" 1227 | } 1228 | }, 1229 | "number-is-nan": { 1230 | "version": "1.0.1", 1231 | "bundled": true 1232 | }, 1233 | "oauth-sign": { 1234 | "version": "0.8.2", 1235 | "bundled": true, 1236 | "optional": true 1237 | }, 1238 | "object-assign": { 1239 | "version": "4.1.1", 1240 | "bundled": true, 1241 | "optional": true 1242 | }, 1243 | "once": { 1244 | "version": "1.4.0", 1245 | "bundled": true, 1246 | "requires": { 1247 | "wrappy": "1.0.2" 1248 | } 1249 | }, 1250 | "os-homedir": { 1251 | "version": "1.0.2", 1252 | "bundled": true, 1253 | "optional": true 1254 | }, 1255 | "os-tmpdir": { 1256 | "version": "1.0.2", 1257 | "bundled": true, 1258 | "optional": true 1259 | }, 1260 | "osenv": { 1261 | "version": "0.1.4", 1262 | "bundled": true, 1263 | "optional": true, 1264 | "requires": { 1265 | "os-homedir": "1.0.2", 1266 | "os-tmpdir": "1.0.2" 1267 | } 1268 | }, 1269 | "path-is-absolute": { 1270 | "version": "1.0.1", 1271 | "bundled": true 1272 | }, 1273 | "performance-now": { 1274 | "version": "0.2.0", 1275 | "bundled": true, 1276 | "optional": true 1277 | }, 1278 | "process-nextick-args": { 1279 | "version": "1.0.7", 1280 | "bundled": true 1281 | }, 1282 | "punycode": { 1283 | "version": "1.4.1", 1284 | "bundled": true, 1285 | "optional": true 1286 | }, 1287 | "qs": { 1288 | "version": "6.4.0", 1289 | "bundled": true, 1290 | "optional": true 1291 | }, 1292 | "rc": { 1293 | "version": "1.2.1", 1294 | "bundled": true, 1295 | "optional": true, 1296 | "requires": { 1297 | "deep-extend": "0.4.2", 1298 | "ini": "1.3.4", 1299 | "minimist": "1.2.0", 1300 | "strip-json-comments": "2.0.1" 1301 | }, 1302 | "dependencies": { 1303 | "minimist": { 1304 | "version": "1.2.0", 1305 | "bundled": true, 1306 | "optional": true 1307 | } 1308 | } 1309 | }, 1310 | "readable-stream": { 1311 | "version": "2.2.9", 1312 | "bundled": true, 1313 | "requires": { 1314 | "buffer-shims": "1.0.0", 1315 | "core-util-is": "1.0.2", 1316 | "inherits": "2.0.3", 1317 | "isarray": "1.0.0", 1318 | "process-nextick-args": "1.0.7", 1319 | "string_decoder": "1.0.1", 1320 | "util-deprecate": "1.0.2" 1321 | } 1322 | }, 1323 | "request": { 1324 | "version": "2.81.0", 1325 | "bundled": true, 1326 | "optional": true, 1327 | "requires": { 1328 | "aws-sign2": "0.6.0", 1329 | "aws4": "1.6.0", 1330 | "caseless": "0.12.0", 1331 | "combined-stream": "1.0.5", 1332 | "extend": "3.0.1", 1333 | "forever-agent": "0.6.1", 1334 | "form-data": "2.1.4", 1335 | "har-validator": "4.2.1", 1336 | "hawk": "3.1.3", 1337 | "http-signature": "1.1.1", 1338 | "is-typedarray": "1.0.0", 1339 | "isstream": "0.1.2", 1340 | "json-stringify-safe": "5.0.1", 1341 | "mime-types": "2.1.15", 1342 | "oauth-sign": "0.8.2", 1343 | "performance-now": "0.2.0", 1344 | "qs": "6.4.0", 1345 | "safe-buffer": "5.0.1", 1346 | "stringstream": "0.0.5", 1347 | "tough-cookie": "2.3.2", 1348 | "tunnel-agent": "0.6.0", 1349 | "uuid": "3.0.1" 1350 | } 1351 | }, 1352 | "rimraf": { 1353 | "version": "2.6.1", 1354 | "bundled": true, 1355 | "requires": { 1356 | "glob": "7.1.2" 1357 | } 1358 | }, 1359 | "safe-buffer": { 1360 | "version": "5.0.1", 1361 | "bundled": true 1362 | }, 1363 | "semver": { 1364 | "version": "5.3.0", 1365 | "bundled": true, 1366 | "optional": true 1367 | }, 1368 | "set-blocking": { 1369 | "version": "2.0.0", 1370 | "bundled": true, 1371 | "optional": true 1372 | }, 1373 | "signal-exit": { 1374 | "version": "3.0.2", 1375 | "bundled": true, 1376 | "optional": true 1377 | }, 1378 | "sntp": { 1379 | "version": "1.0.9", 1380 | "bundled": true, 1381 | "requires": { 1382 | "hoek": "2.16.3" 1383 | } 1384 | }, 1385 | "sshpk": { 1386 | "version": "1.13.0", 1387 | "bundled": true, 1388 | "optional": true, 1389 | "requires": { 1390 | "asn1": "0.2.3", 1391 | "assert-plus": "1.0.0", 1392 | "bcrypt-pbkdf": "1.0.1", 1393 | "dashdash": "1.14.1", 1394 | "ecc-jsbn": "0.1.1", 1395 | "getpass": "0.1.7", 1396 | "jodid25519": "1.0.2", 1397 | "jsbn": "0.1.1", 1398 | "tweetnacl": "0.14.5" 1399 | }, 1400 | "dependencies": { 1401 | "assert-plus": { 1402 | "version": "1.0.0", 1403 | "bundled": true, 1404 | "optional": true 1405 | } 1406 | } 1407 | }, 1408 | "string-width": { 1409 | "version": "1.0.2", 1410 | "bundled": true, 1411 | "requires": { 1412 | "code-point-at": "1.1.0", 1413 | "is-fullwidth-code-point": "1.0.0", 1414 | "strip-ansi": "3.0.1" 1415 | } 1416 | }, 1417 | "string_decoder": { 1418 | "version": "1.0.1", 1419 | "bundled": true, 1420 | "requires": { 1421 | "safe-buffer": "5.0.1" 1422 | } 1423 | }, 1424 | "stringstream": { 1425 | "version": "0.0.5", 1426 | "bundled": true, 1427 | "optional": true 1428 | }, 1429 | "strip-ansi": { 1430 | "version": "3.0.1", 1431 | "bundled": true, 1432 | "requires": { 1433 | "ansi-regex": "2.1.1" 1434 | } 1435 | }, 1436 | "strip-json-comments": { 1437 | "version": "2.0.1", 1438 | "bundled": true, 1439 | "optional": true 1440 | }, 1441 | "tar": { 1442 | "version": "2.2.1", 1443 | "bundled": true, 1444 | "requires": { 1445 | "block-stream": "0.0.9", 1446 | "fstream": "1.0.11", 1447 | "inherits": "2.0.3" 1448 | } 1449 | }, 1450 | "tar-pack": { 1451 | "version": "3.4.0", 1452 | "bundled": true, 1453 | "optional": true, 1454 | "requires": { 1455 | "debug": "2.6.8", 1456 | "fstream": "1.0.11", 1457 | "fstream-ignore": "1.0.5", 1458 | "once": "1.4.0", 1459 | "readable-stream": "2.2.9", 1460 | "rimraf": "2.6.1", 1461 | "tar": "2.2.1", 1462 | "uid-number": "0.0.6" 1463 | } 1464 | }, 1465 | "tough-cookie": { 1466 | "version": "2.3.2", 1467 | "bundled": true, 1468 | "optional": true, 1469 | "requires": { 1470 | "punycode": "1.4.1" 1471 | } 1472 | }, 1473 | "tunnel-agent": { 1474 | "version": "0.6.0", 1475 | "bundled": true, 1476 | "optional": true, 1477 | "requires": { 1478 | "safe-buffer": "5.0.1" 1479 | } 1480 | }, 1481 | "tweetnacl": { 1482 | "version": "0.14.5", 1483 | "bundled": true, 1484 | "optional": true 1485 | }, 1486 | "uid-number": { 1487 | "version": "0.0.6", 1488 | "bundled": true, 1489 | "optional": true 1490 | }, 1491 | "util-deprecate": { 1492 | "version": "1.0.2", 1493 | "bundled": true 1494 | }, 1495 | "uuid": { 1496 | "version": "3.0.1", 1497 | "bundled": true, 1498 | "optional": true 1499 | }, 1500 | "verror": { 1501 | "version": "1.3.6", 1502 | "bundled": true, 1503 | "optional": true, 1504 | "requires": { 1505 | "extsprintf": "1.0.2" 1506 | } 1507 | }, 1508 | "wide-align": { 1509 | "version": "1.1.2", 1510 | "bundled": true, 1511 | "optional": true, 1512 | "requires": { 1513 | "string-width": "1.0.2" 1514 | } 1515 | }, 1516 | "wrappy": { 1517 | "version": "1.0.2", 1518 | "bundled": true 1519 | } 1520 | } 1521 | }, 1522 | "ganache-cli": { 1523 | "version": "6.0.3", 1524 | "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.0.3.tgz", 1525 | "integrity": "sha512-C7a8su4Zwtootvcy9HtroshTsyUtLC51+aOGUREpy/G4CXbAuLa3nNQri2NyFdqGyOrm/D+jxYP/PWnnrGLyXg==", 1526 | "requires": { 1527 | "webpack": "3.11.0" 1528 | } 1529 | }, 1530 | "get-caller-file": { 1531 | "version": "1.0.2", 1532 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 1533 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" 1534 | }, 1535 | "get-stream": { 1536 | "version": "3.0.0", 1537 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1538 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 1539 | }, 1540 | "glob": { 1541 | "version": "7.1.1", 1542 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", 1543 | "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", 1544 | "requires": { 1545 | "fs.realpath": "1.0.0", 1546 | "inflight": "1.0.6", 1547 | "inherits": "2.0.3", 1548 | "minimatch": "3.0.4", 1549 | "once": "1.4.0", 1550 | "path-is-absolute": "1.0.1" 1551 | } 1552 | }, 1553 | "glob-base": { 1554 | "version": "0.3.0", 1555 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1556 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1557 | "requires": { 1558 | "glob-parent": "2.0.0", 1559 | "is-glob": "2.0.1" 1560 | } 1561 | }, 1562 | "glob-parent": { 1563 | "version": "2.0.0", 1564 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1565 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1566 | "requires": { 1567 | "is-glob": "2.0.1" 1568 | } 1569 | }, 1570 | "graceful-fs": { 1571 | "version": "4.1.11", 1572 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1573 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 1574 | }, 1575 | "graceful-readlink": { 1576 | "version": "1.0.1", 1577 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1578 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" 1579 | }, 1580 | "growl": { 1581 | "version": "1.9.2", 1582 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", 1583 | "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" 1584 | }, 1585 | "has-flag": { 1586 | "version": "2.0.0", 1587 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 1588 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" 1589 | }, 1590 | "hash-base": { 1591 | "version": "2.0.2", 1592 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", 1593 | "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", 1594 | "requires": { 1595 | "inherits": "2.0.3" 1596 | } 1597 | }, 1598 | "hash.js": { 1599 | "version": "1.1.3", 1600 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", 1601 | "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", 1602 | "requires": { 1603 | "inherits": "2.0.3", 1604 | "minimalistic-assert": "1.0.0" 1605 | } 1606 | }, 1607 | "he": { 1608 | "version": "1.1.1", 1609 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 1610 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" 1611 | }, 1612 | "hmac-drbg": { 1613 | "version": "1.0.1", 1614 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 1615 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1616 | "requires": { 1617 | "hash.js": "1.1.3", 1618 | "minimalistic-assert": "1.0.0", 1619 | "minimalistic-crypto-utils": "1.0.1" 1620 | } 1621 | }, 1622 | "hosted-git-info": { 1623 | "version": "2.5.0", 1624 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 1625 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" 1626 | }, 1627 | "https-browserify": { 1628 | "version": "1.0.0", 1629 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 1630 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" 1631 | }, 1632 | "ieee754": { 1633 | "version": "1.1.8", 1634 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 1635 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" 1636 | }, 1637 | "indexof": { 1638 | "version": "0.0.1", 1639 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 1640 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" 1641 | }, 1642 | "inflight": { 1643 | "version": "1.0.6", 1644 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1645 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1646 | "requires": { 1647 | "once": "1.4.0", 1648 | "wrappy": "1.0.2" 1649 | } 1650 | }, 1651 | "inherits": { 1652 | "version": "2.0.3", 1653 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1654 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1655 | }, 1656 | "interpret": { 1657 | "version": "1.1.0", 1658 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", 1659 | "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" 1660 | }, 1661 | "invert-kv": { 1662 | "version": "1.0.0", 1663 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 1664 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" 1665 | }, 1666 | "is-arrayish": { 1667 | "version": "0.2.1", 1668 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1669 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 1670 | }, 1671 | "is-binary-path": { 1672 | "version": "1.0.1", 1673 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1674 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1675 | "requires": { 1676 | "binary-extensions": "1.11.0" 1677 | } 1678 | }, 1679 | "is-buffer": { 1680 | "version": "1.1.6", 1681 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 1682 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 1683 | }, 1684 | "is-builtin-module": { 1685 | "version": "1.0.0", 1686 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1687 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1688 | "requires": { 1689 | "builtin-modules": "1.1.1" 1690 | } 1691 | }, 1692 | "is-dotfile": { 1693 | "version": "1.0.3", 1694 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1695 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" 1696 | }, 1697 | "is-equal-shallow": { 1698 | "version": "0.1.3", 1699 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1700 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1701 | "requires": { 1702 | "is-primitive": "2.0.0" 1703 | } 1704 | }, 1705 | "is-extendable": { 1706 | "version": "0.1.1", 1707 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1708 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" 1709 | }, 1710 | "is-extglob": { 1711 | "version": "1.0.0", 1712 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1713 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" 1714 | }, 1715 | "is-fullwidth-code-point": { 1716 | "version": "1.0.0", 1717 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1718 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1719 | "requires": { 1720 | "number-is-nan": "1.0.1" 1721 | } 1722 | }, 1723 | "is-glob": { 1724 | "version": "2.0.1", 1725 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1726 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1727 | "requires": { 1728 | "is-extglob": "1.0.0" 1729 | } 1730 | }, 1731 | "is-number": { 1732 | "version": "2.1.0", 1733 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1734 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1735 | "requires": { 1736 | "kind-of": "3.2.2" 1737 | } 1738 | }, 1739 | "is-posix-bracket": { 1740 | "version": "0.1.1", 1741 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 1742 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" 1743 | }, 1744 | "is-primitive": { 1745 | "version": "2.0.0", 1746 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 1747 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" 1748 | }, 1749 | "is-stream": { 1750 | "version": "1.1.0", 1751 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1752 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 1753 | }, 1754 | "is-utf8": { 1755 | "version": "0.2.1", 1756 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 1757 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" 1758 | }, 1759 | "isarray": { 1760 | "version": "1.0.0", 1761 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1762 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1763 | }, 1764 | "isexe": { 1765 | "version": "2.0.0", 1766 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1767 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 1768 | }, 1769 | "isobject": { 1770 | "version": "2.1.0", 1771 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1772 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1773 | "requires": { 1774 | "isarray": "1.0.0" 1775 | } 1776 | }, 1777 | "json-loader": { 1778 | "version": "0.5.7", 1779 | "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", 1780 | "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" 1781 | }, 1782 | "json-schema-traverse": { 1783 | "version": "0.3.1", 1784 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1785 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" 1786 | }, 1787 | "json3": { 1788 | "version": "3.3.2", 1789 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", 1790 | "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" 1791 | }, 1792 | "json5": { 1793 | "version": "0.5.1", 1794 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1795 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" 1796 | }, 1797 | "jsonfile": { 1798 | "version": "2.4.0", 1799 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 1800 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 1801 | "requires": { 1802 | "graceful-fs": "4.1.11" 1803 | } 1804 | }, 1805 | "kind-of": { 1806 | "version": "3.2.2", 1807 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1808 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1809 | "requires": { 1810 | "is-buffer": "1.1.6" 1811 | } 1812 | }, 1813 | "klaw": { 1814 | "version": "1.3.1", 1815 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", 1816 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", 1817 | "requires": { 1818 | "graceful-fs": "4.1.11" 1819 | } 1820 | }, 1821 | "lazy-cache": { 1822 | "version": "1.0.4", 1823 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 1824 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" 1825 | }, 1826 | "lcid": { 1827 | "version": "1.0.0", 1828 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 1829 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 1830 | "requires": { 1831 | "invert-kv": "1.0.0" 1832 | } 1833 | }, 1834 | "load-json-file": { 1835 | "version": "2.0.0", 1836 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1837 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1838 | "requires": { 1839 | "graceful-fs": "4.1.11", 1840 | "parse-json": "2.2.0", 1841 | "pify": "2.3.0", 1842 | "strip-bom": "3.0.0" 1843 | } 1844 | }, 1845 | "loader-runner": { 1846 | "version": "2.3.0", 1847 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", 1848 | "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" 1849 | }, 1850 | "loader-utils": { 1851 | "version": "1.1.0", 1852 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 1853 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 1854 | "requires": { 1855 | "big.js": "3.2.0", 1856 | "emojis-list": "2.1.0", 1857 | "json5": "0.5.1" 1858 | } 1859 | }, 1860 | "locate-path": { 1861 | "version": "2.0.0", 1862 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1863 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1864 | "requires": { 1865 | "p-locate": "2.0.0", 1866 | "path-exists": "3.0.0" 1867 | } 1868 | }, 1869 | "lodash": { 1870 | "version": "4.17.5", 1871 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", 1872 | "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" 1873 | }, 1874 | "lodash._baseassign": { 1875 | "version": "3.2.0", 1876 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", 1877 | "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", 1878 | "requires": { 1879 | "lodash._basecopy": "3.0.1", 1880 | "lodash.keys": "3.1.2" 1881 | } 1882 | }, 1883 | "lodash._basecopy": { 1884 | "version": "3.0.1", 1885 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", 1886 | "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" 1887 | }, 1888 | "lodash._basecreate": { 1889 | "version": "3.0.3", 1890 | "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", 1891 | "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=" 1892 | }, 1893 | "lodash._getnative": { 1894 | "version": "3.9.1", 1895 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 1896 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" 1897 | }, 1898 | "lodash._isiterateecall": { 1899 | "version": "3.0.9", 1900 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", 1901 | "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" 1902 | }, 1903 | "lodash.assign": { 1904 | "version": "4.2.0", 1905 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", 1906 | "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" 1907 | }, 1908 | "lodash.create": { 1909 | "version": "3.1.1", 1910 | "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", 1911 | "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", 1912 | "requires": { 1913 | "lodash._baseassign": "3.2.0", 1914 | "lodash._basecreate": "3.0.3", 1915 | "lodash._isiterateecall": "3.0.9" 1916 | } 1917 | }, 1918 | "lodash.isarguments": { 1919 | "version": "3.1.0", 1920 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 1921 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" 1922 | }, 1923 | "lodash.isarray": { 1924 | "version": "3.0.4", 1925 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 1926 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" 1927 | }, 1928 | "lodash.keys": { 1929 | "version": "3.1.2", 1930 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 1931 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 1932 | "requires": { 1933 | "lodash._getnative": "3.9.1", 1934 | "lodash.isarguments": "3.1.0", 1935 | "lodash.isarray": "3.0.4" 1936 | } 1937 | }, 1938 | "longest": { 1939 | "version": "1.0.1", 1940 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 1941 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" 1942 | }, 1943 | "lru-cache": { 1944 | "version": "4.1.1", 1945 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 1946 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 1947 | "requires": { 1948 | "pseudomap": "1.0.2", 1949 | "yallist": "2.1.2" 1950 | } 1951 | }, 1952 | "md5.js": { 1953 | "version": "1.3.4", 1954 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 1955 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 1956 | "requires": { 1957 | "hash-base": "3.0.4", 1958 | "inherits": "2.0.3" 1959 | }, 1960 | "dependencies": { 1961 | "hash-base": { 1962 | "version": "3.0.4", 1963 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 1964 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 1965 | "requires": { 1966 | "inherits": "2.0.3", 1967 | "safe-buffer": "5.1.1" 1968 | } 1969 | } 1970 | } 1971 | }, 1972 | "mem": { 1973 | "version": "1.1.0", 1974 | "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", 1975 | "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", 1976 | "requires": { 1977 | "mimic-fn": "1.2.0" 1978 | } 1979 | }, 1980 | "memory-fs": { 1981 | "version": "0.4.1", 1982 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", 1983 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 1984 | "requires": { 1985 | "errno": "0.1.7", 1986 | "readable-stream": "2.3.4" 1987 | } 1988 | }, 1989 | "memorystream": { 1990 | "version": "0.3.1", 1991 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", 1992 | "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" 1993 | }, 1994 | "micromatch": { 1995 | "version": "2.3.11", 1996 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 1997 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1998 | "requires": { 1999 | "arr-diff": "2.0.0", 2000 | "array-unique": "0.2.1", 2001 | "braces": "1.8.5", 2002 | "expand-brackets": "0.1.5", 2003 | "extglob": "0.3.2", 2004 | "filename-regex": "2.0.1", 2005 | "is-extglob": "1.0.0", 2006 | "is-glob": "2.0.1", 2007 | "kind-of": "3.2.2", 2008 | "normalize-path": "2.1.1", 2009 | "object.omit": "2.0.1", 2010 | "parse-glob": "3.0.4", 2011 | "regex-cache": "0.4.4" 2012 | } 2013 | }, 2014 | "miller-rabin": { 2015 | "version": "4.0.1", 2016 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 2017 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 2018 | "requires": { 2019 | "bn.js": "4.11.8", 2020 | "brorand": "1.1.0" 2021 | } 2022 | }, 2023 | "mimic-fn": { 2024 | "version": "1.2.0", 2025 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 2026 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" 2027 | }, 2028 | "minimalistic-assert": { 2029 | "version": "1.0.0", 2030 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", 2031 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" 2032 | }, 2033 | "minimalistic-crypto-utils": { 2034 | "version": "1.0.1", 2035 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2036 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 2037 | }, 2038 | "minimatch": { 2039 | "version": "3.0.4", 2040 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2041 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2042 | "requires": { 2043 | "brace-expansion": "1.1.11" 2044 | } 2045 | }, 2046 | "minimist": { 2047 | "version": "0.0.8", 2048 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2049 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 2050 | }, 2051 | "mkdirp": { 2052 | "version": "0.5.1", 2053 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2054 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2055 | "requires": { 2056 | "minimist": "0.0.8" 2057 | } 2058 | }, 2059 | "mocha": { 2060 | "version": "3.5.3", 2061 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", 2062 | "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", 2063 | "requires": { 2064 | "browser-stdout": "1.3.0", 2065 | "commander": "2.9.0", 2066 | "debug": "2.6.8", 2067 | "diff": "3.2.0", 2068 | "escape-string-regexp": "1.0.5", 2069 | "glob": "7.1.1", 2070 | "growl": "1.9.2", 2071 | "he": "1.1.1", 2072 | "json3": "3.3.2", 2073 | "lodash.create": "3.1.1", 2074 | "mkdirp": "0.5.1", 2075 | "supports-color": "3.1.2" 2076 | }, 2077 | "dependencies": { 2078 | "has-flag": { 2079 | "version": "1.0.0", 2080 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 2081 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" 2082 | }, 2083 | "supports-color": { 2084 | "version": "3.1.2", 2085 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", 2086 | "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", 2087 | "requires": { 2088 | "has-flag": "1.0.0" 2089 | } 2090 | } 2091 | } 2092 | }, 2093 | "ms": { 2094 | "version": "2.0.0", 2095 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2096 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2097 | }, 2098 | "nan": { 2099 | "version": "2.9.2", 2100 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", 2101 | "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", 2102 | "optional": true 2103 | }, 2104 | "node-libs-browser": { 2105 | "version": "2.1.0", 2106 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", 2107 | "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", 2108 | "requires": { 2109 | "assert": "1.4.1", 2110 | "browserify-zlib": "0.2.0", 2111 | "buffer": "4.9.1", 2112 | "console-browserify": "1.1.0", 2113 | "constants-browserify": "1.0.0", 2114 | "crypto-browserify": "3.12.0", 2115 | "domain-browser": "1.2.0", 2116 | "events": "1.1.1", 2117 | "https-browserify": "1.0.0", 2118 | "os-browserify": "0.3.0", 2119 | "path-browserify": "0.0.0", 2120 | "process": "0.11.10", 2121 | "punycode": "1.4.1", 2122 | "querystring-es3": "0.2.1", 2123 | "readable-stream": "2.3.4", 2124 | "stream-browserify": "2.0.1", 2125 | "stream-http": "2.8.0", 2126 | "string_decoder": "1.0.3", 2127 | "timers-browserify": "2.0.6", 2128 | "tty-browserify": "0.0.0", 2129 | "url": "0.11.0", 2130 | "util": "0.10.3", 2131 | "vm-browserify": "0.0.4" 2132 | } 2133 | }, 2134 | "normalize-package-data": { 2135 | "version": "2.4.0", 2136 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2137 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2138 | "requires": { 2139 | "hosted-git-info": "2.5.0", 2140 | "is-builtin-module": "1.0.0", 2141 | "semver": "5.5.0", 2142 | "validate-npm-package-license": "3.0.1" 2143 | } 2144 | }, 2145 | "normalize-path": { 2146 | "version": "2.1.1", 2147 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2148 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2149 | "requires": { 2150 | "remove-trailing-separator": "1.1.0" 2151 | } 2152 | }, 2153 | "npm-run-path": { 2154 | "version": "2.0.2", 2155 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 2156 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 2157 | "requires": { 2158 | "path-key": "2.0.1" 2159 | } 2160 | }, 2161 | "number-is-nan": { 2162 | "version": "1.0.1", 2163 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2164 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 2165 | }, 2166 | "object-assign": { 2167 | "version": "4.1.1", 2168 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2169 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2170 | }, 2171 | "object.omit": { 2172 | "version": "2.0.1", 2173 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 2174 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 2175 | "requires": { 2176 | "for-own": "0.1.5", 2177 | "is-extendable": "0.1.1" 2178 | } 2179 | }, 2180 | "once": { 2181 | "version": "1.4.0", 2182 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2183 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2184 | "requires": { 2185 | "wrappy": "1.0.2" 2186 | } 2187 | }, 2188 | "original-require": { 2189 | "version": "1.0.1", 2190 | "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", 2191 | "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=" 2192 | }, 2193 | "os-browserify": { 2194 | "version": "0.3.0", 2195 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 2196 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" 2197 | }, 2198 | "os-locale": { 2199 | "version": "2.1.0", 2200 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", 2201 | "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", 2202 | "requires": { 2203 | "execa": "0.7.0", 2204 | "lcid": "1.0.0", 2205 | "mem": "1.1.0" 2206 | } 2207 | }, 2208 | "p-finally": { 2209 | "version": "1.0.0", 2210 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 2211 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 2212 | }, 2213 | "p-limit": { 2214 | "version": "1.2.0", 2215 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", 2216 | "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", 2217 | "requires": { 2218 | "p-try": "1.0.0" 2219 | } 2220 | }, 2221 | "p-locate": { 2222 | "version": "2.0.0", 2223 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 2224 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 2225 | "requires": { 2226 | "p-limit": "1.2.0" 2227 | } 2228 | }, 2229 | "p-try": { 2230 | "version": "1.0.0", 2231 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 2232 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" 2233 | }, 2234 | "pako": { 2235 | "version": "1.0.6", 2236 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", 2237 | "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" 2238 | }, 2239 | "parse-asn1": { 2240 | "version": "5.1.0", 2241 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", 2242 | "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", 2243 | "requires": { 2244 | "asn1.js": "4.10.1", 2245 | "browserify-aes": "1.1.1", 2246 | "create-hash": "1.1.3", 2247 | "evp_bytestokey": "1.0.3", 2248 | "pbkdf2": "3.0.14" 2249 | } 2250 | }, 2251 | "parse-glob": { 2252 | "version": "3.0.4", 2253 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 2254 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 2255 | "requires": { 2256 | "glob-base": "0.3.0", 2257 | "is-dotfile": "1.0.3", 2258 | "is-extglob": "1.0.0", 2259 | "is-glob": "2.0.1" 2260 | } 2261 | }, 2262 | "parse-json": { 2263 | "version": "2.2.0", 2264 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 2265 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 2266 | "requires": { 2267 | "error-ex": "1.3.1" 2268 | } 2269 | }, 2270 | "path-browserify": { 2271 | "version": "0.0.0", 2272 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 2273 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" 2274 | }, 2275 | "path-exists": { 2276 | "version": "3.0.0", 2277 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2278 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 2279 | }, 2280 | "path-is-absolute": { 2281 | "version": "1.0.1", 2282 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2283 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 2284 | }, 2285 | "path-key": { 2286 | "version": "2.0.1", 2287 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 2288 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 2289 | }, 2290 | "path-type": { 2291 | "version": "2.0.0", 2292 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 2293 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 2294 | "requires": { 2295 | "pify": "2.3.0" 2296 | } 2297 | }, 2298 | "pbkdf2": { 2299 | "version": "3.0.14", 2300 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", 2301 | "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", 2302 | "requires": { 2303 | "create-hash": "1.1.3", 2304 | "create-hmac": "1.1.6", 2305 | "ripemd160": "2.0.1", 2306 | "safe-buffer": "5.1.1", 2307 | "sha.js": "2.4.10" 2308 | } 2309 | }, 2310 | "pify": { 2311 | "version": "2.3.0", 2312 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2313 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 2314 | }, 2315 | "pinkie": { 2316 | "version": "2.0.4", 2317 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2318 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 2319 | }, 2320 | "pinkie-promise": { 2321 | "version": "2.0.1", 2322 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2323 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2324 | "requires": { 2325 | "pinkie": "2.0.4" 2326 | } 2327 | }, 2328 | "preserve": { 2329 | "version": "0.2.0", 2330 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 2331 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" 2332 | }, 2333 | "process": { 2334 | "version": "0.11.10", 2335 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2336 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 2337 | }, 2338 | "process-nextick-args": { 2339 | "version": "2.0.0", 2340 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 2341 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" 2342 | }, 2343 | "prr": { 2344 | "version": "1.0.1", 2345 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 2346 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" 2347 | }, 2348 | "pseudomap": { 2349 | "version": "1.0.2", 2350 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 2351 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 2352 | }, 2353 | "public-encrypt": { 2354 | "version": "4.0.0", 2355 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", 2356 | "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", 2357 | "requires": { 2358 | "bn.js": "4.11.8", 2359 | "browserify-rsa": "4.0.1", 2360 | "create-hash": "1.1.3", 2361 | "parse-asn1": "5.1.0", 2362 | "randombytes": "2.0.6" 2363 | } 2364 | }, 2365 | "punycode": { 2366 | "version": "1.4.1", 2367 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2368 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 2369 | }, 2370 | "querystring": { 2371 | "version": "0.2.0", 2372 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 2373 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" 2374 | }, 2375 | "querystring-es3": { 2376 | "version": "0.2.1", 2377 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 2378 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" 2379 | }, 2380 | "randomatic": { 2381 | "version": "1.1.7", 2382 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 2383 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 2384 | "requires": { 2385 | "is-number": "3.0.0", 2386 | "kind-of": "4.0.0" 2387 | }, 2388 | "dependencies": { 2389 | "is-number": { 2390 | "version": "3.0.0", 2391 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2392 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2393 | "requires": { 2394 | "kind-of": "3.2.2" 2395 | }, 2396 | "dependencies": { 2397 | "kind-of": { 2398 | "version": "3.2.2", 2399 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2400 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2401 | "requires": { 2402 | "is-buffer": "1.1.6" 2403 | } 2404 | } 2405 | } 2406 | }, 2407 | "kind-of": { 2408 | "version": "4.0.0", 2409 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2410 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2411 | "requires": { 2412 | "is-buffer": "1.1.6" 2413 | } 2414 | } 2415 | } 2416 | }, 2417 | "randombytes": { 2418 | "version": "2.0.6", 2419 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 2420 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 2421 | "requires": { 2422 | "safe-buffer": "5.1.1" 2423 | } 2424 | }, 2425 | "randomfill": { 2426 | "version": "1.0.4", 2427 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 2428 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 2429 | "requires": { 2430 | "randombytes": "2.0.6", 2431 | "safe-buffer": "5.1.1" 2432 | } 2433 | }, 2434 | "read-pkg": { 2435 | "version": "2.0.0", 2436 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 2437 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 2438 | "requires": { 2439 | "load-json-file": "2.0.0", 2440 | "normalize-package-data": "2.4.0", 2441 | "path-type": "2.0.0" 2442 | } 2443 | }, 2444 | "read-pkg-up": { 2445 | "version": "2.0.0", 2446 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 2447 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 2448 | "requires": { 2449 | "find-up": "2.1.0", 2450 | "read-pkg": "2.0.0" 2451 | } 2452 | }, 2453 | "readable-stream": { 2454 | "version": "2.3.4", 2455 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", 2456 | "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", 2457 | "requires": { 2458 | "core-util-is": "1.0.2", 2459 | "inherits": "2.0.3", 2460 | "isarray": "1.0.0", 2461 | "process-nextick-args": "2.0.0", 2462 | "safe-buffer": "5.1.1", 2463 | "string_decoder": "1.0.3", 2464 | "util-deprecate": "1.0.2" 2465 | } 2466 | }, 2467 | "readdirp": { 2468 | "version": "2.1.0", 2469 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 2470 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 2471 | "requires": { 2472 | "graceful-fs": "4.1.11", 2473 | "minimatch": "3.0.4", 2474 | "readable-stream": "2.3.4", 2475 | "set-immediate-shim": "1.0.1" 2476 | } 2477 | }, 2478 | "regex-cache": { 2479 | "version": "0.4.4", 2480 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 2481 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 2482 | "requires": { 2483 | "is-equal-shallow": "0.1.3" 2484 | } 2485 | }, 2486 | "remove-trailing-separator": { 2487 | "version": "1.1.0", 2488 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 2489 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" 2490 | }, 2491 | "repeat-element": { 2492 | "version": "1.1.2", 2493 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 2494 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" 2495 | }, 2496 | "repeat-string": { 2497 | "version": "1.6.1", 2498 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2499 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" 2500 | }, 2501 | "require-directory": { 2502 | "version": "2.1.1", 2503 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2504 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 2505 | }, 2506 | "require-from-string": { 2507 | "version": "1.2.1", 2508 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", 2509 | "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" 2510 | }, 2511 | "require-main-filename": { 2512 | "version": "1.0.1", 2513 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 2514 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" 2515 | }, 2516 | "right-align": { 2517 | "version": "0.1.3", 2518 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 2519 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 2520 | "requires": { 2521 | "align-text": "0.1.4" 2522 | } 2523 | }, 2524 | "rimraf": { 2525 | "version": "2.6.2", 2526 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 2527 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2528 | "requires": { 2529 | "glob": "7.1.1" 2530 | } 2531 | }, 2532 | "ripemd160": { 2533 | "version": "2.0.1", 2534 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", 2535 | "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", 2536 | "requires": { 2537 | "hash-base": "2.0.2", 2538 | "inherits": "2.0.3" 2539 | } 2540 | }, 2541 | "safe-buffer": { 2542 | "version": "5.1.1", 2543 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2544 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 2545 | }, 2546 | "semver": { 2547 | "version": "5.5.0", 2548 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 2549 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" 2550 | }, 2551 | "set-blocking": { 2552 | "version": "2.0.0", 2553 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2554 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 2555 | }, 2556 | "set-immediate-shim": { 2557 | "version": "1.0.1", 2558 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 2559 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" 2560 | }, 2561 | "setimmediate": { 2562 | "version": "1.0.5", 2563 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 2564 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 2565 | }, 2566 | "sha.js": { 2567 | "version": "2.4.10", 2568 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", 2569 | "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", 2570 | "requires": { 2571 | "inherits": "2.0.3", 2572 | "safe-buffer": "5.1.1" 2573 | } 2574 | }, 2575 | "shebang-command": { 2576 | "version": "1.2.0", 2577 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 2578 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 2579 | "requires": { 2580 | "shebang-regex": "1.0.0" 2581 | } 2582 | }, 2583 | "shebang-regex": { 2584 | "version": "1.0.0", 2585 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 2586 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 2587 | }, 2588 | "signal-exit": { 2589 | "version": "3.0.2", 2590 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2591 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 2592 | }, 2593 | "solc": { 2594 | "version": "0.4.19", 2595 | "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.19.tgz", 2596 | "integrity": "sha512-hvi/vi9rQcB73poRLoLRfQIYKwmdhrNbZlOOFCGd5v58gEsYEUr3+oHPSXhyk4CFNchWC2ojpMYrHDJNm0h4jQ==", 2597 | "requires": { 2598 | "fs-extra": "0.30.0", 2599 | "memorystream": "0.3.1", 2600 | "require-from-string": "1.2.1", 2601 | "semver": "5.5.0", 2602 | "yargs": "4.8.1" 2603 | }, 2604 | "dependencies": { 2605 | "camelcase": { 2606 | "version": "3.0.0", 2607 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 2608 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" 2609 | }, 2610 | "cliui": { 2611 | "version": "3.2.0", 2612 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 2613 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 2614 | "requires": { 2615 | "string-width": "1.0.2", 2616 | "strip-ansi": "3.0.1", 2617 | "wrap-ansi": "2.1.0" 2618 | } 2619 | }, 2620 | "find-up": { 2621 | "version": "1.1.2", 2622 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 2623 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 2624 | "requires": { 2625 | "path-exists": "2.1.0", 2626 | "pinkie-promise": "2.0.1" 2627 | } 2628 | }, 2629 | "load-json-file": { 2630 | "version": "1.1.0", 2631 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2632 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2633 | "requires": { 2634 | "graceful-fs": "4.1.11", 2635 | "parse-json": "2.2.0", 2636 | "pify": "2.3.0", 2637 | "pinkie-promise": "2.0.1", 2638 | "strip-bom": "2.0.0" 2639 | } 2640 | }, 2641 | "os-locale": { 2642 | "version": "1.4.0", 2643 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 2644 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 2645 | "requires": { 2646 | "lcid": "1.0.0" 2647 | } 2648 | }, 2649 | "path-exists": { 2650 | "version": "2.1.0", 2651 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2652 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2653 | "requires": { 2654 | "pinkie-promise": "2.0.1" 2655 | } 2656 | }, 2657 | "path-type": { 2658 | "version": "1.1.0", 2659 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 2660 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 2661 | "requires": { 2662 | "graceful-fs": "4.1.11", 2663 | "pify": "2.3.0", 2664 | "pinkie-promise": "2.0.1" 2665 | } 2666 | }, 2667 | "read-pkg": { 2668 | "version": "1.1.0", 2669 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 2670 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 2671 | "requires": { 2672 | "load-json-file": "1.1.0", 2673 | "normalize-package-data": "2.4.0", 2674 | "path-type": "1.1.0" 2675 | } 2676 | }, 2677 | "read-pkg-up": { 2678 | "version": "1.0.1", 2679 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 2680 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 2681 | "requires": { 2682 | "find-up": "1.1.2", 2683 | "read-pkg": "1.1.0" 2684 | } 2685 | }, 2686 | "string-width": { 2687 | "version": "1.0.2", 2688 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2689 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2690 | "requires": { 2691 | "code-point-at": "1.1.0", 2692 | "is-fullwidth-code-point": "1.0.0", 2693 | "strip-ansi": "3.0.1" 2694 | } 2695 | }, 2696 | "strip-bom": { 2697 | "version": "2.0.0", 2698 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 2699 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2700 | "requires": { 2701 | "is-utf8": "0.2.1" 2702 | } 2703 | }, 2704 | "which-module": { 2705 | "version": "1.0.0", 2706 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 2707 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" 2708 | }, 2709 | "window-size": { 2710 | "version": "0.2.0", 2711 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", 2712 | "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" 2713 | }, 2714 | "yargs": { 2715 | "version": "4.8.1", 2716 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", 2717 | "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", 2718 | "requires": { 2719 | "cliui": "3.2.0", 2720 | "decamelize": "1.2.0", 2721 | "get-caller-file": "1.0.2", 2722 | "lodash.assign": "4.2.0", 2723 | "os-locale": "1.4.0", 2724 | "read-pkg-up": "1.0.1", 2725 | "require-directory": "2.1.1", 2726 | "require-main-filename": "1.0.1", 2727 | "set-blocking": "2.0.0", 2728 | "string-width": "1.0.2", 2729 | "which-module": "1.0.0", 2730 | "window-size": "0.2.0", 2731 | "y18n": "3.2.1", 2732 | "yargs-parser": "2.4.1" 2733 | } 2734 | }, 2735 | "yargs-parser": { 2736 | "version": "2.4.1", 2737 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", 2738 | "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", 2739 | "requires": { 2740 | "camelcase": "3.0.0", 2741 | "lodash.assign": "4.2.0" 2742 | } 2743 | } 2744 | } 2745 | }, 2746 | "source-list-map": { 2747 | "version": "2.0.0", 2748 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", 2749 | "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" 2750 | }, 2751 | "source-map": { 2752 | "version": "0.5.7", 2753 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2754 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 2755 | }, 2756 | "spdx-correct": { 2757 | "version": "1.0.2", 2758 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 2759 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 2760 | "requires": { 2761 | "spdx-license-ids": "1.2.2" 2762 | } 2763 | }, 2764 | "spdx-expression-parse": { 2765 | "version": "1.0.4", 2766 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 2767 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" 2768 | }, 2769 | "spdx-license-ids": { 2770 | "version": "1.2.2", 2771 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 2772 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" 2773 | }, 2774 | "stream-browserify": { 2775 | "version": "2.0.1", 2776 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 2777 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 2778 | "requires": { 2779 | "inherits": "2.0.3", 2780 | "readable-stream": "2.3.4" 2781 | } 2782 | }, 2783 | "stream-http": { 2784 | "version": "2.8.0", 2785 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", 2786 | "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", 2787 | "requires": { 2788 | "builtin-status-codes": "3.0.0", 2789 | "inherits": "2.0.3", 2790 | "readable-stream": "2.3.4", 2791 | "to-arraybuffer": "1.0.1", 2792 | "xtend": "4.0.1" 2793 | } 2794 | }, 2795 | "string-width": { 2796 | "version": "2.1.1", 2797 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2798 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2799 | "requires": { 2800 | "is-fullwidth-code-point": "2.0.0", 2801 | "strip-ansi": "4.0.0" 2802 | }, 2803 | "dependencies": { 2804 | "ansi-regex": { 2805 | "version": "3.0.0", 2806 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2807 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" 2808 | }, 2809 | "is-fullwidth-code-point": { 2810 | "version": "2.0.0", 2811 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2812 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 2813 | }, 2814 | "strip-ansi": { 2815 | "version": "4.0.0", 2816 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2817 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2818 | "requires": { 2819 | "ansi-regex": "3.0.0" 2820 | } 2821 | } 2822 | } 2823 | }, 2824 | "string_decoder": { 2825 | "version": "1.0.3", 2826 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2827 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2828 | "requires": { 2829 | "safe-buffer": "5.1.1" 2830 | } 2831 | }, 2832 | "strip-ansi": { 2833 | "version": "3.0.1", 2834 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2835 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2836 | "requires": { 2837 | "ansi-regex": "2.1.1" 2838 | } 2839 | }, 2840 | "strip-bom": { 2841 | "version": "3.0.0", 2842 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2843 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" 2844 | }, 2845 | "strip-eof": { 2846 | "version": "1.0.0", 2847 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 2848 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 2849 | }, 2850 | "supports-color": { 2851 | "version": "4.5.0", 2852 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 2853 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 2854 | "requires": { 2855 | "has-flag": "2.0.0" 2856 | } 2857 | }, 2858 | "tapable": { 2859 | "version": "0.2.8", 2860 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", 2861 | "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" 2862 | }, 2863 | "timers-browserify": { 2864 | "version": "2.0.6", 2865 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", 2866 | "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", 2867 | "requires": { 2868 | "setimmediate": "1.0.5" 2869 | } 2870 | }, 2871 | "to-arraybuffer": { 2872 | "version": "1.0.1", 2873 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 2874 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" 2875 | }, 2876 | "truffle": { 2877 | "version": "4.0.6", 2878 | "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.0.6.tgz", 2879 | "integrity": "sha512-E4u1dZr2IGY4liulO/nGMtavx4jVLXIJp48lxFq54N+gMRGhmBQp5kf1etA3bYhHVtO9IO76qRiHMMVuId7cRg==", 2880 | "requires": { 2881 | "mocha": "3.5.3", 2882 | "original-require": "1.0.1", 2883 | "solc": "0.4.19" 2884 | } 2885 | }, 2886 | "tty-browserify": { 2887 | "version": "0.0.0", 2888 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 2889 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" 2890 | }, 2891 | "uglify-js": { 2892 | "version": "2.8.29", 2893 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 2894 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 2895 | "requires": { 2896 | "source-map": "0.5.7", 2897 | "uglify-to-browserify": "1.0.2", 2898 | "yargs": "3.10.0" 2899 | }, 2900 | "dependencies": { 2901 | "yargs": { 2902 | "version": "3.10.0", 2903 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 2904 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 2905 | "requires": { 2906 | "camelcase": "1.2.1", 2907 | "cliui": "2.1.0", 2908 | "decamelize": "1.2.0", 2909 | "window-size": "0.1.0" 2910 | } 2911 | } 2912 | } 2913 | }, 2914 | "uglify-to-browserify": { 2915 | "version": "1.0.2", 2916 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 2917 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 2918 | "optional": true 2919 | }, 2920 | "uglifyjs-webpack-plugin": { 2921 | "version": "0.4.6", 2922 | "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", 2923 | "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", 2924 | "requires": { 2925 | "source-map": "0.5.7", 2926 | "uglify-js": "2.8.29", 2927 | "webpack-sources": "1.1.0" 2928 | } 2929 | }, 2930 | "url": { 2931 | "version": "0.11.0", 2932 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 2933 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 2934 | "requires": { 2935 | "punycode": "1.3.2", 2936 | "querystring": "0.2.0" 2937 | }, 2938 | "dependencies": { 2939 | "punycode": { 2940 | "version": "1.3.2", 2941 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 2942 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" 2943 | } 2944 | } 2945 | }, 2946 | "utf8": { 2947 | "version": "2.1.2", 2948 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", 2949 | "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=" 2950 | }, 2951 | "util": { 2952 | "version": "0.10.3", 2953 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 2954 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 2955 | "requires": { 2956 | "inherits": "2.0.1" 2957 | }, 2958 | "dependencies": { 2959 | "inherits": { 2960 | "version": "2.0.1", 2961 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 2962 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" 2963 | } 2964 | } 2965 | }, 2966 | "util-deprecate": { 2967 | "version": "1.0.2", 2968 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2969 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2970 | }, 2971 | "validate-npm-package-license": { 2972 | "version": "3.0.1", 2973 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 2974 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 2975 | "requires": { 2976 | "spdx-correct": "1.0.2", 2977 | "spdx-expression-parse": "1.0.4" 2978 | } 2979 | }, 2980 | "vm-browserify": { 2981 | "version": "0.0.4", 2982 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 2983 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 2984 | "requires": { 2985 | "indexof": "0.0.1" 2986 | } 2987 | }, 2988 | "watchpack": { 2989 | "version": "1.4.0", 2990 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", 2991 | "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", 2992 | "requires": { 2993 | "async": "2.6.0", 2994 | "chokidar": "1.7.0", 2995 | "graceful-fs": "4.1.11" 2996 | } 2997 | }, 2998 | "web3": { 2999 | "version": "0.20.4", 3000 | "resolved": "https://registry.npmjs.org/web3/-/web3-0.20.4.tgz", 3001 | "integrity": "sha1-QA5leaZbtKPd5xpuv2UJr63DOgQ=", 3002 | "requires": { 3003 | "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", 3004 | "crypto-js": "3.1.8", 3005 | "utf8": "2.1.2", 3006 | "xhr2": "0.1.4", 3007 | "xmlhttprequest": "1.8.0" 3008 | } 3009 | }, 3010 | "webpack": { 3011 | "version": "3.11.0", 3012 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", 3013 | "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", 3014 | "requires": { 3015 | "acorn": "5.4.1", 3016 | "acorn-dynamic-import": "2.0.2", 3017 | "ajv": "6.1.1", 3018 | "ajv-keywords": "3.1.0", 3019 | "async": "2.6.0", 3020 | "enhanced-resolve": "3.4.1", 3021 | "escope": "3.6.0", 3022 | "interpret": "1.1.0", 3023 | "json-loader": "0.5.7", 3024 | "json5": "0.5.1", 3025 | "loader-runner": "2.3.0", 3026 | "loader-utils": "1.1.0", 3027 | "memory-fs": "0.4.1", 3028 | "mkdirp": "0.5.1", 3029 | "node-libs-browser": "2.1.0", 3030 | "source-map": "0.5.7", 3031 | "supports-color": "4.5.0", 3032 | "tapable": "0.2.8", 3033 | "uglifyjs-webpack-plugin": "0.4.6", 3034 | "watchpack": "1.4.0", 3035 | "webpack-sources": "1.1.0", 3036 | "yargs": "8.0.2" 3037 | } 3038 | }, 3039 | "webpack-sources": { 3040 | "version": "1.1.0", 3041 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", 3042 | "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", 3043 | "requires": { 3044 | "source-list-map": "2.0.0", 3045 | "source-map": "0.6.1" 3046 | }, 3047 | "dependencies": { 3048 | "source-map": { 3049 | "version": "0.6.1", 3050 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3051 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 3052 | } 3053 | } 3054 | }, 3055 | "which": { 3056 | "version": "1.3.0", 3057 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 3058 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 3059 | "requires": { 3060 | "isexe": "2.0.0" 3061 | } 3062 | }, 3063 | "which-module": { 3064 | "version": "2.0.0", 3065 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 3066 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 3067 | }, 3068 | "window-size": { 3069 | "version": "0.1.0", 3070 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 3071 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" 3072 | }, 3073 | "wordwrap": { 3074 | "version": "0.0.2", 3075 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 3076 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" 3077 | }, 3078 | "wrap-ansi": { 3079 | "version": "2.1.0", 3080 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 3081 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 3082 | "requires": { 3083 | "string-width": "1.0.2", 3084 | "strip-ansi": "3.0.1" 3085 | }, 3086 | "dependencies": { 3087 | "string-width": { 3088 | "version": "1.0.2", 3089 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3090 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3091 | "requires": { 3092 | "code-point-at": "1.1.0", 3093 | "is-fullwidth-code-point": "1.0.0", 3094 | "strip-ansi": "3.0.1" 3095 | } 3096 | } 3097 | } 3098 | }, 3099 | "wrappy": { 3100 | "version": "1.0.2", 3101 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3102 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 3103 | }, 3104 | "xhr2": { 3105 | "version": "0.1.4", 3106 | "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", 3107 | "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" 3108 | }, 3109 | "xmlhttprequest": { 3110 | "version": "1.8.0", 3111 | "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", 3112 | "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" 3113 | }, 3114 | "xtend": { 3115 | "version": "4.0.1", 3116 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 3117 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 3118 | }, 3119 | "y18n": { 3120 | "version": "3.2.1", 3121 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 3122 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" 3123 | }, 3124 | "yallist": { 3125 | "version": "2.1.2", 3126 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 3127 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 3128 | }, 3129 | "yargs": { 3130 | "version": "8.0.2", 3131 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", 3132 | "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", 3133 | "requires": { 3134 | "camelcase": "4.1.0", 3135 | "cliui": "3.2.0", 3136 | "decamelize": "1.2.0", 3137 | "get-caller-file": "1.0.2", 3138 | "os-locale": "2.1.0", 3139 | "read-pkg-up": "2.0.0", 3140 | "require-directory": "2.1.1", 3141 | "require-main-filename": "1.0.1", 3142 | "set-blocking": "2.0.0", 3143 | "string-width": "2.1.1", 3144 | "which-module": "2.0.0", 3145 | "y18n": "3.2.1", 3146 | "yargs-parser": "7.0.0" 3147 | }, 3148 | "dependencies": { 3149 | "camelcase": { 3150 | "version": "4.1.0", 3151 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 3152 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" 3153 | }, 3154 | "cliui": { 3155 | "version": "3.2.0", 3156 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 3157 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 3158 | "requires": { 3159 | "string-width": "1.0.2", 3160 | "strip-ansi": "3.0.1", 3161 | "wrap-ansi": "2.1.0" 3162 | }, 3163 | "dependencies": { 3164 | "string-width": { 3165 | "version": "1.0.2", 3166 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3167 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3168 | "requires": { 3169 | "code-point-at": "1.1.0", 3170 | "is-fullwidth-code-point": "1.0.0", 3171 | "strip-ansi": "3.0.1" 3172 | } 3173 | } 3174 | } 3175 | } 3176 | } 3177 | }, 3178 | "yargs-parser": { 3179 | "version": "7.0.0", 3180 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", 3181 | "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", 3182 | "requires": { 3183 | "camelcase": "4.1.0" 3184 | }, 3185 | "dependencies": { 3186 | "camelcase": { 3187 | "version": "4.1.0", 3188 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 3189 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" 3190 | } 3191 | } 3192 | } 3193 | } 3194 | } 3195 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web3_demo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "ganache-cli": "^6.0.3", 13 | "truffle": "^4.0.6", 14 | "web3": "^0.20.4" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /truffle/contracts/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.17; 2 | 3 | contract Migrations { 4 | address public owner; 5 | uint public last_completed_migration; 6 | 7 | modifier restricted() { 8 | if (msg.sender == owner) _; 9 | } 10 | 11 | function Migrations() public { 12 | owner = msg.sender; 13 | } 14 | 15 | function setCompleted(uint completed) public restricted { 16 | last_completed_migration = completed; 17 | } 18 | 19 | function upgrade(address new_address) public restricted { 20 | Migrations upgraded = Migrations(new_address); 21 | upgraded.setCompleted(last_completed_migration); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /truffle/migrations/1_initial_migration.js: -------------------------------------------------------------------------------- 1 | var Migrations = artifacts.require("./Migrations.sol"); 2 | 3 | module.exports = function(deployer) { 4 | deployer.deploy(Migrations); 5 | }; 6 | -------------------------------------------------------------------------------- /truffle/truffle-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // See 3 | // to customize your Truffle configuration! 4 | }; 5 | -------------------------------------------------------------------------------- /truffle/truffle.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // See 3 | // to customize your Truffle configuration! 4 | }; 5 | --------------------------------------------------------------------------------