mirror of https://github.com/embarklabs/embark.git
Moved proxy to core libraries, and logging on console methods invoked
This commit is contained in:
parent
b4934c7b16
commit
586e7c7bbc
|
@ -76,13 +76,17 @@ var Blockchain = function(options) {
|
|||
|
||||
Blockchain.prototype.setupProxy = function(){
|
||||
if(this.blockchainConfig.proxy){
|
||||
const proxy = require('../proxy');
|
||||
proxy.serve(this.config.rpcHost, this.config.rpcPort, false);
|
||||
proxy.serve(this.config.wsHost, this.config.wsPort, true);
|
||||
const proxy = require('../../core/proxy');
|
||||
const Ipc = require('../../core/ipc');
|
||||
|
||||
let ipcObject = new Ipc({ipcRole: 'client'});
|
||||
|
||||
proxy.serve(ipcObject, this.config.rpcHost, this.config.rpcPort, false);
|
||||
// proxy.serve(ipcObject, this.config.wsHost, this.config.wsPort, true);
|
||||
this.config.rpcPort += 10;
|
||||
this.config.wsPort += 10;
|
||||
}
|
||||
//this.config.wsPort += 10;
|
||||
}
|
||||
};
|
||||
|
||||
Blockchain.prototype.runCommand = function(cmd, options, callback) {
|
||||
console.log(__("running: %s", cmd.underline).green);
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
const httpProxy = require('http-proxy');
|
||||
const http = require('http');
|
||||
|
||||
exports.serve = function(host, port, ws){
|
||||
let commList = {};
|
||||
|
||||
let proxy = httpProxy.createProxyServer({});
|
||||
let server = http.createServer((req, res) => {
|
||||
|
||||
let reqBody = [];
|
||||
req.on('data', (b) => { reqBody.push(b); })
|
||||
.on('end', () => {
|
||||
reqBody = Buffer.concat(reqBody).toString();
|
||||
if(reqBody){
|
||||
let jsonO = JSON.parse(reqBody);
|
||||
if(jsonO.method == "eth_sendTransaction"){
|
||||
commList[jsonO.id] = {
|
||||
address: jsonO.params[0].to,
|
||||
requestData: jsonO.params[0].data
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
proxy.proxyRequest(req, res, {
|
||||
target: {
|
||||
host: host,
|
||||
port: port + 10,
|
||||
ws: ws
|
||||
}
|
||||
});
|
||||
|
||||
proxy.on('proxyRes', (proxyRes, req, res) => {
|
||||
let resBody = [];
|
||||
proxyRes.on('data', (b) => resBody.push(b))
|
||||
proxyRes.on('end', function () {
|
||||
resBody = Buffer.concat(resBody).toString();
|
||||
try {
|
||||
let jsonO = JSON.parse(resBody);
|
||||
if(commList[jsonO.id]){
|
||||
commList[jsonO.id].transactionHash = jsonO.result;
|
||||
// TODO: decode commlist
|
||||
// TODO: send messages to console
|
||||
// ” SimpleStorage> set(5) | tx: 0xef234f16etc ”
|
||||
delete commList[jsonO.id];
|
||||
}
|
||||
} catch(e){
|
||||
//
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
server.listen(port);
|
||||
};
|
|
@ -1,5 +1,7 @@
|
|||
let shelljs = require('shelljs');
|
||||
let proxy = require('./proxy');
|
||||
let proxy = require('../core/proxy');
|
||||
const Ipc = require('../core/ipc');
|
||||
|
||||
class Simulator {
|
||||
constructor(options) {
|
||||
this.blockchainConfig = options.blockchainConfig;
|
||||
|
@ -43,7 +45,8 @@ class Simulator {
|
|||
shelljs.exec(`${program} ${cmds.join(' ')}`, {async : true});
|
||||
|
||||
if(useProxy){
|
||||
proxy.serve(host, port);
|
||||
let ipcObject = new Ipc({ipcRole: 'client'});
|
||||
proxy.serve(ipcObject, host, port, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -184,6 +184,11 @@ class Engine {
|
|||
});
|
||||
|
||||
this.ipc = new IPC({logger: this.logger, ipcRole: options.ipcRole});
|
||||
if (this.ipc.isServer()) {
|
||||
this.ipc.serve();
|
||||
}
|
||||
|
||||
|
||||
this.registerModule('solidity', {ipc: this.ipc});
|
||||
this.registerModule('vyper');
|
||||
this.registerModule('profiler');
|
||||
|
@ -219,6 +224,40 @@ class Engine {
|
|||
plugins: this.plugins
|
||||
});
|
||||
|
||||
// Console logger
|
||||
// TODO: extract to its own file
|
||||
let addressToContract = {};
|
||||
this.ipc.on('log', (jsonObj) => {
|
||||
if(jsonObj.type == 'contract-log'){
|
||||
if(!addressToContract[jsonObj.address]){
|
||||
let contractList = Object.keys(this.config.contractsConfig.contracts);
|
||||
for(let i = 0; i < contractList.length; i++){
|
||||
let cont = this.config.contractsConfig.contracts[contractList[i]];
|
||||
if(!addressToContract[cont.deployedAddress.toLowerCase()]){
|
||||
let funcSignatures = {};
|
||||
cont.abiDefinition
|
||||
.filter(func => func.type == "function")
|
||||
.map(func => func.name + '(' +
|
||||
(func.inputs ? func.inputs.map(input => input.type).join(',') : '') +
|
||||
')')
|
||||
.forEach(func => {
|
||||
funcSignatures[utils.sha3(func).substring(0, 10)] = func;
|
||||
});
|
||||
|
||||
addressToContract[cont.deployedAddress.toLowerCase()] = {
|
||||
name: contractList[i],
|
||||
functions: funcSignatures
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
let funcHash = addressToContract[jsonObj.address].functions[jsonObj.data.substring(0, 10)];
|
||||
this.logger.debug(addressToContract[jsonObj.address].name + "." + funcHash + " : " + jsonObj.transactionHash);
|
||||
} else {
|
||||
this.logger.info(jsonObj);
|
||||
}
|
||||
});
|
||||
|
||||
this.events.on('file-event', function (fileType) {
|
||||
clearTimeout(self.fileTimeout);
|
||||
self.fileTimeout = setTimeout(() => {
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
const httpProxy = require('http-proxy');
|
||||
const http = require('http');
|
||||
|
||||
exports.serve = function(ipc, host, port, ws){
|
||||
let commList = {};
|
||||
|
||||
let proxy = httpProxy.createProxyServer({
|
||||
target: {
|
||||
host: host,
|
||||
port: port + 10,
|
||||
ws: ws
|
||||
}
|
||||
});
|
||||
|
||||
proxy.on('proxyRes', (proxyRes) => {
|
||||
let resBody = [];
|
||||
proxyRes.on('data', (b) => resBody.push(b));
|
||||
proxyRes.on('end', function () {
|
||||
resBody = Buffer.concat(resBody).toString();
|
||||
try {
|
||||
let jsonO = JSON.parse(resBody);
|
||||
if(commList[jsonO.id]){
|
||||
commList[jsonO.id].transactionHash = jsonO.result;
|
||||
if(ipc.connected && !ipc.connecting){
|
||||
ipc.request('log', commList[jsonO.id]);
|
||||
} else {
|
||||
ipc.connecting = true;
|
||||
ipc.connect((err) => {
|
||||
ipc.connecting = false;
|
||||
});
|
||||
}
|
||||
delete commList[jsonO.id];
|
||||
}
|
||||
} catch(e){
|
||||
//
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let server = http.createServer((req, res) => {
|
||||
let reqBody = [];
|
||||
req.on('data', (b) => { reqBody.push(b); })
|
||||
.on('end', () => {
|
||||
reqBody = Buffer.concat(reqBody).toString();
|
||||
if(reqBody){
|
||||
let jsonO = JSON.parse(reqBody);
|
||||
if(jsonO.method == "eth_sendTransaction"){
|
||||
commList[jsonO.id] = {
|
||||
type: 'contract-log',
|
||||
address: jsonO.params[0].to,
|
||||
data: jsonO.params[0].data
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(ws){
|
||||
proxy.ws(req, res);
|
||||
} else {
|
||||
proxy.web(req, res);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
server.listen(port);
|
||||
};
|
|
@ -47,7 +47,6 @@ class SolcW {
|
|||
});
|
||||
|
||||
if (this.ipc.isServer()) {
|
||||
this.ipc.serve();
|
||||
this.ipc.on('compile', self.compile.bind(this));
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.2.tgz",
|
||||
"integrity": "sha512-Q3FWsbdmkQd1ib11A4XNWQvRD//5KpPoGawA8aB2DR7pWKoW9XQv3+dGxD/Z1eVFze23Okdo27ZQytVFlweKvQ==",
|
||||
"requires": {
|
||||
"@types/node": "10.1.4"
|
||||
"@types/node": "10.3.1"
|
||||
}
|
||||
},
|
||||
"@types/lockfile": {
|
||||
|
@ -59,16 +59,16 @@
|
|||
"integrity": "sha512-pD6JuijPmrfi84qF3/TzGQ7zi0QIX+d7ZdetD6jUA6cp+IsCzAquXZfi5viesew+pfpOTIdAVKuh1SHA7KeKzg=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "10.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.4.tgz",
|
||||
"integrity": "sha512-GpQxofkdlHYxjHad98UUdNoMO7JrmzQZoAaghtNg14Gwg7YkohcrCoJEcEMSgllx4VIZ+mYw7ZHjfaeIagP/rg=="
|
||||
"version": "10.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.1.tgz",
|
||||
"integrity": "sha512-IsX9aDHDzJohkm3VCDB8tkzl5RQ34E/PFA29TQk6uDGb7Oc869ZBtmdKVDBzY3+h9GnXB8ssrRXEPVZrlIOPOw=="
|
||||
},
|
||||
"@types/node-fetch": {
|
||||
"version": "1.6.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-1.6.9.tgz",
|
||||
"integrity": "sha512-n2r6WLoY7+uuPT7pnEtKJCmPUGyJ+cbyBR8Avnu4+m1nzz7DwBVuyIvvlBzCZ/nrpC7rIgb3D6pNavL7rFEa9g==",
|
||||
"requires": {
|
||||
"@types/node": "10.1.4"
|
||||
"@types/node": "10.3.1"
|
||||
}
|
||||
},
|
||||
"@types/semver": {
|
||||
|
@ -81,7 +81,7 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.0.tgz",
|
||||
"integrity": "sha512-YybbEHNngcHlIWVCYsoj7Oo1JU9JqONuAlt1LlTH/lmL8BMhbzdFUgReY87a05rY1j8mfK47Del+TCkaLAXwLw==",
|
||||
"requires": {
|
||||
"@types/node": "10.1.4"
|
||||
"@types/node": "10.3.1"
|
||||
}
|
||||
},
|
||||
"@types/url-join": {
|
||||
|
@ -1913,6 +1913,11 @@
|
|||
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
|
||||
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
|
||||
},
|
||||
"bufferhelper": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/bufferhelper/-/bufferhelper-0.2.0.tgz",
|
||||
"integrity": "sha1-7C842SU4dpzqKQFIeTXp4h2Bc7M="
|
||||
},
|
||||
"builtin-modules": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
||||
|
@ -2842,6 +2847,11 @@
|
|||
"source-map": "0.5.7"
|
||||
}
|
||||
},
|
||||
"ctype": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
|
||||
"integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8="
|
||||
},
|
||||
"currently-unhandled": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
|
||||
|
@ -3219,6 +3229,11 @@
|
|||
"typechecker": "2.1.0"
|
||||
}
|
||||
},
|
||||
"easy-stack": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz",
|
||||
"integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g="
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
|
||||
|
@ -4102,6 +4117,11 @@
|
|||
"es5-ext": "0.10.42"
|
||||
}
|
||||
},
|
||||
"event-pubsub": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz",
|
||||
"integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ=="
|
||||
},
|
||||
"eventemitter2": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
|
||||
|
@ -5735,6 +5755,23 @@
|
|||
"resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
|
||||
"integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs="
|
||||
},
|
||||
"http-proxy": {
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
|
||||
"integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
|
||||
"requires": {
|
||||
"eventemitter3": "3.1.0",
|
||||
"follow-redirects": "1.4.1",
|
||||
"requires-port": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"eventemitter3": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
|
||||
"integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"http-shutdown": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.0.tgz",
|
||||
|
@ -6500,6 +6537,19 @@
|
|||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz",
|
||||
"integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw=="
|
||||
},
|
||||
"js-message": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz",
|
||||
"integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU="
|
||||
},
|
||||
"js-queue": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz",
|
||||
"integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=",
|
||||
"requires": {
|
||||
"easy-stack": "1.0.0"
|
||||
}
|
||||
},
|
||||
"js-sha3": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.7.0.tgz",
|
||||
|
@ -8332,6 +8382,224 @@
|
|||
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz",
|
||||
"integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA=="
|
||||
},
|
||||
"node-http-proxy": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/node-http-proxy/-/node-http-proxy-0.2.3.tgz",
|
||||
"integrity": "sha1-ZFv8yESYGkEnBz//Php2ff50NLc=",
|
||||
"requires": {
|
||||
"bufferhelper": "0.2.0",
|
||||
"commander": "2.6.0",
|
||||
"pm": "2.2.5",
|
||||
"request": "2.51.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"asn1": {
|
||||
"version": "0.1.11",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
|
||||
"integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc="
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
|
||||
"integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
|
||||
},
|
||||
"async": {
|
||||
"version": "0.9.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
|
||||
"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
|
||||
"integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM="
|
||||
},
|
||||
"bl": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
|
||||
"integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
|
||||
"requires": {
|
||||
"readable-stream": "1.0.34"
|
||||
}
|
||||
},
|
||||
"boom": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
|
||||
"integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
|
||||
"requires": {
|
||||
"hoek": "0.9.1"
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz",
|
||||
"integrity": "sha1-W8oogdQUN/VLJAfr40iIx7mtT30="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "0.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
|
||||
"integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
|
||||
"requires": {
|
||||
"delayed-stream": "0.0.5"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
|
||||
"integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0="
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
|
||||
"integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=",
|
||||
"requires": {
|
||||
"boom": "0.4.2"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
|
||||
"integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
|
||||
"integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
|
||||
"integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
|
||||
"requires": {
|
||||
"async": "0.9.2",
|
||||
"combined-stream": "0.0.7",
|
||||
"mime-types": "2.0.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime-types": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
|
||||
"integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
|
||||
"requires": {
|
||||
"mime-db": "1.12.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"hawk": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
|
||||
"integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=",
|
||||
"requires": {
|
||||
"boom": "0.4.2",
|
||||
"cryptiles": "0.2.2",
|
||||
"hoek": "0.9.1",
|
||||
"sntp": "0.2.4"
|
||||
}
|
||||
},
|
||||
"hoek": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
|
||||
"integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU="
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "0.10.1",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
|
||||
"integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
|
||||
"requires": {
|
||||
"asn1": "0.1.11",
|
||||
"assert-plus": "0.1.5",
|
||||
"ctype": "0.5.3"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
|
||||
"integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
|
||||
"integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz",
|
||||
"integrity": "sha1-12f1FpMlYg6rLgh+8MRy53PbZGE="
|
||||
},
|
||||
"qs": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
|
||||
"integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.0.34",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
||||
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "0.10.31"
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.51.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz",
|
||||
"integrity": "sha1-NdALvswBLlX5B7G9ng29V3v+8m4=",
|
||||
"requires": {
|
||||
"aws-sign2": "0.5.0",
|
||||
"bl": "0.9.5",
|
||||
"caseless": "0.8.0",
|
||||
"combined-stream": "0.0.7",
|
||||
"forever-agent": "0.5.2",
|
||||
"form-data": "0.2.0",
|
||||
"hawk": "1.1.1",
|
||||
"http-signature": "0.10.1",
|
||||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "1.0.2",
|
||||
"node-uuid": "1.4.8",
|
||||
"oauth-sign": "0.5.0",
|
||||
"qs": "2.3.3",
|
||||
"stringstream": "0.0.5",
|
||||
"tough-cookie": "2.3.4",
|
||||
"tunnel-agent": "0.4.3"
|
||||
}
|
||||
},
|
||||
"sntp": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
|
||||
"integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
|
||||
"requires": {
|
||||
"hoek": "0.9.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
|
||||
}
|
||||
}
|
||||
},
|
||||
"node-ipc": {
|
||||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz",
|
||||
"integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==",
|
||||
"requires": {
|
||||
"event-pubsub": "4.3.0",
|
||||
"js-message": "1.0.5",
|
||||
"js-queue": "2.0.0"
|
||||
}
|
||||
},
|
||||
"node-libs-browser": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
|
||||
|
@ -8432,6 +8700,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.8",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
|
||||
"integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
|
||||
},
|
||||
"nodeify": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz",
|
||||
|
@ -9111,6 +9384,11 @@
|
|||
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
|
||||
"dev": true
|
||||
},
|
||||
"pm": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/pm/-/pm-2.2.5.tgz",
|
||||
"integrity": "sha1-IgJZn1m/trOID6naI0rdL0NLYK8="
|
||||
},
|
||||
"posix-character-classes": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
||||
|
@ -10198,6 +10476,11 @@
|
|||
"resolve-from": "1.0.1"
|
||||
}
|
||||
},
|
||||
"requires-port": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
|
||||
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
|
||||
|
@ -13020,8 +13303,10 @@
|
|||
"p-each-series": "1.0.0",
|
||||
"p-lazy": "1.0.0",
|
||||
"prettier": "1.13.4",
|
||||
"supports-color": "5.4.0",
|
||||
"v8-compile-cache": "2.0.0",
|
||||
"webpack-addons": "1.1.5",
|
||||
"yargs": "11.1.0",
|
||||
"yeoman-environment": "2.2.0",
|
||||
"yeoman-generator": "2.0.5"
|
||||
},
|
||||
|
@ -13050,7 +13335,8 @@
|
|||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.1",
|
||||
"escape-string-regexp": "1.0.5"
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"supports-color": "5.4.0"
|
||||
}
|
||||
},
|
||||
"cliui": {
|
||||
|
@ -13059,6 +13345,7 @@
|
|||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||
"requires": {
|
||||
"string-width": "2.1.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"wrap-ansi": "2.1.0"
|
||||
}
|
||||
},
|
||||
|
@ -13085,7 +13372,8 @@
|
|||
"integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==",
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"memory-fs": "0.4.1"
|
||||
"memory-fs": "0.4.1",
|
||||
"tapable": "1.0.0"
|
||||
}
|
||||
},
|
||||
"got": {
|
||||
|
@ -13108,6 +13396,7 @@
|
|||
"pify": "3.0.0",
|
||||
"safe-buffer": "5.1.1",
|
||||
"timed-out": "4.0.1",
|
||||
"url-parse-lax": "3.0.0",
|
||||
"url-to-options": "1.0.1"
|
||||
}
|
||||
},
|
||||
|
@ -13132,6 +13421,7 @@
|
|||
"run-async": "2.3.0",
|
||||
"rxjs": "5.5.11",
|
||||
"string-width": "2.1.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"through": "2.3.8"
|
||||
}
|
||||
},
|
||||
|
@ -13153,10 +13443,44 @@
|
|||
"p-finally": "1.0.0"
|
||||
}
|
||||
},
|
||||
"prepend-http": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
|
||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
|
||||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"requires": {
|
||||
"has-flag": "3.0.0"
|
||||
}
|
||||
},
|
||||
"tapable": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz",
|
||||
"integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg=="
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
},
|
||||
"url-parse-lax": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
||||
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
||||
"requires": {
|
||||
"prepend-http": "2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -13444,6 +13768,65 @@
|
|||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
|
||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
|
||||
"integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
|
||||
"requires": {
|
||||
"cliui": "4.1.0",
|
||||
"decamelize": "1.2.0",
|
||||
"find-up": "2.1.0",
|
||||
"get-caller-file": "1.0.2",
|
||||
"os-locale": "2.1.0",
|
||||
"require-directory": "2.1.1",
|
||||
"require-main-filename": "1.0.1",
|
||||
"set-blocking": "2.0.0",
|
||||
"string-width": "2.1.1",
|
||||
"which-module": "2.0.0",
|
||||
"y18n": "3.2.1",
|
||||
"yargs-parser": "9.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
|
||||
},
|
||||
"cliui": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||
"requires": {
|
||||
"string-width": "2.1.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"wrap-ansi": "2.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "9.0.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
|
||||
"integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
|
||||
"requires": {
|
||||
"camelcase": "4.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
|
||||
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
|
||||
}
|
||||
}
|
||||
},
|
||||
"yauzl": {
|
||||
"version": "2.9.1",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz",
|
||||
|
|
Loading…
Reference in New Issue