Add files via upload
This commit is contained in:
commit
0109cf9b86
|
|
@ -0,0 +1,379 @@
|
||||||
|
//var net_addr = "192.168.123.255";
|
||||||
|
net_addr = "10.0.50.255";
|
||||||
|
|
||||||
|
|
||||||
|
const files_path = "./";
|
||||||
|
|
||||||
|
const dgram = require('dgram'),
|
||||||
|
clui = require('clui'),
|
||||||
|
// clc = require('cli-color'),
|
||||||
|
// Line = clui.Line,
|
||||||
|
Spinner = clui.Spinner,
|
||||||
|
Progress = clui.Progress,
|
||||||
|
inquirer = require('inquirer'),
|
||||||
|
fs = require('fs');
|
||||||
|
|
||||||
|
const shortSearch = 2, longSearch = 8;
|
||||||
|
const countdown = new Spinner('Поиск устройств. Найдено [0] Осталось 10 секунд... ', ['|', '/', '-', ' ']);// ['⣾','⣽','⣻','⢿','⡿','⣟','⣯','⣷']);
|
||||||
|
const m2 = [
|
||||||
|
"Загрузка прошивки" ,
|
||||||
|
{ name: "Загрузка firmware" },
|
||||||
|
"Перезагрузка",
|
||||||
|
new inquirer.Separator(),
|
||||||
|
"Выход",
|
||||||
|
];
|
||||||
|
// const confirmMenu = [
|
||||||
|
// "Да", "Нет"
|
||||||
|
// ]
|
||||||
|
const client = dgram.createSocket('udp4');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var number = shortSearch;
|
||||||
|
var mode = 1; // work mode - 1: search devices, 2 - uploading
|
||||||
|
var devices = []; // device list
|
||||||
|
var progressbar;
|
||||||
|
var step = 1; //upload step
|
||||||
|
var stopTimer;
|
||||||
|
var mac=""; // current device mac address
|
||||||
|
var fdata =[]; // uploading file content
|
||||||
|
var pageNumber = 0; // page of uploading file
|
||||||
|
var session = (Math.random() * 0xFFFFFFFF).toString(16); // work session
|
||||||
|
var pr;
|
||||||
|
var firmvare = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// **
|
||||||
|
// Get work network interface
|
||||||
|
// used for create disable stoofing filter command
|
||||||
|
// **
|
||||||
|
function getInterface(){
|
||||||
|
var net = require('os').networkInterfaces();
|
||||||
|
for (var ifs in net) {
|
||||||
|
var res = net[ifs].find(ip => {
|
||||||
|
return ip.address.includes(net_addr.substring(0,net_addr.length-3))
|
||||||
|
});
|
||||||
|
if (res)
|
||||||
|
return ifs;
|
||||||
|
}
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
// function confirm(message){
|
||||||
|
// var deferred = Q.defer();
|
||||||
|
// showMenu(confirmMenu, message, (choice)=>{
|
||||||
|
// console.log(choice)
|
||||||
|
// if (choice == "Да")
|
||||||
|
// deferred.resolve(true);
|
||||||
|
// else
|
||||||
|
// deferred.reject(false);
|
||||||
|
// })
|
||||||
|
// return deferred.promise;
|
||||||
|
// }
|
||||||
|
|
||||||
|
function toBytesInt16(num){
|
||||||
|
return [(num & 0xff00) >> 8,(num & 0x00ff)];
|
||||||
|
}
|
||||||
|
// **
|
||||||
|
// Send command to device
|
||||||
|
// **
|
||||||
|
function send(cmd,addr,msg,result){
|
||||||
|
var mess = "_"+addr+cmd+ (msg? "|"+msg :"");
|
||||||
|
client.send(mess,0,mess.length,65535,net_addr,result);
|
||||||
|
}
|
||||||
|
// **
|
||||||
|
// process error result
|
||||||
|
// **
|
||||||
|
function result(err,bytes) {
|
||||||
|
if (err) throw err;
|
||||||
|
};
|
||||||
|
function getFilesInDirectory (path,ext) {
|
||||||
|
let dir = fs.readdirSync( path );
|
||||||
|
return dir.filter( elm => elm.match(new RegExp(`.*\.(${ext})$`, 'ig')));
|
||||||
|
}
|
||||||
|
function getFile(path){
|
||||||
|
return fs.readFileSync(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("")
|
||||||
|
console.log("Программа обновления прошивки для устройств Tibbo");
|
||||||
|
console.log("")
|
||||||
|
|
||||||
|
// attach events
|
||||||
|
client.on('listening', () =>{ // udp net binding
|
||||||
|
client.setBroadcast(1);
|
||||||
|
startSearch();
|
||||||
|
});
|
||||||
|
var tm;
|
||||||
|
client.on('message',(msg,rinfo) => { // udp message recived
|
||||||
|
var m = msg.toString(); // message string from Buffer
|
||||||
|
var addr = msg.toString().substring(0,25); // device mac address
|
||||||
|
switch (mode){
|
||||||
|
case 1:{ // поиск устройств
|
||||||
|
var d = devices.find(obj => { return obj.mac === addr });
|
||||||
|
if (!d){
|
||||||
|
devices.push({mac: addr, ip: rinfo.address});
|
||||||
|
// get device information
|
||||||
|
client.send("_"+addr+ "X",65535,net_addr);
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
if (m.indexOf('/') >0){
|
||||||
|
if (m.indexOf('/')==m.lastIndexOf('/')){
|
||||||
|
d.platform = m.substr(26,m.length-27);
|
||||||
|
d.app_version = ""
|
||||||
|
}else{
|
||||||
|
d.platform = m.substr(27,m.indexOf('/')-28);
|
||||||
|
d.app_version = m.substr(m.lastIndexOf('/')+1);
|
||||||
|
}
|
||||||
|
}else
|
||||||
|
if ( !d.platform || d.app_version){ // requery if information not full
|
||||||
|
client.send("_"+addr+ "X",65535,net_addr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
countdown.message ("Поиск устройств. Найдено [" + devices.length + "] Осталось "+number+" секунд... ");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:{ // Программирование
|
||||||
|
switch (step){
|
||||||
|
case 1: // switch device to update mode
|
||||||
|
if (m.indexOf(session)<=0)
|
||||||
|
return;
|
||||||
|
if (addr == mac){
|
||||||
|
step=2; // send first data blocks
|
||||||
|
var cmdd="Q";
|
||||||
|
if (firmware==1)
|
||||||
|
cmdd="QF";
|
||||||
|
send(cmdd,mac,session);
|
||||||
|
tm = setInterval(function(){
|
||||||
|
var cmdd="Q";
|
||||||
|
if (firmware==1)
|
||||||
|
cmdd="QF";
|
||||||
|
send(cmdd,mac,session);
|
||||||
|
},500); // resend every 0.5 sec
|
||||||
|
}else{
|
||||||
|
console.log("ERROR - wrong reply",)
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2: // sending first block
|
||||||
|
if (pageNumber == 0 && addr == mac && m.indexOf(session>0))
|
||||||
|
if (tm){
|
||||||
|
clearInterval(tm);
|
||||||
|
}
|
||||||
|
progressbar = new Progress(20);
|
||||||
|
process.stdout.write("\u001b[1000D"+progressbar.update(pageNumber,fdata.length/128))
|
||||||
|
stopTimer = setTimeout(()=>{
|
||||||
|
// clearInterval(pr);
|
||||||
|
console.log();
|
||||||
|
console.log("ОШИБКА: Ответ от устройства не получен!");
|
||||||
|
console.log("Возможно включена защита от Spoofing'а");
|
||||||
|
console.log("Для отключения выполните комманду : ");
|
||||||
|
console.log("\tsudo sysctl net.ipv4.conf.all.rp_filter=0 && sudo sysctl net.ipv4.conf." +getInterface()+ ".rp_filter=0");
|
||||||
|
console.log();
|
||||||
|
process.exit();
|
||||||
|
},15000)
|
||||||
|
sendFilePage();
|
||||||
|
break;
|
||||||
|
case 3: // wait confirm block recieved switch to this mode in sendFilePage()
|
||||||
|
var b = toBytesInt16(pageNumber);
|
||||||
|
if (pageNumber >= 0 && addr == mac)
|
||||||
|
{
|
||||||
|
if (stopTimer) { // stop wrong net config check timer
|
||||||
|
clearTimeout(stopTimer);
|
||||||
|
stopTimer=null;
|
||||||
|
}
|
||||||
|
var b11 = Buffer.from([0x41,b[0],b[1]]) // number of confirmed block
|
||||||
|
if (msg.compare(b11,0,3,25)==0){
|
||||||
|
pageNumber++; // change current block number
|
||||||
|
process.stdout.write("\u001b[1000D"+progressbar.update(pageNumber,fdata.length/128))
|
||||||
|
|
||||||
|
if (((pageNumber)*128) >= fdata.length-1){ // if last block confirmed
|
||||||
|
step = 4; // switch to final step
|
||||||
|
if (firmware==1)
|
||||||
|
send("N",mac,session); // switch device to normal mode
|
||||||
|
else
|
||||||
|
send("T",mac,session); // switch device to normal mode
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sendFilePage();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: // get last success message and switch to search mode
|
||||||
|
if (addr == mac && msg[25]==0x41){
|
||||||
|
clearTimeout(stopTimer);
|
||||||
|
send("E",mac,session); // send reboot command to device (if it id not auto reboot)
|
||||||
|
console.log("");
|
||||||
|
console.log("Загрузка завершена успешно");
|
||||||
|
console.log("");
|
||||||
|
mode = 1;
|
||||||
|
step = 1;
|
||||||
|
number = longSearch; // long time search for wait to device reboot and network ready
|
||||||
|
fdata = []; // clear file content buffer
|
||||||
|
startSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
client.on('close', function() {
|
||||||
|
console.log('Соединение неожиданно было закрыто. Проверьте сетевое подключение.');
|
||||||
|
console.log();
|
||||||
|
process.exit();
|
||||||
|
});
|
||||||
|
|
||||||
|
client.bind(45535); // bind socket
|
||||||
|
|
||||||
|
|
||||||
|
//**
|
||||||
|
// Get file names and show in menu
|
||||||
|
//**
|
||||||
|
function select_file(ext){
|
||||||
|
console.log("");
|
||||||
|
var filelist = getFilesInDirectory(files_path,ext);
|
||||||
|
filelist.push(new inquirer.Separator());
|
||||||
|
filelist.push("Отмена");
|
||||||
|
|
||||||
|
showMenu(filelist,'Выберите файл для загрузки в '+mac,item =>{
|
||||||
|
if (item.result == "Отмена"){
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
console.log("OK");
|
||||||
|
upload_application(mac,item.result);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function upload_application(mac, filename){
|
||||||
|
console.log("upload_application("+mac+","+filename+")" );
|
||||||
|
var d = devices.find(obj => { return obj.mac === mac });
|
||||||
|
var platform = d.platform.substring(1,d.platform.lastIndexOf('.'));
|
||||||
|
console.log("Начинается загрузка");
|
||||||
|
fdata = getFile(files_path+filename);
|
||||||
|
var fst = fdata.indexOf(String.fromCharCode(0)+"<FD>")+5;
|
||||||
|
var fen = fdata.indexOf(String.fromCharCode(0)+String.fromCharCode(0)+String.fromCharCode(0),fst);
|
||||||
|
var line = fdata.toString('ascii',fst+1,fen-1);
|
||||||
|
var finfo = line.split(String.fromCharCode(0));
|
||||||
|
if (firmware==0 && fdata.indexOf(platform)<0){
|
||||||
|
console.log("Выбрана неподходящая платформа :");
|
||||||
|
console.log("Устройство: "+platform+", файл:" +finfo[2]);
|
||||||
|
select_file(firmware==0?"tpc":"bin");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mode = 2; //switch to uploading mode
|
||||||
|
step=1; // init device step
|
||||||
|
pageNumber = 0;
|
||||||
|
// init sending
|
||||||
|
send("X",mac,session); // switch device to program mode
|
||||||
|
}
|
||||||
|
|
||||||
|
function sendFilePage(){
|
||||||
|
step = 3;
|
||||||
|
clearTimeout(stopTimer); // clear resend timer
|
||||||
|
var bmac = Buffer.from("_"+mac);
|
||||||
|
var n = toBytesInt16(pageNumber);
|
||||||
|
var cmd = Buffer.from([0x44,n[0],n[1]]);
|
||||||
|
var f = Buffer.from(fdata.slice(128*pageNumber,128*(pageNumber+1)));
|
||||||
|
var mess = Buffer.concat([bmac,cmd,f]);
|
||||||
|
client.send(mess,0,mess.length,65535,net_addr,result);
|
||||||
|
if (fdata.length/128 >pageNumber)
|
||||||
|
stopTimer = setTimeout(sendFilePage,500); // resend every 0.5 sec
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function startSearch(){
|
||||||
|
if (number<=0)
|
||||||
|
number = shortSearch;
|
||||||
|
devices = [];
|
||||||
|
session = (Math.random() * 0xFFFFFFFF).toString(16); // change session
|
||||||
|
countdown.start();
|
||||||
|
// get device list;
|
||||||
|
pr = setInterval(()=>{
|
||||||
|
send("","?","");
|
||||||
|
countdown.message( "Поиск устройств. Найдено [" + devices.length + "] Осталось "+number+" секунд... ");
|
||||||
|
if (number == 0){
|
||||||
|
clearInterval(pr);
|
||||||
|
countdown.stop();
|
||||||
|
proc();
|
||||||
|
}
|
||||||
|
number--;
|
||||||
|
},1000);
|
||||||
|
send("","?","");
|
||||||
|
}
|
||||||
|
|
||||||
|
function proc(){
|
||||||
|
|
||||||
|
if (devices.length == 0){
|
||||||
|
console.log("ОШИБКА: Устройства не найдены!");
|
||||||
|
console.log("Возможно включена защита от Spoofing'а");
|
||||||
|
console.log("Для отключения выполните комманды : ");
|
||||||
|
console.log("\tsudo sysctl net.ipv4.conf.all.rp_filter=0 && sudo sysctl net.ipv4.conf." +getInterface()+ ".rp_filter=0"); console.log();
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
var m = [];
|
||||||
|
var mlip = 0;
|
||||||
|
var mlpl = 0;
|
||||||
|
for (var i = 0; i < devices.length ; i++){
|
||||||
|
if (mlip < devices[i].ip.length)
|
||||||
|
mlip = devices[i].ip.length;
|
||||||
|
if (mlpl < devices[i].platform.length)
|
||||||
|
mlpl = devices[i].platform.length;
|
||||||
|
}
|
||||||
|
for (var i = 0; i < devices.length ; i++) {
|
||||||
|
m.push({ value: devices[i].mac,
|
||||||
|
name: devices[i].mac.replace("[",'').replace("]",'') + " | "
|
||||||
|
+ devices[i].ip.padStart(mlip," ") + " | "
|
||||||
|
+ devices[i].platform.padEnd(mlpl," ") + " | "
|
||||||
|
+ devices[i].app_version });
|
||||||
|
}
|
||||||
|
m.push(new inquirer.Separator());
|
||||||
|
m.push({ key:'0', value: "Выход" });
|
||||||
|
|
||||||
|
showMenu(m,"Выберите устройство",function(item) {
|
||||||
|
if (item){
|
||||||
|
if (item.result == "Выход")
|
||||||
|
process.exit();
|
||||||
|
else
|
||||||
|
mac = item.result;
|
||||||
|
console.log("");
|
||||||
|
showMenu(m2,"Выберите действие",(select)=>{
|
||||||
|
//console.log(select);
|
||||||
|
if (select.result=="Выход"){
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (select.result == 'Загрузка прошивки'){
|
||||||
|
//console.log("select file");
|
||||||
|
firmware=0;
|
||||||
|
select_file("tpc");
|
||||||
|
}
|
||||||
|
if (select.result == 'Загрузка firmware'){
|
||||||
|
firmware=1;
|
||||||
|
select_file("bin");
|
||||||
|
}
|
||||||
|
if (select.result == "Перезагрузка"){
|
||||||
|
send("E",mac,session);
|
||||||
|
number = longSearch;
|
||||||
|
startSearch();
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
console.log("cancel")
|
||||||
|
}
|
||||||
|
//process.exit();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function showMenu(m,title,select){
|
||||||
|
var q = {
|
||||||
|
type: 'list',
|
||||||
|
name: 'result',
|
||||||
|
message: title,
|
||||||
|
choices: m
|
||||||
|
};
|
||||||
|
inquirer.prompt(q)
|
||||||
|
.then(select);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,849 @@
|
||||||
|
{
|
||||||
|
"name": "tibbo-test",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"accepts": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
|
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||||
|
"requires": {
|
||||||
|
"mime-types": "~2.1.18",
|
||||||
|
"negotiator": "0.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"after": {
|
||||||
|
"version": "0.8.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
|
||||||
|
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
|
||||||
|
},
|
||||||
|
"ansi-escapes": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw=="
|
||||||
|
},
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"arraybuffer.slice": {
|
||||||
|
"version": "0.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
|
||||||
|
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
|
||||||
|
},
|
||||||
|
"async-limiter": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
|
||||||
|
},
|
||||||
|
"babel-polyfill": {
|
||||||
|
"version": "6.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
|
||||||
|
"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
|
||||||
|
"requires": {
|
||||||
|
"babel-runtime": "^6.26.0",
|
||||||
|
"core-js": "^2.5.0",
|
||||||
|
"regenerator-runtime": "^0.10.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"babel-runtime": {
|
||||||
|
"version": "6.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||||
|
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||||
|
"requires": {
|
||||||
|
"core-js": "^2.4.0",
|
||||||
|
"regenerator-runtime": "^0.11.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"regenerator-runtime": {
|
||||||
|
"version": "0.11.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||||
|
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"backo2": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
|
||||||
|
},
|
||||||
|
"base64-arraybuffer": {
|
||||||
|
"version": "0.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
|
||||||
|
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
|
||||||
|
},
|
||||||
|
"base64id": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
|
||||||
|
},
|
||||||
|
"better-assert": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
|
||||||
|
"requires": {
|
||||||
|
"callsite": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blob": {
|
||||||
|
"version": "0.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
|
||||||
|
"integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
|
||||||
|
},
|
||||||
|
"callsite": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
|
||||||
|
},
|
||||||
|
"chai-as-promised": {
|
||||||
|
"version": "7.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
|
||||||
|
"integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
|
||||||
|
"requires": {
|
||||||
|
"check-error": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chalk": {
|
||||||
|
"version": "2.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||||
|
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^3.2.1",
|
||||||
|
"escape-string-regexp": "^1.0.5",
|
||||||
|
"supports-color": "^5.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chardet": {
|
||||||
|
"version": "0.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
|
||||||
|
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
|
||||||
|
},
|
||||||
|
"check-error": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII="
|
||||||
|
},
|
||||||
|
"cli-color": {
|
||||||
|
"version": "0.3.2",
|
||||||
|
"resolved": "http://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz",
|
||||||
|
"integrity": "sha1-dfpfcowwjMSsWUsF4GzF2A2szYY=",
|
||||||
|
"requires": {
|
||||||
|
"d": "~0.1.1",
|
||||||
|
"es5-ext": "~0.10.2",
|
||||||
|
"memoizee": "0.3.x",
|
||||||
|
"timers-ext": "0.1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cli-cursor": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
|
||||||
|
"requires": {
|
||||||
|
"restore-cursor": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cli-width": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
|
||||||
|
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
|
||||||
|
},
|
||||||
|
"clui": {
|
||||||
|
"version": "0.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/clui/-/clui-0.3.6.tgz",
|
||||||
|
"integrity": "sha512-Z4UbgZILlIAjkEkZiDOa2aoYjohKx7fa6DxIh6cE9A6WNWZ61iXfQc6CmdC9SKdS5nO0P0UyQ+WfoXfB65e3HQ==",
|
||||||
|
"requires": {
|
||||||
|
"cli-color": "0.3.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-convert": {
|
||||||
|
"version": "1.9.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||||
|
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||||
|
"requires": {
|
||||||
|
"color-name": "1.1.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-name": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||||
|
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||||
|
},
|
||||||
|
"component-bind": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
|
||||||
|
},
|
||||||
|
"component-emitter": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||||
|
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
|
||||||
|
},
|
||||||
|
"component-inherit": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
|
||||||
|
},
|
||||||
|
"console-menu": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/console-menu/-/console-menu-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-Zbqm2/OuoMFdmd3zAuQLvD1d8z4=",
|
||||||
|
"requires": {
|
||||||
|
"keypress": "^0.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cookie": {
|
||||||
|
"version": "0.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
||||||
|
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
|
||||||
|
},
|
||||||
|
"core-js": {
|
||||||
|
"version": "2.5.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
|
||||||
|
"integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
|
||||||
|
},
|
||||||
|
"d": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "http://registry.npmjs.org/d/-/d-0.1.1.tgz",
|
||||||
|
"integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "~0.10.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dgram": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "http://registry.npmjs.org/dgram/-/dgram-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-N/OyAPgDOl/3WTAwicgc42G2UcM="
|
||||||
|
},
|
||||||
|
"engine.io": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
|
||||||
|
"requires": {
|
||||||
|
"accepts": "~1.3.4",
|
||||||
|
"base64id": "1.0.0",
|
||||||
|
"cookie": "0.3.1",
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"engine.io-parser": "~2.1.0",
|
||||||
|
"ws": "~3.3.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"engine.io-client": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
|
||||||
|
"requires": {
|
||||||
|
"component-emitter": "1.2.1",
|
||||||
|
"component-inherit": "0.0.3",
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"engine.io-parser": "~2.1.1",
|
||||||
|
"has-cors": "1.1.0",
|
||||||
|
"indexof": "0.0.1",
|
||||||
|
"parseqs": "0.0.5",
|
||||||
|
"parseuri": "0.0.5",
|
||||||
|
"ws": "~3.3.1",
|
||||||
|
"xmlhttprequest-ssl": "~1.5.4",
|
||||||
|
"yeast": "0.1.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"engine.io-parser": {
|
||||||
|
"version": "2.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
|
||||||
|
"integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
|
||||||
|
"requires": {
|
||||||
|
"after": "0.8.2",
|
||||||
|
"arraybuffer.slice": "~0.0.7",
|
||||||
|
"base64-arraybuffer": "0.1.5",
|
||||||
|
"blob": "0.0.5",
|
||||||
|
"has-binary2": "~1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"es5-ext": {
|
||||||
|
"version": "0.10.46",
|
||||||
|
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
|
||||||
|
"integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
|
||||||
|
"requires": {
|
||||||
|
"es6-iterator": "~2.0.3",
|
||||||
|
"es6-symbol": "~3.1.1",
|
||||||
|
"next-tick": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"es6-iterator": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||||
|
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||||
|
"requires": {
|
||||||
|
"d": "1",
|
||||||
|
"es5-ext": "^0.10.35",
|
||||||
|
"es6-symbol": "^3.1.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"d": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "^0.10.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"es6-symbol": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||||
|
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||||
|
"requires": {
|
||||||
|
"d": "1",
|
||||||
|
"es5-ext": "~0.10.14"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"d": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "^0.10.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"es6-weak-map": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
|
||||||
|
"integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=",
|
||||||
|
"requires": {
|
||||||
|
"d": "~0.1.1",
|
||||||
|
"es5-ext": "~0.10.6",
|
||||||
|
"es6-iterator": "~0.1.3",
|
||||||
|
"es6-symbol": "~2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"es6-iterator": {
|
||||||
|
"version": "0.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
|
||||||
|
"integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=",
|
||||||
|
"requires": {
|
||||||
|
"d": "~0.1.1",
|
||||||
|
"es5-ext": "~0.10.5",
|
||||||
|
"es6-symbol": "~2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"es6-symbol": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=",
|
||||||
|
"requires": {
|
||||||
|
"d": "~0.1.1",
|
||||||
|
"es5-ext": "~0.10.5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"escape-string-regexp": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||||
|
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||||
|
},
|
||||||
|
"event-emitter": {
|
||||||
|
"version": "0.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||||
|
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||||
|
"requires": {
|
||||||
|
"d": "1",
|
||||||
|
"es5-ext": "~0.10.14"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"d": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "^0.10.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"external-editor": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
|
||||||
|
"integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
|
||||||
|
"requires": {
|
||||||
|
"chardet": "^0.7.0",
|
||||||
|
"iconv-lite": "^0.4.24",
|
||||||
|
"tmp": "^0.0.33"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"figures": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
|
||||||
|
"requires": {
|
||||||
|
"escape-string-regexp": "^1.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"file-regex": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-regex/-/file-regex-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-3sQbc+i5um0dtAFfGli5MvX958EmJmEWOc6BWyKyqqbmUauSS97SkhQfuLfFVX44mompLfwm834YeHwzOj5WbQ==",
|
||||||
|
"requires": {
|
||||||
|
"babel-polyfill": "^6.26.0",
|
||||||
|
"lib-promise-pool": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-binary2": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
|
||||||
|
"requires": {
|
||||||
|
"isarray": "2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-cors": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
|
||||||
|
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||||
|
},
|
||||||
|
"iconv-lite": {
|
||||||
|
"version": "0.4.24",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||||
|
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||||
|
"requires": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexof": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
|
||||||
|
},
|
||||||
|
"inquirer": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
|
||||||
|
"requires": {
|
||||||
|
"ansi-escapes": "^3.0.0",
|
||||||
|
"chalk": "^2.0.0",
|
||||||
|
"cli-cursor": "^2.1.0",
|
||||||
|
"cli-width": "^2.0.0",
|
||||||
|
"external-editor": "^3.0.0",
|
||||||
|
"figures": "^2.0.0",
|
||||||
|
"lodash": "^4.17.10",
|
||||||
|
"mute-stream": "0.0.7",
|
||||||
|
"run-async": "^2.2.0",
|
||||||
|
"rxjs": "^6.1.0",
|
||||||
|
"string-width": "^2.1.0",
|
||||||
|
"strip-ansi": "^4.0.0",
|
||||||
|
"through": "^2.3.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-fullwidth-code-point": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
|
||||||
|
},
|
||||||
|
"is-promise": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
|
||||||
|
},
|
||||||
|
"isarray": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
|
||||||
|
},
|
||||||
|
"keypress": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz",
|
||||||
|
"integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc="
|
||||||
|
},
|
||||||
|
"lib-promise-pool": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lib-promise-pool/-/lib-promise-pool-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-2HxM4fRzk/2F3W9XUthFPx3RVhq0n0h7zcAXFhEIa2r22FKgv8jOidbxrj3E2QYQ4P4iCcPrBIYkVwlx/B9PVw==",
|
||||||
|
"requires": {
|
||||||
|
"babel-polyfill": "^6.26.0",
|
||||||
|
"babel-runtime": "^6.26.0",
|
||||||
|
"chai-as-promised": "^7.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"version": "4.17.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||||
|
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
||||||
|
},
|
||||||
|
"lru-queue": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||||
|
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "~0.10.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"memoizee": {
|
||||||
|
"version": "0.3.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz",
|
||||||
|
"integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=",
|
||||||
|
"requires": {
|
||||||
|
"d": "~0.1.1",
|
||||||
|
"es5-ext": "~0.10.11",
|
||||||
|
"es6-weak-map": "~0.1.4",
|
||||||
|
"event-emitter": "~0.3.4",
|
||||||
|
"lru-queue": "0.1",
|
||||||
|
"next-tick": "~0.2.2",
|
||||||
|
"timers-ext": "0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"next-tick": {
|
||||||
|
"version": "0.2.2",
|
||||||
|
"resolved": "http://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz",
|
||||||
|
"integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.37.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
||||||
|
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.21",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
||||||
|
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "~1.37.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mimic-fn": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
||||||
|
},
|
||||||
|
"mute-stream": {
|
||||||
|
"version": "0.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
|
||||||
|
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
|
||||||
|
},
|
||||||
|
"negotiator": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||||
|
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||||
|
},
|
||||||
|
"next-tick": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||||
|
},
|
||||||
|
"object-component": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
|
||||||
|
},
|
||||||
|
"onetime": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
|
||||||
|
"requires": {
|
||||||
|
"mimic-fn": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"os-tmpdir": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||||
|
},
|
||||||
|
"parseqs": {
|
||||||
|
"version": "0.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
|
||||||
|
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
|
||||||
|
"requires": {
|
||||||
|
"better-assert": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parseuri": {
|
||||||
|
"version": "0.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
|
||||||
|
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
|
||||||
|
"requires": {
|
||||||
|
"better-assert": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"regenerator-runtime": {
|
||||||
|
"version": "0.10.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
|
||||||
|
"integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
|
||||||
|
},
|
||||||
|
"restore-cursor": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
|
||||||
|
"requires": {
|
||||||
|
"onetime": "^2.0.0",
|
||||||
|
"signal-exit": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"run-async": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
|
||||||
|
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
|
||||||
|
"requires": {
|
||||||
|
"is-promise": "^2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rxjs": {
|
||||||
|
"version": "6.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
|
||||||
|
"integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
},
|
||||||
|
"safer-buffer": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||||
|
},
|
||||||
|
"signal-exit": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||||
|
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
|
||||||
|
},
|
||||||
|
"socket.io": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"engine.io": "~3.2.0",
|
||||||
|
"has-binary2": "~1.0.2",
|
||||||
|
"socket.io-adapter": "~1.1.0",
|
||||||
|
"socket.io-client": "2.1.1",
|
||||||
|
"socket.io-parser": "~3.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"socket.io-adapter": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
|
||||||
|
},
|
||||||
|
"socket.io-client": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
|
||||||
|
"requires": {
|
||||||
|
"backo2": "1.0.2",
|
||||||
|
"base64-arraybuffer": "0.1.5",
|
||||||
|
"component-bind": "1.0.0",
|
||||||
|
"component-emitter": "1.2.1",
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"engine.io-client": "~3.2.0",
|
||||||
|
"has-binary2": "~1.0.2",
|
||||||
|
"has-cors": "1.1.0",
|
||||||
|
"indexof": "0.0.1",
|
||||||
|
"object-component": "0.0.3",
|
||||||
|
"parseqs": "0.0.5",
|
||||||
|
"parseuri": "0.0.5",
|
||||||
|
"socket.io-parser": "~3.2.0",
|
||||||
|
"to-array": "0.1.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"socket.io-parser": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
|
||||||
|
"requires": {
|
||||||
|
"component-emitter": "1.2.1",
|
||||||
|
"debug": "~3.1.0",
|
||||||
|
"isarray": "2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
||||||
|
"requires": {
|
||||||
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
|
"strip-ansi": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"through": {
|
||||||
|
"version": "2.3.8",
|
||||||
|
"resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
|
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
|
||||||
|
},
|
||||||
|
"timers-ext": {
|
||||||
|
"version": "0.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||||
|
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||||
|
"requires": {
|
||||||
|
"es5-ext": "~0.10.46",
|
||||||
|
"next-tick": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tmp": {
|
||||||
|
"version": "0.0.33",
|
||||||
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||||
|
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||||
|
"requires": {
|
||||||
|
"os-tmpdir": "~1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"to-array": {
|
||||||
|
"version": "0.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
|
||||||
|
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "1.9.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||||
|
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
||||||
|
},
|
||||||
|
"ultron": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
|
||||||
|
},
|
||||||
|
"ws": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
|
||||||
|
"requires": {
|
||||||
|
"async-limiter": "~1.0.0",
|
||||||
|
"safe-buffer": "~5.1.0",
|
||||||
|
"ultron": "~1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xmlhttprequest-ssl": {
|
||||||
|
"version": "1.5.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
|
||||||
|
"integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
|
||||||
|
},
|
||||||
|
"yeast": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "tibbo-test",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"clui": "^0.3.6",
|
||||||
|
"console-menu": "^0.1.0",
|
||||||
|
"debug": "^4.1.0",
|
||||||
|
"dgram": "^1.0.1",
|
||||||
|
"file-regex": "^3.0.1",
|
||||||
|
"inquirer": "^6.2.0",
|
||||||
|
"socket.io": "^2.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue