2
0
mirror of https://github.com/frappe/books.git synced 2025-01-10 18:24:40 +00:00

introduction socketio

This commit is contained in:
Rushabh Mehta 2018-02-19 22:11:10 +05:30
parent 676965be5e
commit db181ddea0
17 changed files with 597 additions and 194 deletions

View File

@ -1,7 +1,9 @@
const frappe = require('frappejs'); const frappe = require('frappejs');
const Observable = require('frappejs/utils/observable');
module.exports = class Database { module.exports = class Database extends Observable {
constructor() { constructor() {
super();
this.initTypeMap(); this.initTypeMap();
} }
@ -135,6 +137,10 @@ module.exports = class Database {
return fields; return fields;
} }
triggerChange(doctype, name) {
this.trigger(`change:${doctype}`, {name:name});
}
async insert(doctype, doc) { async insert(doctype, doc) {
let meta = frappe.getMeta(doctype); let meta = frappe.getMeta(doctype);
@ -148,9 +154,12 @@ module.exports = class Database {
// insert children // insert children
await this.insertChildren(meta, doc, doctype); await this.insertChildren(meta, doc, doctype);
this.triggerChange(doctype, doc.name);
return doc; return doc;
} }
async insertChildren(meta, doc, doctype) { async insertChildren(meta, doc, doctype) {
let tableFields = meta.getTableFields(); let tableFields = meta.getTableFields();
for (let field of tableFields) { for (let field of tableFields) {
@ -179,6 +188,9 @@ module.exports = class Database {
// insert or update children // insert or update children
await this.updateChildren(meta, doc, doctype); await this.updateChildren(meta, doc, doctype);
this.triggerChange(doctype, doc.name);
return doc; return doc;
} }
@ -275,6 +287,8 @@ module.exports = class Database {
for (let field of tableFields) { for (let field of tableFields) {
await this.deleteChildren(field.childtype, name); await this.deleteChildren(field.childtype, name);
} }
this.triggerChange(doctype, name);
} }
async deleteOne(doctype, name) { async deleteOne(doctype, name) {

View File

@ -1,8 +1,10 @@
const frappe = require('frappejs'); const frappe = require('frappejs');
const path = require('path'); const Observable = require('frappejs/utils/observable');
module.exports = class RESTClient { module.exports = class HTTPClient extends Observable {
constructor({ server, protocol = 'http' }) { constructor({ server, protocol = 'http' }) {
super();
this.server = server; this.server = server;
this.protocol = protocol; this.protocol = protocol;
@ -99,7 +101,7 @@ module.exports = class RESTClient {
} }
getURL(...parts) { getURL(...parts) {
return this.protocol + '://' + path.join(this.server, ...parts); return this.protocol + '://' + this.server + parts.join('/');
} }
getQueryString(params) { getQueryString(params) {

View File

@ -3,57 +3,57 @@ const view = require('frappejs/client/view');
const frappe = require('frappejs'); const frappe = require('frappejs');
module.exports = class FormPage extends Page { module.exports = class FormPage extends Page {
constructor(doctype) { constructor(doctype) {
let meta = frappe.getMeta(doctype) let meta = frappe.getMeta(doctype)
super({title: `Edit ${meta.name}`}); super({title: `Edit ${meta.name}`});
this.meta = meta; this.meta = meta;
this.form = new (view.getFormClass(doctype))({ this.form = new (view.getFormClass(doctype))({
doctype: doctype, doctype: doctype,
parent: this.body, parent: this.body,
container: this, container: this,
actions: ['submit', 'delete', 'duplicate', 'settings'] actions: ['submit', 'delete', 'duplicate', 'settings']
}); });
this.on('show', async (params) => { this.on('show', async (params) => {
await this.showDoc(params.doctype, params.name); await this.showDoc(params.doctype, params.name);
if (frappe.desk.center && !frappe.desk.center.activePage) { if (frappe.desk.center && !frappe.desk.center.activePage) {
frappe.desk.showListPage(doctype); frappe.desk.showListPage(doctype);
} }
}); });
// if name is different after saving, change the route // if name is different after saving, change the route
this.form.on('submit', async (params) => { this.form.on('submit', async (params) => {
let route = frappe.router.get_route(); let route = frappe.router.get_route();
if (this.form.doc.name && !(route && route[2] === this.form.doc.name)) { if (this.form.doc.name && !(route && route[2] === this.form.doc.name)) {
await frappe.router.setRoute('edit', this.form.doc.doctype, this.form.doc.name); await frappe.router.setRoute('edit', this.form.doc.doctype, this.form.doc.name);
this.form.showAlert('Added', 'success'); this.form.showAlert('Added', 'success');
} }
}); });
this.form.on('delete', async (params) => { this.form.on('delete', async (params) => {
await frappe.router.setRoute('list', this.form.doctype); await frappe.router.setRoute('list', this.form.doctype);
}); });
} }
async showDoc(doctype, name) { async showDoc(doctype, name) {
try { try {
await this.form.setDoc(doctype, name); await this.form.setDoc(doctype, name);
this.setActiveListRow(doctype, name); this.setActiveListRow(doctype, name);
} catch (e) { } catch (e) {
this.renderError(e.status_code, e.message); this.renderError(e.status_code, e.message);
} }
} }
setActiveListRow(doctype, name) { setActiveListRow(doctype, name) {
let activeListRow = document.querySelector('.list-page .list-body .list-row.active'); let activeListRow = document.querySelector('.list-page .list-body .list-row.active');
if (activeListRow) { if (activeListRow) {
activeListRow.classList.remove('active'); activeListRow.classList.remove('active');
} }
let myListRow = document.querySelector(`.list-body[data-doctype="${doctype}"] .list-row[data-name="${name}"]`); let myListRow = document.querySelector(`.list-body[data-doctype="${doctype}"] .list-row[data-name="${name}"]`);
if (myListRow) { if (myListRow) {
myListRow.classList.add('active'); myListRow.classList.add('active');
} }
} }
} }

View File

@ -3,26 +3,26 @@ const Page = require('frappejs/client/view/page');
const view = require('frappejs/client/view'); const view = require('frappejs/client/view');
module.exports = class ListPage extends Page { module.exports = class ListPage extends Page {
constructor(doctype) { constructor(doctype) {
let meta = frappe.getMeta(doctype); let meta = frappe.getMeta(doctype);
// if center column is present, list does not have its route // if center column is present, list does not have its route
const hasRoute = frappe.desk.center ? false : true; const hasRoute = frappe.desk.center ? false : true;
super({ super({
title: frappe._("List: {0}", meta.name), title: frappe._("List: {0}", meta.name),
parent: hasRoute ? frappe.desk.body : frappe.desk.center, parent: hasRoute ? frappe.desk.body : frappe.desk.center,
hasRoute: hasRoute hasRoute: hasRoute
}); });
this.list = new (view.geListClass(doctype))({ this.list = new (view.geListClass(doctype))({
doctype: doctype, doctype: doctype,
parent: this.body, parent: this.body,
page: this page: this
}); });
this.on('show', async () => { this.on('show', async () => {
await this.list.run(); await this.list.run();
}); });
} }
} }

View File

@ -1,42 +1,42 @@
const frappe = require('frappejs'); const frappe = require('frappejs');
module.exports = class Navbar { module.exports = class Navbar {
constructor({brand_label = 'Home'} = {}) { constructor({brand_label = 'Home'} = {}) {
Object.assign(this, arguments[0]); Object.assign(this, arguments[0]);
this.items = {}; this.items = {};
this.navbar = frappe.ui.add('div', 'navbar navbar-expand-md border-bottom navbar-dark bg-dark', document.querySelector('body')); this.navbar = frappe.ui.add('div', 'navbar navbar-expand-md border-bottom navbar-dark bg-dark', document.querySelector('body'));
this.brand = frappe.ui.add('a', 'navbar-brand', this.navbar); this.brand = frappe.ui.add('a', 'navbar-brand', this.navbar);
this.brand.href = '#'; this.brand.href = '#';
this.brand.textContent = brand_label; this.brand.textContent = brand_label;
this.toggler = frappe.ui.add('button', 'navbar-toggler', this.navbar); this.toggler = frappe.ui.add('button', 'navbar-toggler', this.navbar);
this.toggler.setAttribute('type', 'button'); this.toggler.setAttribute('type', 'button');
this.toggler.setAttribute('data-toggle', 'collapse'); this.toggler.setAttribute('data-toggle', 'collapse');
this.toggler.setAttribute('data-target', 'desk-navbar'); this.toggler.setAttribute('data-target', 'desk-navbar');
this.toggler.innerHTML = `<span class="navbar-toggler-icon"></span>`; this.toggler.innerHTML = `<span class="navbar-toggler-icon"></span>`;
this.navbar_collapse = frappe.ui.add('div', 'collapse navbar-collapse', this.navbar); this.navbar_collapse = frappe.ui.add('div', 'collapse navbar-collapse', this.navbar);
this.navbar_collapse.setAttribute('id', 'desk-navbar'); this.navbar_collapse.setAttribute('id', 'desk-navbar');
this.nav = frappe.ui.add('ul', 'navbar-nav mr-auto', this.navbar_collapse); this.nav = frappe.ui.add('ul', 'navbar-nav mr-auto', this.navbar_collapse);
} }
addItem(label, route) { addItem(label, route) {
let item = frappe.ui.add('li', 'nav-item', this.nav); let item = frappe.ui.add('li', 'nav-item', this.nav);
item.link = frappe.ui.add('a', 'nav-link', item); item.link = frappe.ui.add('a', 'nav-link', item);
item.link.textContent = label; item.link.textContent = label;
item.link.href = route; item.link.href = route;
this.items[label] = item; this.items[label] = item;
return item; return item;
} }
add_dropdown(label) { add_dropdown(label) {
} }
add_search() { add_search() {
let form = frappe.ui.add('form', 'form-inline my-2 my-md-0', this.nav); let form = frappe.ui.add('form', 'form-inline my-2 my-md-0', this.nav);
} }
} }

View File

@ -1,5 +1,5 @@
const common = require('frappejs/common'); const common = require('frappejs/common');
const RESTClient = require('frappejs/backends/rest_client'); const HTTPClient = require('frappejs/backends/http');
const frappe = require('frappejs'); const frappe = require('frappejs');
frappe.ui = require('./ui'); frappe.ui = require('./ui');
const Desk = require('./desk'); const Desk = require('./desk');
@ -13,7 +13,9 @@ module.exports = {
frappe.registerModels(require('../models')); frappe.registerModels(require('../models'));
frappe.fetch = window.fetch.bind(); frappe.fetch = window.fetch.bind();
frappe.db = await new RESTClient({server: server}); frappe.db = await new HTTPClient({server: server});
this.socket = io.connect('http://localhost:8000'); // eslint-disable-line
frappe.db.bindSocketClient(this.socket);
frappe.flags.cache_docs = true; frappe.flags.cache_docs = true;

View File

@ -1,40 +1,40 @@
module.exports = { module.exports = {
bindKey(element, key, listener) { bindKey(element, key, listener) {
element.addEventListener('keydown', (e) => { element.addEventListener('keydown', (e) => {
if (key === this.getKey(e)) { if (key === this.getKey(e)) {
listener(e); listener(e);
} }
}) })
}, },
getKey(e) { getKey(e) {
var keycode = e.keyCode || e.which; var keycode = e.keyCode || e.which;
var key = this.keyMap[keycode] || String.fromCharCode(keycode); var key = this.keyMap[keycode] || String.fromCharCode(keycode);
if(e.ctrlKey || e.metaKey) { if(e.ctrlKey || e.metaKey) {
// add ctrl+ the key // add ctrl+ the key
key = 'ctrl+' + key; key = 'ctrl+' + key;
} }
if(e.shiftKey) { if(e.shiftKey) {
// add ctrl+ the key // add ctrl+ the key
key = 'shift+' + key; key = 'shift+' + key;
} }
return key.toLowerCase(); return key.toLowerCase();
}, },
keyMap: { keyMap: {
8: 'backspace', 8: 'backspace',
9: 'tab', 9: 'tab',
13: 'enter', 13: 'enter',
16: 'shift', 16: 'shift',
17: 'ctrl', 17: 'ctrl',
91: 'meta', 91: 'meta',
18: 'alt', 18: 'alt',
27: 'escape', 27: 'escape',
37: 'left', 37: 'left',
39: 'right', 39: 'right',
38: 'up', 38: 'up',
40: 'down', 40: 'down',
32: 'space' 32: 'space'
}, },
} }

View File

@ -154,6 +154,9 @@ class TableControl extends BaseControl {
} }
checkValidity() { checkValidity() {
if (!this.datatable) {
return true;
}
let data = this.getTableData(); let data = this.getTableData();
for (let rowIndex=0; rowIndex < data.length; rowIndex++) { for (let rowIndex=0; rowIndex < data.length; rowIndex++) {
let row = data[rowIndex]; let row = data[rowIndex];

View File

@ -12,6 +12,14 @@ module.exports = class BaseList {
this.body = null; this.body = null;
this.rows = []; this.rows = [];
this.data = []; this.data = [];
frappe.db.on(`change:${this.doctype}`, (params) => {
this.dirty = true;
});
setInterval(() => {
if (this.dirty) this.refresh();
}, 500);
} }
async refresh() { async refresh() {
@ -20,6 +28,7 @@ module.exports = class BaseList {
async run() { async run() {
this.makeBody(); this.makeBody();
this.dirty = false;
let data = await this.getData(); let data = await this.getData();

View File

@ -3,12 +3,14 @@ module.exports = {
output: { output: {
file: './dist/js/bundle.js', file: './dist/js/bundle.js',
format: 'iife', format: 'iife',
name: 'desk' name: 'desk',
globals: ['io']
}, },
plugins: [ plugins: [
require('rollup-plugin-commonjs')(), require('rollup-plugin-commonjs')(),
require('rollup-plugin-json')(), require('rollup-plugin-json')(),
require('rollup-plugin-node-resolve')(), require('rollup-plugin-node-resolve')({
require('rollup-plugin-node-builtins')() preferBuiltins: true
] })
} ],
}

View File

@ -94,7 +94,11 @@ module.exports = {
for (let field of this.getMeta(doc.doctype).getValidFields()) { for (let field of this.getMeta(doc.doctype).getValidFields()) {
if (field.fieldname === 'name') continue; if (field.fieldname === 'name') continue;
if (field.fieldtype === 'Table') { if (field.fieldtype === 'Table') {
newDoc[field.fieldname] = (doc[field.fieldname] || []).map(d => Object.assign({}, d)); newDoc[field.fieldname] = (doc[field.fieldname] || []).map(d => {
let newd = Object.assign({}, d);
newd.name = '';
return newd;
});
} else { } else {
newDoc[field.fieldname] = doc[field.fieldname]; newDoc[field.fieldname] = doc[field.fieldname];
} }

View File

@ -1,45 +1,25 @@
const fs = require('fs'); const fs = require('fs');
const utils = require('frappejs/utils');
module.exports = { module.exports = {
make_model_files(name) { make_model_files(name) {
// [doctype].json // [doctype].json
fs.mkdirSync(`./models/doctype/${utils.slug(name)}`); fs.mkdirSync(`./models/doctype/${name}`);
fs.writeFileSync(`./models/doctype/${utils.slug(name)}/${utils.slug(name)}.json`, `{ fs.writeFileSync(`./models/doctype/${name}/${name}.js`, `{
"name": "${name}", name: "${name}",
"doctype": "DocType", doctype: "DocType",
"isSingle": 0, isSingle: 0,
"isChild": 0, isChild: 0,
"keywordFields": [], keywordFields: [],
"fields": [ fields: [
{ {
"fieldname": "name", fieldname: "name",
"label": "Name", label: "Name",
"fieldtype": "Data", fieldtype: "Data",
"required": 1 required: 1
} }
] ]
}`); }`);
// [doctype].js }
let thinname = name.replace(/ /g, '');
fs.writeFileSync(`./models/doctype/${utils.slug(name)}/${utils.slug(name)}.js`, `const BaseMeta = require('frappejs/model/meta');
const BaseDocument = require('frappejs/model/document');
class ${thinname}Meta extends BaseMeta {
setupMeta() {
Object.assign(this, require('./${utils.slug(name)}.json'));
}
}
class ${thinname} extends BaseDocument {
}
module.exports = {
Document: ${thinname},
Meta: ${thinname}Meta
};`);
}
} }

View File

@ -12,16 +12,22 @@
"awesomplete": "^1.1.2", "awesomplete": "^1.1.2",
"body-parser": "^1.18.2", "body-parser": "^1.18.2",
"bootstrap": "^4.0.0", "bootstrap": "^4.0.0",
"bufferutil": "^3.0.3",
"clusterize.js": "^0.18.0", "clusterize.js": "^0.18.0",
"commander": "^2.13.0", "commander": "^2.13.0",
"debug": "^3.1.0",
"express": "^4.16.2", "express": "^4.16.2",
"flatpickr": "^4.3.2", "flatpickr": "^4.3.2",
"jquery": "^3.3.1", "jquery": "^3.3.1",
"mysql": "^2.15.0", "mysql": "^2.15.0",
"node-fetch": "^1.7.3", "node-fetch": "^1.7.3",
"popper.js": "^1.12.9", "popper.js": "^1.12.9",
"rollup-plugin-ignore": "^1.0.3",
"socket.io": "^2.0.4",
"socket.io-client": "^2.0.4",
"sortablejs": "^1.7.0", "sortablejs": "^1.7.0",
"sqlite3": "^3.1.13", "sqlite3": "^3.1.13",
"utf-8-validate": "^4.0.0",
"walk": "^2.3.9" "walk": "^2.3.9"
}, },
"repository": { "repository": {
@ -48,6 +54,7 @@
"rollup-plugin-commonjs": "^8.3.0", "rollup-plugin-commonjs": "^8.3.0",
"rollup-plugin-json": "^2.3.0", "rollup-plugin-json": "^2.3.0",
"rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-builtins": "^2.1.2",
"rollup-plugin-node-globals": "^1.1.0",
"rollup-plugin-node-resolve": "^3.0.2", "rollup-plugin-node-resolve": "^3.0.2",
"rollup-plugin-postcss": "^1.2.7", "rollup-plugin-postcss": "^1.2.7",
"rollup-plugin-sass": "^0.5.3" "rollup-plugin-sass": "^0.5.3"

View File

@ -4,6 +4,8 @@ backends.sqlite = require('frappejs/backends/sqlite');
const express = require('express'); const express = require('express');
const app = express(); const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const frappe = require('frappejs'); const frappe = require('frappejs');
const rest_api = require('./rest_api'); const rest_api = require('./rest_api');
const frappeModels = require('frappejs/models'); const frappeModels = require('frappejs/models');
@ -26,12 +28,18 @@ module.exports = {
app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static('./')); app.use(express.static('./'));
// socketio
io.on('connection', function (socket) {
frappe.db.bindSocketServer(socket);
});
// routes // routes
rest_api.setup(app); rest_api.setup(app);
// listen // listen
frappe.app = app; frappe.app = app;
frappe.server = app.listen(frappe.config.port); frappe.server = server;
server.listen(frappe.config.port);
}, },
async init() { async init() {

View File

@ -1,10 +1,9 @@
const assert = require('assert'); const assert = require('assert');
const frappe = require('frappejs'); const frappe = require('frappejs');
const fetch = require('node-fetch'); const fetch = require('node-fetch');
const helpers = require('./helpers');
const { spawn } = require('child_process'); const { spawn } = require('child_process');
const process = require('process'); const process = require('process');
const RESTClient = require('frappejs/backends/rest_client') const HTTPClient = require('frappejs/backends/http')
// create a copy of frappe // create a copy of frappe
@ -19,7 +18,7 @@ describe('REST', () => {
await frappe.init(); await frappe.init();
await frappe.login(); await frappe.login();
frappe.db = await new RESTClient({server: 'localhost:8000'}); frappe.db = await new HTTPClient({server: 'localhost:8000'});
frappe.fetch = fetch; frappe.fetch = fetch;
// wait for server to start // wait for server to start

View File

@ -1,20 +1,39 @@
module.exports = class Observable { module.exports = class Observable {
on(event, listener) { on(event, listener) {
this._addListener('_listeners', event, listener); this._addListener('_listeners', event, listener);
if (this._socketClient) {
this._socketClient.on(event, listener);
}
} }
once(event, listener) { once(event, listener) {
this._addListener('_onceListeners', event, listener); this._addListener('_onceListeners', event, listener);
} }
bindSocketClient(socket) {
// also send events with sockets
this._socketClient = socket;
}
bindSocketServer(socket) {
// also send events with sockets
this._socketServer = socket;
}
async trigger(event, params) { async trigger(event, params) {
await this._triggerEvent('_listeners', event, params); await this._triggerEvent('_listeners', event, params);
await this._triggerEvent('_onceListeners', event, params); await this._triggerEvent('_onceListeners', event, params);
if (this._socketServer) {
this._socketServer.emit(event, params);
}
// clear once-listeners // clear once-listeners
if (this._onceListeners && this._onceListeners[event]) { if (this._onceListeners && this._onceListeners[event]) {
delete this._onceListeners[event]; delete this._onceListeners[event];
} }
} }
_addListener(name, event, listener) { _addListener(name, event, listener) {

378
yarn.lock
View File

@ -29,10 +29,18 @@ acorn@^3.0.4:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
acorn@^4.0.1:
version "4.0.13"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
acorn@^5.2.1: acorn@^5.2.1:
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822"
after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
ajv-keywords@^2.1.0: ajv-keywords@^2.1.0:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
@ -145,6 +153,10 @@ array-unique@^0.2.1:
version "0.2.1" version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
arraybuffer.slice@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
arrify@^1.0.0: arrify@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@ -177,6 +189,10 @@ async-foreach@^0.1.3:
version "0.1.3" version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
asynckit@^0.4.0: asynckit@^0.4.0:
version "0.4.0" version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@ -234,6 +250,10 @@ babel-runtime@^6.23.0:
core-js "^2.4.0" core-js "^2.4.0"
regenerator-runtime "^0.11.0" regenerator-runtime "^0.11.0"
backo2@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
balanced-match@0.1.0: balanced-match@0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a"
@ -246,12 +266,26 @@ balanced-match@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
base64id@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
bcrypt-pbkdf@^1.0.0: bcrypt-pbkdf@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
dependencies: dependencies:
tweetnacl "^0.14.3" tweetnacl "^0.14.3"
better-assert@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
dependencies:
callsite "1.0.0"
big.js@^3.1.3: big.js@^3.1.3:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
@ -264,12 +298,26 @@ binary-extensions@^1.0.0:
version "1.11.0" version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
bindings@~1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
bl@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
dependencies:
readable-stream "^2.0.5"
bl@~0.8.1: bl@~0.8.1:
version "0.8.2" version "0.8.2"
resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e"
dependencies: dependencies:
readable-stream "~1.0.26" readable-stream "~1.0.26"
blob@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
block-stream@*: block-stream@*:
version "0.0.9" version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@ -420,7 +468,7 @@ browserslist@^2.11.1:
caniuse-lite "^1.0.30000792" caniuse-lite "^1.0.30000792"
electron-to-chromium "^1.3.30" electron-to-chromium "^1.3.30"
buffer-es6@^4.9.2: buffer-es6@^4.9.1, buffer-es6@^4.9.2:
version "4.9.3" version "4.9.3"
resolved "https://registry.yarnpkg.com/buffer-es6/-/buffer-es6-4.9.3.tgz#f26347b82df76fd37e18bcb5288c4970cfd5c404" resolved "https://registry.yarnpkg.com/buffer-es6/-/buffer-es6-4.9.3.tgz#f26347b82df76fd37e18bcb5288c4970cfd5c404"
@ -428,6 +476,14 @@ buffer-xor@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
bufferutil@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.3.tgz#ce67caefde2282591e399528467fe623f68f4bd5"
dependencies:
bindings "~1.3.0"
nan "~2.7.0"
prebuild-install "~2.3.0"
builtin-modules@^1.0.0, builtin-modules@^1.1.0: builtin-modules@^1.0.0, builtin-modules@^1.1.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@ -442,6 +498,10 @@ caller-path@^0.1.0:
dependencies: dependencies:
callsites "^0.2.0" callsites "^0.2.0"
callsite@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
callsites@^0.2.0: callsites@^0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
@ -535,6 +595,10 @@ chokidar@^1.7.0:
optionalDependencies: optionalDependencies:
fsevents "^1.0.0" fsevents "^1.0.0"
chownr@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
@ -654,6 +718,18 @@ commander@^2.9.0:
version "2.12.2" version "2.12.2"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
component-emitter@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
component-inherit@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
concat-map@0.0.1: concat-map@0.0.1:
version "0.0.1" version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@ -895,13 +971,13 @@ dashdash@^1.12.0:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
debug@2.6.9, debug@^2.2.0, debug@^2.6.8: debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6:
version "2.6.9" version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
dependencies: dependencies:
ms "2.0.0" ms "2.0.0"
debug@3.1.0, debug@^3.1.0: debug@3.1.0, debug@^3.1.0, debug@~3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies: dependencies:
@ -1050,6 +1126,51 @@ encoding@^0.1.11:
dependencies: dependencies:
iconv-lite "~0.4.13" iconv-lite "~0.4.13"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
dependencies:
once "^1.4.0"
engine.io-client@~3.1.0:
version "3.1.5"
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.5.tgz#85de17666560327ef1817978f6e3f8101ded2c47"
dependencies:
component-emitter "1.2.1"
component-inherit "0.0.3"
debug "~3.1.0"
engine.io-parser "~2.1.1"
has-cors "1.1.0"
indexof "0.0.1"
parseqs "0.0.5"
parseuri "0.0.5"
ws "~3.3.1"
xmlhttprequest-ssl "~1.5.4"
yeast "0.1.2"
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
dependencies:
after "0.8.2"
arraybuffer.slice "~0.0.7"
base64-arraybuffer "0.1.5"
blob "0.0.4"
has-binary2 "~1.0.2"
engine.io@~3.1.0:
version "3.1.5"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845"
dependencies:
accepts "~1.3.4"
base64id "1.0.0"
cookie "0.3.1"
debug "~3.1.0"
engine.io-parser "~2.1.0"
ws "~3.3.1"
optionalDependencies:
uws "~9.14.0"
errno@^0.1.1, errno@~0.1.1: errno@^0.1.1, errno@~0.1.1:
version "0.1.6" version "0.1.6"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026"
@ -1155,6 +1276,10 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
estree-walker@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"
estree-walker@^0.3.0: estree-walker@^0.3.0:
version "0.3.1" version "0.3.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa"
@ -1214,6 +1339,10 @@ expand-range@^1.8.1:
dependencies: dependencies:
fill-range "^2.1.0" fill-range "^2.1.0"
expand-template@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc"
express@^4.16.2: express@^4.16.2:
version "4.16.2" version "4.16.2"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
@ -1517,6 +1646,10 @@ getpass@^0.1.1:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
glob-base@^0.3.0: glob-base@^0.3.0:
version "0.3.0" version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@ -1651,6 +1784,16 @@ has-ansi@^2.0.0:
dependencies: dependencies:
ansi-regex "^2.0.0" ansi-regex "^2.0.0"
has-binary2@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
dependencies:
isarray "2.0.1"
has-cors@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
has-flag@^1.0.0: has-flag@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
@ -1802,7 +1945,7 @@ indexes-of@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
indexof@~0.0.1: indexof@0.0.1, indexof@~0.0.1:
version "0.0.1" version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
@ -2038,6 +2181,10 @@ isarray@1.0.0, isarray@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
isarray@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
isbuffer@~0.0.0: isbuffer@~0.0.0:
version "0.0.0" version "0.0.0"
resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b" resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b"
@ -2327,6 +2474,12 @@ macaddress@^0.2.8:
version "0.2.8" version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
magic-string@^0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a"
dependencies:
vlq "^0.2.1"
magic-string@^0.22.4: magic-string@^0.22.4:
version "0.22.4" version "0.22.4"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff"
@ -2488,7 +2641,7 @@ mysql@^2.15.0:
safe-buffer "5.1.1" safe-buffer "5.1.1"
sqlstring "2.3.0" sqlstring "2.3.0"
nan@^2.3.0, nan@^2.3.2: nan@^2.3.0, nan@^2.3.2, nan@~2.8.0:
version "2.8.0" version "2.8.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
@ -2504,6 +2657,12 @@ negotiator@0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
node-abi@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.2.0.tgz#e802ac7a2408e2c0593fb3176ffdf8a99a9b4dec"
dependencies:
semver "^5.4.1"
node-fetch@^1.7.3: node-fetch@^1.7.3:
version "1.7.3" version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@ -2582,6 +2741,10 @@ nodemon@^1.14.7:
undefsafe "0.0.3" undefsafe "0.0.3"
update-notifier "^2.3.0" update-notifier "^2.3.0"
noop-logger@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
"nopt@2 || 3": "nopt@2 || 3":
version "3.0.6" version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
@ -2635,7 +2798,7 @@ npm-run-path@^2.0.0:
dependencies: dependencies:
path-key "^2.0.0" path-key "^2.0.0"
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2:
version "4.1.2" version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
dependencies: dependencies:
@ -2660,6 +2823,10 @@ object-assign@^4.0.1, object-assign@^4.1.0:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
object-component@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
object-keys@~0.2.0: object-keys@~0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67"
@ -2689,7 +2856,7 @@ on-finished@~2.3.0:
dependencies: dependencies:
ee-first "1.1.1" ee-first "1.1.1"
once@^1.3.0, once@^1.3.3: once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies: dependencies:
@ -2771,6 +2938,18 @@ parse-json@^2.2.0:
dependencies: dependencies:
error-ex "^1.2.0" error-ex "^1.2.0"
parseqs@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
dependencies:
better-assert "~1.0.0"
parseuri@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
dependencies:
better-assert "~1.0.0"
parseurl@~1.3.2: parseurl@~1.3.2:
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@ -3281,6 +3460,25 @@ postcss@^6.0.11, postcss@^6.0.13, postcss@^6.0.14, postcss@^6.0.16, postcss@^6.0
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^5.1.0" supports-color "^5.1.0"
prebuild-install@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485"
dependencies:
expand-template "^1.0.2"
github-from-package "0.0.0"
minimist "^1.2.0"
mkdirp "^0.5.1"
node-abi "^2.1.1"
noop-logger "^0.1.1"
npmlog "^4.0.1"
os-homedir "^1.0.1"
pump "^1.0.1"
rc "^1.1.6"
simple-get "^1.4.2"
tar-fs "^1.13.0"
tunnel-agent "^0.6.0"
xtend "4.0.1"
precss@^2.0.0: precss@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/precss/-/precss-2.0.0.tgz#7f567e3318e06d44c8fdbf9e58452e8358bf4b71" resolved "https://registry.yarnpkg.com/precss/-/precss-2.0.0.tgz#7f567e3318e06d44c8fdbf9e58452e8358bf4b71"
@ -3314,7 +3512,7 @@ preserve@^0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
process-es6@^0.11.2: process-es6@^0.11.2, process-es6@^0.11.3:
version "0.11.6" version "0.11.6"
resolved "https://registry.yarnpkg.com/process-es6/-/process-es6-0.11.6.tgz#c6bb389f9a951f82bd4eb169600105bd2ff9c778" resolved "https://registry.yarnpkg.com/process-es6/-/process-es6-0.11.6.tgz#c6bb389f9a951f82bd4eb169600105bd2ff9c778"
@ -3322,6 +3520,10 @@ process-nextick-args@~1.0.6:
version "1.0.7" version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
progress@^2.0.0: progress@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
@ -3371,6 +3573,13 @@ public-encrypt@^4.0.0:
parse-asn1 "^5.0.0" parse-asn1 "^5.0.0"
randombytes "^2.0.1" randombytes "^2.0.1"
pump@^1.0.0, pump@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
punycode@^1.4.1: punycode@^1.4.1:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
@ -3482,6 +3691,18 @@ readable-stream@^1.0.26-4:
isarray "0.0.1" isarray "0.0.1"
string_decoder "~0.10.x" string_decoder "~0.10.x"
readable-stream@^2.0.0, readable-stream@^2.0.5:
version "2.3.4"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
readable-stream@~1.0.26, readable-stream@~1.0.26-4: readable-stream@~1.0.26, readable-stream@~1.0.26-4:
version "1.0.34" version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@ -3730,6 +3951,10 @@ rollup-plugin-commonjs@^8.3.0:
resolve "^1.4.0" resolve "^1.4.0"
rollup-pluginutils "^2.0.1" rollup-pluginutils "^2.0.1"
rollup-plugin-ignore@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/rollup-plugin-ignore/-/rollup-plugin-ignore-1.0.3.tgz#9a3caac6709e481471ce4498a48164bbc2359e3d"
rollup-plugin-json@^2.3.0: rollup-plugin-json@^2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-2.3.0.tgz#3c07a452c1b5391be28006fbfff3644056ce0add" resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-2.3.0.tgz#3c07a452c1b5391be28006fbfff3644056ce0add"
@ -3745,6 +3970,17 @@ rollup-plugin-node-builtins@^2.1.2:
crypto-browserify "^3.11.0" crypto-browserify "^3.11.0"
process-es6 "^0.11.2" process-es6 "^0.11.2"
rollup-plugin-node-globals@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.1.0.tgz#7efd8d611d132737829e804e9f51f50962af451f"
dependencies:
acorn "^4.0.1"
buffer-es6 "^4.9.1"
estree-walker "^0.2.1"
magic-string "^0.16.0"
process-es6 "^0.11.3"
rollup-pluginutils "^1.5.2"
rollup-plugin-node-resolve@^3.0.2: rollup-plugin-node-resolve@^3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.2.tgz#38babc12fd404cc2ba1ff68648fe43fa3ffee6b0" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.2.tgz#38babc12fd404cc2ba1ff68648fe43fa3ffee6b0"
@ -3786,6 +4022,13 @@ rollup-plugin-sass@^0.5.3:
estree-walker "^0.3.0" estree-walker "^0.3.0"
micromatch "^2.3.11" micromatch "^2.3.11"
rollup-pluginutils@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
dependencies:
estree-walker "^0.2.1"
minimatch "^3.0.2"
rollup@^0.55.1: rollup@^0.55.1:
version "0.55.1" version "0.55.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.55.1.tgz#baf4f23abe3014b29e56dea7d72d9946e56ac7dd" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.55.1.tgz#baf4f23abe3014b29e56dea7d72d9946e56ac7dd"
@ -3840,6 +4083,10 @@ semver-diff@^2.0.0:
version "5.4.1" version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
semver@^5.4.1:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
semver@~2.3.1: semver@~2.3.1:
version "2.3.2" version "2.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52" resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52"
@ -3912,6 +4159,14 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
simple-get@^1.4.2:
version "1.4.3"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb"
dependencies:
once "^1.3.1"
unzip-response "^1.0.0"
xtend "^4.0.0"
slice-ansi@1.0.0: slice-ansi@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
@ -3930,6 +4185,47 @@ sntp@2.x.x:
dependencies: dependencies:
hoek "4.x.x" hoek "4.x.x"
socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
socket.io-client@2.0.4, socket.io-client@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e"
dependencies:
backo2 "1.0.2"
base64-arraybuffer "0.1.5"
component-bind "1.0.0"
component-emitter "1.2.1"
debug "~2.6.4"
engine.io-client "~3.1.0"
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.1.1"
to-array "0.1.4"
socket.io-parser@~3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.2.tgz#dbc2282151fc4faebbe40aeedc0772eba619f7f2"
dependencies:
component-emitter "1.2.1"
debug "~2.6.4"
has-binary2 "~1.0.2"
isarray "2.0.1"
socket.io@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014"
dependencies:
debug "~2.6.6"
engine.io "~3.1.0"
socket.io-adapter "~1.1.0"
socket.io-client "2.0.4"
socket.io-parser "~3.1.1"
sort-keys@^1.0.0: sort-keys@^1.0.0:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
@ -4157,6 +4453,15 @@ table@^4.0.1:
slice-ansi "1.0.0" slice-ansi "1.0.0"
string-width "^2.1.1" string-width "^2.1.1"
tar-fs@^1.13.0:
version "1.16.0"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.0.tgz#e877a25acbcc51d8c790da1c57c9cf439817b896"
dependencies:
chownr "^1.0.1"
mkdirp "^0.5.1"
pump "^1.0.0"
tar-stream "^1.1.2"
tar-pack@^3.4.0: tar-pack@^3.4.0:
version "3.4.1" version "3.4.1"
resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
@ -4170,6 +4475,15 @@ tar-pack@^3.4.0:
tar "^2.2.1" tar "^2.2.1"
uid-number "^0.0.6" uid-number "^0.0.6"
tar-stream@^1.1.2:
version "1.5.5"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
dependencies:
bl "^1.0.0"
end-of-stream "^1.0.0"
readable-stream "^2.0.0"
xtend "^4.0.0"
tar@^2.0.0, tar@^2.2.1: tar@^2.0.0, tar@^2.2.1:
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@ -4206,6 +4520,10 @@ tmp@^0.0.33:
dependencies: dependencies:
os-tmpdir "~1.0.2" os-tmpdir "~1.0.2"
to-array@0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
touch@^3.1.0: touch@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
@ -4267,6 +4585,10 @@ uid-number@^0.0.6:
version "0.0.6" version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
ultron@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
undefsafe@0.0.3: undefsafe@0.0.3:
version "0.0.3" version "0.0.3"
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f"
@ -4299,6 +4621,10 @@ unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
unzip-response@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
unzip-response@^2.0.1: unzip-response@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
@ -4323,6 +4649,14 @@ url-parse-lax@^1.0.0:
dependencies: dependencies:
prepend-http "^1.0.1" prepend-http "^1.0.1"
utf-8-validate@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-4.0.0.tgz#93812f447b6fd11a3dad4302d5870830cae8470a"
dependencies:
bindings "~1.3.0"
nan "~2.8.0"
prebuild-install "~2.3.0"
util-deprecate@~1.0.1: util-deprecate@~1.0.1:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@ -4335,6 +4669,10 @@ uuid@^3.0.0, uuid@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
uws@~9.14.0:
version "9.14.0"
resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95"
validate-npm-package-license@^3.0.1: validate-npm-package-license@^3.0.1:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
@ -4423,18 +4761,30 @@ write@^0.2.1:
dependencies: dependencies:
mkdirp "^0.5.1" mkdirp "^0.5.1"
ws@~3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
dependencies:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
ultron "~1.1.0"
xdg-basedir@^3.0.0: xdg-basedir@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
xmlhttprequest-ssl@~1.5.4:
version "1.5.5"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
xtend@4.0.1, xtend@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
xtend@^2.2.0: xtend@^2.2.0:
version "2.2.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.2.0.tgz#eef6b1f198c1c8deafad8b1765a04dad4a01c5a9" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.2.0.tgz#eef6b1f198c1c8deafad8b1765a04dad4a01c5a9"
xtend@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
xtend@~2.0.4: xtend@~2.0.4:
version "2.0.6" version "2.0.6"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee"
@ -4483,3 +4833,7 @@ yargs@^7.0.0:
which-module "^1.0.0" which-module "^1.0.0"
y18n "^3.2.1" y18n "^3.2.1"
yargs-parser "^5.0.0" yargs-parser "^5.0.0"
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"