mirror of
https://github.com/frappe/books.git
synced 2025-01-10 18:24:40 +00:00
commit
eb97db9deb
@ -429,7 +429,8 @@ module.exports = class Database extends Observable {
|
|||||||
|
|
||||||
initTypeMap() {
|
initTypeMap() {
|
||||||
this.typeMap = {
|
this.typeMap = {
|
||||||
'Currency': 'real'
|
'Autocomplete': 'text'
|
||||||
|
, 'Currency': 'real'
|
||||||
, 'Int': 'integer'
|
, 'Int': 'integer'
|
||||||
, 'Float': 'real'
|
, 'Float': 'real'
|
||||||
, 'Percent': 'real'
|
, 'Percent': 'real'
|
||||||
@ -448,6 +449,7 @@ module.exports = class Database extends Observable {
|
|||||||
, 'Password': 'text'
|
, 'Password': 'text'
|
||||||
, 'Select': 'text'
|
, 'Select': 'text'
|
||||||
, 'Read Only': 'text'
|
, 'Read Only': 'text'
|
||||||
|
, 'File': 'text'
|
||||||
, 'Attach': 'text'
|
, 'Attach': 'text'
|
||||||
, 'Attach Image': 'text'
|
, 'Attach Image': 'text'
|
||||||
, 'Signature': 'text'
|
, 'Signature': 'text'
|
||||||
|
@ -116,7 +116,8 @@ module.exports = class HTTPClient extends Observable {
|
|||||||
|
|
||||||
initTypeMap() {
|
initTypeMap() {
|
||||||
this.typeMap = {
|
this.typeMap = {
|
||||||
'Currency': true
|
'Autocomplete': true
|
||||||
|
, 'Currency': true
|
||||||
, 'Int': true
|
, 'Int': true
|
||||||
, 'Float': true
|
, 'Float': true
|
||||||
, 'Percent': true
|
, 'Percent': true
|
||||||
@ -135,6 +136,7 @@ module.exports = class HTTPClient extends Observable {
|
|||||||
, 'Password': true
|
, 'Password': true
|
||||||
, 'Select': true
|
, 'Select': true
|
||||||
, 'Read Only': true
|
, 'Read Only': true
|
||||||
|
, 'File': true
|
||||||
, 'Attach': true
|
, 'Attach': true
|
||||||
, 'Attach Image': true
|
, 'Attach Image': true
|
||||||
, 'Signature': true
|
, 'Signature': true
|
||||||
|
@ -178,7 +178,8 @@ module.exports = class mysqlDatabase extends Database{
|
|||||||
|
|
||||||
init_typeMap() {
|
init_typeMap() {
|
||||||
this.typeMap = {
|
this.typeMap = {
|
||||||
'Currency': 'real'
|
'Autocomplete': 'VARCHAR(140)'
|
||||||
|
, 'Currency': 'real'
|
||||||
, 'Int': 'INT'
|
, 'Int': 'INT'
|
||||||
, 'Float': 'decimal(18,6)'
|
, 'Float': 'decimal(18,6)'
|
||||||
, 'Percent': 'real'
|
, 'Percent': 'real'
|
||||||
@ -197,6 +198,7 @@ module.exports = class mysqlDatabase extends Database{
|
|||||||
, 'Password': 'varchar(140)'
|
, 'Password': 'varchar(140)'
|
||||||
, 'Select': 'VARCHAR(140)'
|
, 'Select': 'VARCHAR(140)'
|
||||||
, 'Read Only': 'varchar(140)'
|
, 'Read Only': 'varchar(140)'
|
||||||
|
, 'File': 'text'
|
||||||
, 'Attach': 'text'
|
, 'Attach': 'text'
|
||||||
, 'Attach Image': 'text'
|
, 'Attach Image': 'text'
|
||||||
, 'Signature': 'text'
|
, 'Signature': 'text'
|
||||||
|
@ -215,7 +215,8 @@ module.exports = class sqliteDatabase extends Database {
|
|||||||
|
|
||||||
initTypeMap() {
|
initTypeMap() {
|
||||||
this.typeMap = {
|
this.typeMap = {
|
||||||
'Currency': 'real'
|
'Autocomplete': 'text'
|
||||||
|
, 'Currency': 'real'
|
||||||
, 'Int': 'integer'
|
, 'Int': 'integer'
|
||||||
, 'Float': 'real'
|
, 'Float': 'real'
|
||||||
, 'Percent': 'real'
|
, 'Percent': 'real'
|
||||||
@ -234,6 +235,7 @@ module.exports = class sqliteDatabase extends Database {
|
|||||||
, 'Password': 'text'
|
, 'Password': 'text'
|
||||||
, 'Select': 'text'
|
, 'Select': 'text'
|
||||||
, 'Read Only': 'text'
|
, 'Read Only': 'text'
|
||||||
|
, 'File': 'text'
|
||||||
, 'Attach': 'text'
|
, 'Attach': 'text'
|
||||||
, 'Attach Image': 'text'
|
, 'Attach Image': 'text'
|
||||||
, 'Signature': 'text'
|
, 'Signature': 'text'
|
||||||
|
34
client/electron.js
Normal file
34
client/electron.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
const common = require('frappejs/common');
|
||||||
|
const sqlite = require('frappejs/backends/sqlite');
|
||||||
|
const frappe = require('frappejs');
|
||||||
|
frappe.ui = require('./ui');
|
||||||
|
const Desk = require('./desk');
|
||||||
|
const Observable = require('frappejs/utils/observable');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
async start({dbPath, columns = 3, models}) {
|
||||||
|
window.frappe = frappe;
|
||||||
|
frappe.isServer = true;
|
||||||
|
frappe.init();
|
||||||
|
frappe.registerLibs(common);
|
||||||
|
frappe.registerModels(require('frappejs/models'));
|
||||||
|
|
||||||
|
if (models) {
|
||||||
|
frappe.registerModels(models);
|
||||||
|
}
|
||||||
|
|
||||||
|
frappe.db = await new sqlite({ dbPath });
|
||||||
|
await frappe.db.connect();
|
||||||
|
await frappe.db.migrate();
|
||||||
|
|
||||||
|
frappe.fetch = window.fetch.bind();
|
||||||
|
|
||||||
|
frappe.docs = new Observable();
|
||||||
|
|
||||||
|
await frappe.getSingle('SystemSettings');
|
||||||
|
|
||||||
|
frappe.desk = new Desk(columns);
|
||||||
|
await frappe.login();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -11,7 +11,6 @@ module.exports = {
|
|||||||
frappe.init();
|
frappe.init();
|
||||||
frappe.registerLibs(common);
|
frappe.registerLibs(common);
|
||||||
frappe.registerModels(require('frappejs/models'), 'client');
|
frappe.registerModels(require('frappejs/models'), 'client');
|
||||||
frappe.registerModels(require('../models'), 'client');
|
|
||||||
|
|
||||||
frappe.fetch = window.fetch.bind();
|
frappe.fetch = window.fetch.bind();
|
||||||
|
|
||||||
|
@ -395,11 +395,11 @@ ul.tree-children {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-body {
|
.form-section {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-body.active {
|
.form-section.active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,3 +407,14 @@ ul.tree-children {
|
|||||||
margin: $spacer-1 $spacer-4;
|
margin: $spacer-1 $spacer-4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// File Input
|
||||||
|
|
||||||
|
input[type=file] {
|
||||||
|
width: 0.1px;
|
||||||
|
height: 0.1px;
|
||||||
|
opacity: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
@ -26,8 +26,9 @@ module.exports = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addLink(label, parent, action, unhide = true) {
|
addButton(label, parent, action, unhide = true) {
|
||||||
const link = frappe.ui.add('button', 'btn btn-sm btn-outline-secondary', parent, label);
|
const link = frappe.ui.add('button', 'btn btn-sm btn-outline-secondary', parent, label);
|
||||||
|
link.type = 'button';
|
||||||
link.addEventListener('click', action);
|
link.addEventListener('click', action);
|
||||||
if (unhide) {
|
if (unhide) {
|
||||||
parent.classList.remove('hide');
|
parent.classList.remove('hide');
|
||||||
@ -43,8 +44,12 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
activate($parent, $child, commonClass, activeClass='active', index = -1) {
|
activate($parent, $child, commonSelector, activeClass='active', index = -1) {
|
||||||
let $children = $parent.querySelectorAll(`.${commonClass}.${activeClass}`);
|
let $children = $parent.querySelectorAll(`${commonSelector}.${activeClass}`);
|
||||||
|
|
||||||
|
if (typeof $child === 'string') {
|
||||||
|
$child = $parent.querySelector($child);
|
||||||
|
}
|
||||||
|
|
||||||
this.forEachNode($children, (node, i) => {
|
this.forEachNode($children, (node, i) => {
|
||||||
if(index >= 0 && i <= index) return;
|
if(index >= 0 && i <= index) return;
|
||||||
|
25
client/view/controls/autocomplete.js
Normal file
25
client/view/controls/autocomplete.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
const BaseControl = require('./base');
|
||||||
|
const Awesomplete = require('awesomplete');
|
||||||
|
|
||||||
|
class AutocompleteControl extends BaseControl {
|
||||||
|
make() {
|
||||||
|
super.make();
|
||||||
|
this.input.setAttribute('type', 'text');
|
||||||
|
this.setupAwesomplete();
|
||||||
|
}
|
||||||
|
|
||||||
|
setupAwesomplete() {
|
||||||
|
this.awesomplete = new Awesomplete(this.input, {
|
||||||
|
minChars: 0,
|
||||||
|
maxItems: 99
|
||||||
|
});
|
||||||
|
|
||||||
|
// rebuild the list on input
|
||||||
|
this.input.addEventListener('input', async (event) => {
|
||||||
|
let list = await this.getList();
|
||||||
|
this.awesomplete.list = list;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = AutocompleteControl;
|
52
client/view/controls/file.js
Normal file
52
client/view/controls/file.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
const frappe = require('frappejs');
|
||||||
|
const BaseControl = require('./base');
|
||||||
|
|
||||||
|
class FileControl extends BaseControl {
|
||||||
|
make() {
|
||||||
|
super.make();
|
||||||
|
this.fileButton = frappe.ui.create('button', {
|
||||||
|
className: 'btn btn-outline-secondary btn-block',
|
||||||
|
inside: this.getInputParent(),
|
||||||
|
textContent: 'Choose a file...',
|
||||||
|
onclick: () => {
|
||||||
|
this.input.click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.input.setAttribute('type', 'file');
|
||||||
|
|
||||||
|
if (this.directory) {
|
||||||
|
this.input.setAttribute('webkitdirectory', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.allowMultiple) {
|
||||||
|
this.input.setAttribute('multiple', '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async handleChange() {
|
||||||
|
await super.handleChange();
|
||||||
|
this.setDocValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
getInputValue() {
|
||||||
|
return this.input.files;
|
||||||
|
}
|
||||||
|
|
||||||
|
setInputValue(files) {
|
||||||
|
|
||||||
|
let label;
|
||||||
|
if (!files || files.length === 0) {
|
||||||
|
label = 'Choose a file...'
|
||||||
|
} else if (files.length === 1) {
|
||||||
|
label = files[0].name;
|
||||||
|
} else {
|
||||||
|
label = `${files.length} files selected`;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.fileButton.textContent = label;
|
||||||
|
this.input.files = files;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = FileControl;
|
@ -1,4 +1,5 @@
|
|||||||
const controlClasses = {
|
const controlClasses = {
|
||||||
|
Autocomplete: require('./autocomplete'),
|
||||||
Check: require('./check'),
|
Check: require('./check'),
|
||||||
Code: require('./code'),
|
Code: require('./code'),
|
||||||
Data: require('./data'),
|
Data: require('./data'),
|
||||||
@ -6,6 +7,7 @@ const controlClasses = {
|
|||||||
DynamicLink: require('./dynamicLink'),
|
DynamicLink: require('./dynamicLink'),
|
||||||
Currency: require('./currency'),
|
Currency: require('./currency'),
|
||||||
Float: require('./float'),
|
Float: require('./float'),
|
||||||
|
File: require('./file'),
|
||||||
Int: require('./int'),
|
Int: require('./int'),
|
||||||
Link: require('./link'),
|
Link: require('./link'),
|
||||||
Password: require('./password'),
|
Password: require('./password'),
|
||||||
|
@ -209,7 +209,7 @@ module.exports = class BaseForm extends Observable {
|
|||||||
this.container.clearLinks();
|
this.container.clearLinks();
|
||||||
for(let link of links) {
|
for(let link of links) {
|
||||||
// make the link
|
// make the link
|
||||||
utils.addLink(link.label, this.container.linksElement, () => {
|
utils.addButton(link.label, this.container.linksElement, () => {
|
||||||
let options = link.action(this);
|
let options = link.action(this);
|
||||||
|
|
||||||
if (options) {
|
if (options) {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
|
const frappe = require('frappejs');
|
||||||
const controls = require('./controls');
|
const controls = require('./controls');
|
||||||
const Observable = require('frappejs/utils/observable');
|
const Observable = require('frappejs/utils/observable');
|
||||||
|
|
||||||
module.exports = class FormLayout extends Observable {
|
module.exports = class FormLayout extends Observable {
|
||||||
constructor({fields, layout, events = []}) {
|
constructor({fields, doc, layout, events = []}) {
|
||||||
super();
|
super();
|
||||||
Object.assign(this, arguments[0]);
|
Object.assign(this, arguments[0]);
|
||||||
this.controls = {};
|
this.controls = {};
|
||||||
@ -10,21 +11,14 @@ module.exports = class FormLayout extends Observable {
|
|||||||
this.sections = [];
|
this.sections = [];
|
||||||
this.links = [];
|
this.links = [];
|
||||||
|
|
||||||
this.doc = {
|
|
||||||
get(fieldname) {
|
|
||||||
return this[fieldname]
|
|
||||||
},
|
|
||||||
|
|
||||||
set(fieldname, value) {
|
|
||||||
this[fieldname] = value;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.form = document.createElement('div');
|
this.form = document.createElement('div');
|
||||||
this.form.classList.add('form-body');
|
this.form.classList.add('form-body');
|
||||||
|
|
||||||
this.makeLayout();
|
this.makeLayout();
|
||||||
this.bindEvents(this.doc);
|
|
||||||
|
if (doc) {
|
||||||
|
this.bindEvents(doc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
makeLayout() {
|
makeLayout() {
|
||||||
@ -39,16 +33,24 @@ module.exports = class FormLayout extends Observable {
|
|||||||
|
|
||||||
makeSection(section) {
|
makeSection(section) {
|
||||||
const sectionElement = frappe.ui.add('div', 'form-section', this.form);
|
const sectionElement = frappe.ui.add('div', 'form-section', this.form);
|
||||||
|
const sectionHead = frappe.ui.add('div', 'form-section-head', sectionElement);
|
||||||
|
const sectionBody = frappe.ui.add('div', 'form-section-body', sectionElement);
|
||||||
|
|
||||||
|
if (section.title) {
|
||||||
|
const head = frappe.ui.add('h6', 'uppercase', sectionHead);
|
||||||
|
head.textContent = section.title;
|
||||||
|
}
|
||||||
|
|
||||||
if (section.columns) {
|
if (section.columns) {
|
||||||
sectionElement.classList.add('row');
|
sectionBody.classList.add('row');
|
||||||
for (let column of section.columns) {
|
for (let column of section.columns) {
|
||||||
let columnElement = frappe.ui.add('div', 'col', sectionElement);
|
let columnElement = frappe.ui.add('div', 'col', sectionBody);
|
||||||
this.makeControls(this.getFieldsFromLayoutElement(column.fields), columnElement);
|
this.makeControls(this.getFieldsFromLayoutElement(column.fields), columnElement);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.makeControls(this.getFieldsFromLayoutElement(section.fields), sectionElement);
|
this.makeControls(this.getFieldsFromLayoutElement(section.fields), sectionBody);
|
||||||
}
|
}
|
||||||
this.sections.push(sectionElement);
|
this.sections.push(sectionBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
getFieldsFromLayoutElement(fields) {
|
getFieldsFromLayoutElement(fields) {
|
||||||
|
10317
package-lock.json
generated
10317
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "frappejs",
|
"name": "frappejs",
|
||||||
"version": "0.0.1",
|
"version": "0.0.5",
|
||||||
"description": "Frappe.js",
|
"description": "Frappe.js",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"bin": "cli.js",
|
"bin": "cli.js",
|
||||||
@ -16,11 +16,13 @@
|
|||||||
"clusterize.js": "^0.18.0",
|
"clusterize.js": "^0.18.0",
|
||||||
"codemirror": "^5.35.0",
|
"codemirror": "^5.35.0",
|
||||||
"commander": "^2.13.0",
|
"commander": "^2.13.0",
|
||||||
"eslint": "^4.9.0",
|
"eslint": "^4.19.1",
|
||||||
"express": "^4.16.2",
|
"express": "^4.16.2",
|
||||||
"flatpickr": "^4.3.2",
|
"flatpickr": "^4.3.2",
|
||||||
"frappe-datatable": "^0.0.3",
|
"frappejs": "../frappejs",
|
||||||
|
"frappe-datatable": "frappe/datatable",
|
||||||
"jquery": "^3.3.1",
|
"jquery": "^3.3.1",
|
||||||
|
"mkdirp": "^0.5.1",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
"moment": "^2.20.1",
|
"moment": "^2.20.1",
|
||||||
"mysql": "^2.15.0",
|
"mysql": "^2.15.0",
|
||||||
@ -31,6 +33,7 @@
|
|||||||
"octicons": "^7.2.0",
|
"octicons": "^7.2.0",
|
||||||
"popper.js": "^1.12.9",
|
"popper.js": "^1.12.9",
|
||||||
"precss": "^2.0.0",
|
"precss": "^2.0.0",
|
||||||
|
"puppeteer": "^1.2.0",
|
||||||
"rollup": "^0.55.1",
|
"rollup": "^0.55.1",
|
||||||
"rollup-plugin-commonjs": "^8.3.0",
|
"rollup-plugin-commonjs": "^8.3.0",
|
||||||
"rollup-plugin-json": "^2.3.0",
|
"rollup-plugin-json": "^2.3.0",
|
||||||
|
12
server/pdf.js
Normal file
12
server/pdf.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const puppeteer = require('puppeteer');
|
||||||
|
|
||||||
|
module.exports = async function (html, filepath) {
|
||||||
|
const browser = await puppeteer.launch();
|
||||||
|
const page = await browser.newPage();
|
||||||
|
await page.setContent(html);
|
||||||
|
await page.pdf({
|
||||||
|
path: filepath,
|
||||||
|
format: 'A4'
|
||||||
|
});
|
||||||
|
await browser.close();
|
||||||
|
}
|
17
server/utils.js
Normal file
17
server/utils.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const mkdirp = require('mkdirp');
|
||||||
|
const fs = require('fs');
|
||||||
|
const getDirName = require('path').dirname;
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
writeFile(fullpath, contents) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
mkdirp(getDirName(fullpath), (err) => {
|
||||||
|
if (err) reject(err);
|
||||||
|
fs.writeFile(fullpath, contents, (err) => {
|
||||||
|
if (err) reject(err);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
132
yarn.lock
132
yarn.lock
@ -31,10 +31,20 @@ 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"
|
||||||
|
|
||||||
|
acorn@^5.5.0:
|
||||||
|
version "5.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
|
||||||
|
|
||||||
after@0.8.2:
|
after@0.8.2:
|
||||||
version "0.8.2"
|
version "0.8.2"
|
||||||
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
|
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
|
||||||
|
|
||||||
|
agent-base@^4.1.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce"
|
||||||
|
dependencies:
|
||||||
|
es6-promisify "^5.0.0"
|
||||||
|
|
||||||
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"
|
||||||
@ -627,7 +637,7 @@ 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"
|
||||||
|
|
||||||
concat-stream@^1.6.0:
|
concat-stream@1.6.0, concat-stream@^1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -885,9 +895,9 @@ diff@3.3.1:
|
|||||||
version "3.3.1"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
|
||||||
|
|
||||||
doctrine@^2.0.2:
|
doctrine@^2.1.0:
|
||||||
version "2.0.2"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075"
|
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
|
||||||
dependencies:
|
dependencies:
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
|
|
||||||
@ -988,6 +998,16 @@ error-ex@^1.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-arrayish "^0.2.1"
|
is-arrayish "^0.2.1"
|
||||||
|
|
||||||
|
es6-promise@^4.0.3:
|
||||||
|
version "4.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
|
||||||
|
|
||||||
|
es6-promisify@^5.0.0:
|
||||||
|
version "5.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
||||||
|
dependencies:
|
||||||
|
es6-promise "^4.0.3"
|
||||||
|
|
||||||
escape-html@~1.0.3:
|
escape-html@~1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
||||||
@ -996,6 +1016,22 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
|
|||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||||
|
|
||||||
|
eslint-config-airbnb-base@^12.1.0:
|
||||||
|
version "12.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944"
|
||||||
|
dependencies:
|
||||||
|
eslint-restricted-globals "^0.1.1"
|
||||||
|
|
||||||
|
eslint-config-airbnb@^16.1.0:
|
||||||
|
version "16.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz#2546bfb02cc9fe92284bf1723ccf2e87bc45ca46"
|
||||||
|
dependencies:
|
||||||
|
eslint-config-airbnb-base "^12.1.0"
|
||||||
|
|
||||||
|
eslint-restricted-globals@^0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
|
||||||
|
|
||||||
eslint-scope@^3.7.1:
|
eslint-scope@^3.7.1:
|
||||||
version "3.7.1"
|
version "3.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
|
||||||
@ -1007,9 +1043,9 @@ eslint-visitor-keys@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
|
||||||
|
|
||||||
eslint@^4.9.0:
|
eslint@^4.19.1:
|
||||||
version "4.14.0"
|
version "4.19.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.14.0.tgz#96609768d1dd23304faba2d94b7fefe5a5447a82"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^5.3.0"
|
ajv "^5.3.0"
|
||||||
babel-code-frame "^6.22.0"
|
babel-code-frame "^6.22.0"
|
||||||
@ -1017,10 +1053,10 @@ eslint@^4.9.0:
|
|||||||
concat-stream "^1.6.0"
|
concat-stream "^1.6.0"
|
||||||
cross-spawn "^5.1.0"
|
cross-spawn "^5.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
doctrine "^2.0.2"
|
doctrine "^2.1.0"
|
||||||
eslint-scope "^3.7.1"
|
eslint-scope "^3.7.1"
|
||||||
eslint-visitor-keys "^1.0.0"
|
eslint-visitor-keys "^1.0.0"
|
||||||
espree "^3.5.2"
|
espree "^3.5.4"
|
||||||
esquery "^1.0.0"
|
esquery "^1.0.0"
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
file-entry-cache "^2.0.0"
|
file-entry-cache "^2.0.0"
|
||||||
@ -1042,18 +1078,19 @@ eslint@^4.9.0:
|
|||||||
path-is-inside "^1.0.2"
|
path-is-inside "^1.0.2"
|
||||||
pluralize "^7.0.0"
|
pluralize "^7.0.0"
|
||||||
progress "^2.0.0"
|
progress "^2.0.0"
|
||||||
|
regexpp "^1.0.1"
|
||||||
require-uncached "^1.0.3"
|
require-uncached "^1.0.3"
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
strip-ansi "^4.0.0"
|
strip-ansi "^4.0.0"
|
||||||
strip-json-comments "~2.0.1"
|
strip-json-comments "~2.0.1"
|
||||||
table "^4.0.1"
|
table "4.0.2"
|
||||||
text-table "~0.2.0"
|
text-table "~0.2.0"
|
||||||
|
|
||||||
espree@^3.5.2:
|
espree@^3.5.4:
|
||||||
version "3.5.2"
|
version "3.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn "^5.2.1"
|
acorn "^5.5.0"
|
||||||
acorn-jsx "^3.0.0"
|
acorn-jsx "^3.0.0"
|
||||||
|
|
||||||
esprima@^2.6.0:
|
esprima@^2.6.0:
|
||||||
@ -1186,6 +1223,15 @@ extglob@^0.3.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^1.0.0"
|
is-extglob "^1.0.0"
|
||||||
|
|
||||||
|
extract-zip@^1.6.5:
|
||||||
|
version "1.6.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
|
||||||
|
dependencies:
|
||||||
|
concat-stream "1.6.0"
|
||||||
|
debug "2.6.9"
|
||||||
|
mkdirp "0.5.0"
|
||||||
|
yauzl "2.4.1"
|
||||||
|
|
||||||
extsprintf@1.3.0:
|
extsprintf@1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||||
@ -1210,6 +1256,12 @@ fastparse@^1.1.1:
|
|||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
|
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
|
||||||
|
|
||||||
|
fd-slicer@~1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
|
||||||
|
dependencies:
|
||||||
|
pend "~1.2.0"
|
||||||
|
|
||||||
figures@^2.0.0:
|
figures@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
|
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
|
||||||
@ -1665,6 +1717,13 @@ http-signature@~1.2.0:
|
|||||||
jsprim "^1.2.2"
|
jsprim "^1.2.2"
|
||||||
sshpk "^1.7.0"
|
sshpk "^1.7.0"
|
||||||
|
|
||||||
|
https-proxy-agent@^2.1.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.0.tgz#7fbba856be8cd677986f42ebd3664f6317257887"
|
||||||
|
dependencies:
|
||||||
|
agent-base "^4.1.0"
|
||||||
|
debug "^3.1.0"
|
||||||
|
|
||||||
iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13:
|
iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13:
|
||||||
version "0.4.19"
|
version "0.4.19"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
||||||
@ -2236,6 +2295,10 @@ mime@1.4.1:
|
|||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
|
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
|
||||||
|
|
||||||
|
mime@^1.3.4:
|
||||||
|
version "1.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||||
|
|
||||||
mimic-fn@^1.0.0:
|
mimic-fn@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
|
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
|
||||||
@ -2254,6 +2317,12 @@ minimist@^1.1.3, minimist@^1.2.0:
|
|||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||||
|
|
||||||
|
mkdirp@0.5.0:
|
||||||
|
version "0.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
|
||||||
|
dependencies:
|
||||||
|
minimist "0.0.8"
|
||||||
|
|
||||||
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
|
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
@ -2658,6 +2727,10 @@ pause-stream@0.0.11:
|
|||||||
dependencies:
|
dependencies:
|
||||||
through "~2.3"
|
through "~2.3"
|
||||||
|
|
||||||
|
pend@~1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||||
|
|
||||||
performance-now@^0.2.0:
|
performance-now@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
||||||
@ -3170,6 +3243,10 @@ proxy-addr@~2.0.2:
|
|||||||
forwarded "~0.1.2"
|
forwarded "~0.1.2"
|
||||||
ipaddr.js "1.5.2"
|
ipaddr.js "1.5.2"
|
||||||
|
|
||||||
|
proxy-from-env@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
|
||||||
|
|
||||||
ps-tree@^1.1.0:
|
ps-tree@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
|
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
|
||||||
@ -3190,6 +3267,19 @@ 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"
|
||||||
|
|
||||||
|
puppeteer@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.2.0.tgz#6a8a1c618af073dfcf6fc7c7e3c12e54129ffa98"
|
||||||
|
dependencies:
|
||||||
|
debug "^2.6.8"
|
||||||
|
extract-zip "^1.6.5"
|
||||||
|
https-proxy-agent "^2.1.0"
|
||||||
|
mime "^1.3.4"
|
||||||
|
progress "^2.0.0"
|
||||||
|
proxy-from-env "^1.0.0"
|
||||||
|
rimraf "^2.6.1"
|
||||||
|
ws "^3.0.0"
|
||||||
|
|
||||||
q@^1.1.2:
|
q@^1.1.2:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
||||||
@ -3319,6 +3409,10 @@ regex-cache@^0.4.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-equal-shallow "^0.1.3"
|
is-equal-shallow "^0.1.3"
|
||||||
|
|
||||||
|
regexpp@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.0.1.tgz#d857c3a741dce075c2848dcb019a0a975b190d43"
|
||||||
|
|
||||||
regexpu-core@^1.0.0:
|
regexpu-core@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
|
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
|
||||||
@ -3950,7 +4044,7 @@ svgo@^0.7.0:
|
|||||||
sax "~1.2.1"
|
sax "~1.2.1"
|
||||||
whet.extend "~0.9.9"
|
whet.extend "~0.9.9"
|
||||||
|
|
||||||
table@^4.0.1:
|
table@4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
|
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4243,7 +4337,7 @@ write@^0.2.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mkdirp "^0.5.1"
|
mkdirp "^0.5.1"
|
||||||
|
|
||||||
ws@~3.3.1:
|
ws@^3.0.0, ws@~3.3.1:
|
||||||
version "3.3.3"
|
version "3.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4330,6 +4424,12 @@ yargs@^7.0.0:
|
|||||||
y18n "^3.2.1"
|
y18n "^3.2.1"
|
||||||
yargs-parser "^5.0.0"
|
yargs-parser "^5.0.0"
|
||||||
|
|
||||||
|
yauzl@2.4.1:
|
||||||
|
version "2.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
|
||||||
|
dependencies:
|
||||||
|
fd-slicer "~1.0.1"
|
||||||
|
|
||||||
yeast@0.1.2:
|
yeast@0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
|
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
|
||||||
|
Loading…
Reference in New Issue
Block a user