Merge branch 'master' of github.com:netlify/netlify-cms
This commit is contained in:
commit
456c891034
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
dist/
|
dist/
|
||||||
|
bin/
|
||||||
node_modules/
|
node_modules/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
window.repoFiles = {
|
window.repoFiles = {
|
||||||
_posts: {
|
_posts: {
|
||||||
"2015-02-14-this-is-a-post.md": {
|
"2015-02-14-this-is-a-post.md": {
|
||||||
content: "---\ntitle: This is a post\nimage: /nf-logo.png\ndate: 2015-02-14T00:00:00.000Z\n---\n\n# I Am a Title in Markdown\n\nHello, world\n"
|
content: "---\ntitle: This is a post\nimage: /nf-logo.png\ndate: 2015-02-14T00:00:00.000Z\n---\n\n# I Am a Title in Markdown\n\nHello, world\n\n* One Thing\n* Another Thing\n* A Third Thing\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_faqs: {
|
_faqs: {
|
||||||
|
28
package.json
28
package.json
@ -8,6 +8,7 @@
|
|||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test:watch": "jest --watch",
|
"test:watch": "jest --watch",
|
||||||
"build": "NODE_ENV=production webpack --config webpack.prod.js",
|
"build": "NODE_ENV=production webpack --config webpack.prod.js",
|
||||||
|
"build:scripts": "NODE_ENV=production webpack --config webpack.cli.js",
|
||||||
"prepublish": "npm run build",
|
"prepublish": "npm run build",
|
||||||
"storybook": "start-storybook -p 9001",
|
"storybook": "start-storybook -p 9001",
|
||||||
"storybook-build": "build-storybook -o dist",
|
"storybook-build": "build-storybook -o dist",
|
||||||
@ -48,6 +49,8 @@
|
|||||||
"author": "Netlify",
|
"author": "Netlify",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"babel": "^6.5.2",
|
||||||
|
"babel-cli": "^6.18.0",
|
||||||
"babel-core": "^6.5.1",
|
"babel-core": "^6.5.1",
|
||||||
"babel-jest": "^15.0.0",
|
"babel-jest": "^15.0.0",
|
||||||
"babel-loader": "^6.2.2",
|
"babel-loader": "^6.2.2",
|
||||||
@ -92,6 +95,7 @@
|
|||||||
"@kadira/storybook": "^1.36.0",
|
"@kadira/storybook": "^1.36.0",
|
||||||
"autoprefixer": "^6.3.3",
|
"autoprefixer": "^6.3.3",
|
||||||
"dateformat": "^1.0.12",
|
"dateformat": "^1.0.12",
|
||||||
|
"deep-equal": "^1.0.1",
|
||||||
"fuzzy": "^0.1.1",
|
"fuzzy": "^0.1.1",
|
||||||
"immutability-helper": "^2.0.0",
|
"immutability-helper": "^2.0.0",
|
||||||
"immutable": "^3.7.6",
|
"immutable": "^3.7.6",
|
||||||
@ -108,18 +112,18 @@
|
|||||||
"normalize.css": "^4.2.0",
|
"normalize.css": "^4.2.0",
|
||||||
"pluralize": "^3.0.0",
|
"pluralize": "^3.0.0",
|
||||||
"prismjs": "^1.5.1",
|
"prismjs": "^1.5.1",
|
||||||
"prosemirror-commands": "^0.12.0",
|
"prosemirror-commands": "^0.16.0",
|
||||||
"prosemirror-history": "^0.12.0",
|
"prosemirror-history": "^0.16.0",
|
||||||
"prosemirror-inputrules": "^0.12.0",
|
"prosemirror-inputrules": "^0.16.0",
|
||||||
"prosemirror-keymap": "^0.12.0",
|
"prosemirror-keymap": "^0.16.0",
|
||||||
"prosemirror-markdown": "^0.12.0",
|
"prosemirror-markdown": "^0.16.0",
|
||||||
"prosemirror-model": "^0.12.0",
|
"prosemirror-model": "^0.16.0",
|
||||||
"prosemirror-schema-basic": "^0.12.0",
|
"prosemirror-schema-basic": "^0.16.0",
|
||||||
"prosemirror-schema-list": "^0.12.0",
|
"prosemirror-schema-list": "^0.16.0",
|
||||||
"prosemirror-schema-table": "^0.12.0",
|
"prosemirror-schema-table": "^0.16.0",
|
||||||
"prosemirror-state": "^0.12.0",
|
"prosemirror-state": "^0.16.0",
|
||||||
"prosemirror-transform": "^0.12.1",
|
"prosemirror-transform": "^0.16.0",
|
||||||
"prosemirror-view": "^0.12.0",
|
"prosemirror-view": "^0.16.0",
|
||||||
"react": "^15.1.0",
|
"react": "^15.1.0",
|
||||||
"react-addons-css-transition-group": "^15.3.1",
|
"react-addons-css-transition-group": "^15.3.1",
|
||||||
"react-autosuggest": "^7.0.1",
|
"react-autosuggest": "^7.0.1",
|
||||||
|
150
scripts/autoconfigure.collection.js
Executable file
150
scripts/autoconfigure.collection.js
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
import fs from "fs";
|
||||||
|
import path from "path";
|
||||||
|
import process from "process";
|
||||||
|
import yaml from 'js-yaml';
|
||||||
|
import deepEqual from 'deep-equal';
|
||||||
|
import { formatByExtension } from "../src/formats/formats";
|
||||||
|
|
||||||
|
const looksLikeMarkdown = /(\[.+\]\(.+\)|\n?[#]+ [a-z0-9])/; // eslint-disable-line
|
||||||
|
const looksLikeAnImage = /^[^ ]+\.(png|jpg|svg|gif|jpeg)/;
|
||||||
|
|
||||||
|
function capitalize(name) {
|
||||||
|
return name.substr(0, 1).toUpperCase() + name.substr(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function inferWidget(name, value) {
|
||||||
|
if (value == null) {
|
||||||
|
return { widget: 'string' };
|
||||||
|
}
|
||||||
|
if (value instanceof Date) {
|
||||||
|
return { widget: value.toJSON().match(/T00:00:00\.000Z$/) ? 'date' : 'datetime' };
|
||||||
|
}
|
||||||
|
if (value instanceof Array) {
|
||||||
|
if (typeof value[0] === 'string') {
|
||||||
|
return { widget: 'list' };
|
||||||
|
}
|
||||||
|
return { widget: 'list', fields: inferFields(value) };
|
||||||
|
}
|
||||||
|
if (typeof value === 'object') {
|
||||||
|
return { widget: 'object', fields: inferFields([value]) };
|
||||||
|
}
|
||||||
|
if (value === false || value === true) {
|
||||||
|
return { widget: 'checkbox' };
|
||||||
|
}
|
||||||
|
if (typeof value === 'number') {
|
||||||
|
return { widget: 'number' };
|
||||||
|
}
|
||||||
|
if (name === 'body' || value.match(looksLikeMarkdown)) {
|
||||||
|
return { widget: 'markdown' };
|
||||||
|
}
|
||||||
|
if (value.match(/\n/)) {
|
||||||
|
return { widget: 'text' };
|
||||||
|
}
|
||||||
|
if (value.match(looksLikeAnImage)) {
|
||||||
|
return { widget: 'image' };
|
||||||
|
}
|
||||||
|
return { widget: 'string' };
|
||||||
|
}
|
||||||
|
|
||||||
|
function inferField(name, value) {
|
||||||
|
return Object.assign({
|
||||||
|
label: capitalize(name.replace(/_-/g, ' ')),
|
||||||
|
name,
|
||||||
|
}, inferWidget(name, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
function inferFields(entries) {
|
||||||
|
const fields = {};
|
||||||
|
entries.forEach((entry) => {
|
||||||
|
if (entry == null) { return; }
|
||||||
|
Object.keys(entry).forEach((fieldName) => {
|
||||||
|
const field = inferField(fieldName, entry[fieldName]);
|
||||||
|
if (fields[fieldName]) {
|
||||||
|
fields[fieldName] = combineFields(fields[fieldName], field);
|
||||||
|
} else {
|
||||||
|
fields[fieldName] = field;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return Object.keys(fields).map(key => fields[key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
const widgetRank = {
|
||||||
|
markdown: 1,
|
||||||
|
text: 2,
|
||||||
|
string: 3,
|
||||||
|
image: 4,
|
||||||
|
datetime: 4,
|
||||||
|
date: 5,
|
||||||
|
number: 5,
|
||||||
|
object: 7,
|
||||||
|
list: 7,
|
||||||
|
};
|
||||||
|
|
||||||
|
function compareWidget(a, b) {
|
||||||
|
return widgetRank[a] - widgetRank[b];
|
||||||
|
}
|
||||||
|
|
||||||
|
function combineFields(a, b) {
|
||||||
|
if (b == null && a) {
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
if (a == null && b) {
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
if (deepEqual(a, b)) {
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
if (a.widget === b.widget) {
|
||||||
|
if (a.fields && b.fields) {
|
||||||
|
const newFields = {};
|
||||||
|
a.fields.forEach((field) => {
|
||||||
|
newFields[field.name] = combineFields(field, b.fields.find(f => f.name === field.name));
|
||||||
|
});
|
||||||
|
b.fields.forEach((field) => {
|
||||||
|
if (!newFields[field.name]) {
|
||||||
|
newFields[field.name] = field;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Object.assign({}, a, { fields: Object.keys(newFields).map(k => newFields[k]) });
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
return [a, b].sort((fieldA, fieldB) => compareWidget(fieldB.widget, fieldA.widget))[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.argv.length !== 3) {
|
||||||
|
console.log("Usage: autoconfigure.collections.js <path-to-my-folder>");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const folder = process.argv[2].replace(/\/$/, '');
|
||||||
|
const files = fs.readdirSync(folder);
|
||||||
|
const extensions = {};
|
||||||
|
|
||||||
|
files.forEach((file) => {
|
||||||
|
const ext = file.split(".").pop();
|
||||||
|
if (ext) {
|
||||||
|
extensions[ext] = extensions[ext] || 0;
|
||||||
|
extensions[ext] += 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const name = folder.split('/').filter(s => s).pop();
|
||||||
|
const extension = Object.keys(extensions).sort((a, b) => extensions[b] - extensions[a])[0];
|
||||||
|
const format = formatByExtension(extension);
|
||||||
|
const entries = files.filter(name => name.split(".").pop() === extension).slice(0, 100).map(file => (
|
||||||
|
format.fromFile(fs.readFileSync(path.join(folder, file), { encoding: 'utf8' }))
|
||||||
|
));
|
||||||
|
const fields = inferFields(entries);
|
||||||
|
|
||||||
|
|
||||||
|
const collection = {
|
||||||
|
label: capitalize(name),
|
||||||
|
name,
|
||||||
|
folder,
|
||||||
|
extension,
|
||||||
|
fields,
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(yaml.safeDump([collection], { flowLevel: 3 }));
|
@ -20,6 +20,11 @@
|
|||||||
color: #dd0000;
|
color: #dd0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.message {
|
||||||
|
font-size: 1.1em;
|
||||||
|
margin: 20px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
padding: .25em 1em;
|
padding: .25em 1em;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
@ -17,14 +17,15 @@ export default class AuthenticationPage extends React.Component {
|
|||||||
this.props.onLogin(this.state);
|
this.props.onLogin(this.state);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleEmailChange = (e) => {
|
handleEmailChange = (value) => {
|
||||||
this.setState({ email: e.target.value });
|
this.setState({ email: value });
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (<section className={styles.root}>
|
return (<section className={styles.root}>
|
||||||
<Card className={styles.card}>
|
<Card className={styles.card}>
|
||||||
<img src={logo} width={100} role="presentation" />
|
<img src={logo} width={100} role="presentation" />
|
||||||
|
<p className={styles.message}>This is a demo, enter your email to start</p>
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
label="Email"
|
label="Email"
|
||||||
|
@ -9,6 +9,15 @@ function getFile(path) {
|
|||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function nameFromEmail(email) {
|
||||||
|
return email
|
||||||
|
.split('@').shift().replace(/[.-_]/g, ' ')
|
||||||
|
.split(' ')
|
||||||
|
.filter(f => f)
|
||||||
|
.map(s => s.substr(0, 1).toUpperCase() + (s.substr(1) || ''))
|
||||||
|
.join(' ');
|
||||||
|
}
|
||||||
|
|
||||||
export default class TestRepo {
|
export default class TestRepo {
|
||||||
constructor(config) {
|
constructor(config) {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
@ -24,7 +33,7 @@ export default class TestRepo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
authenticate(state) {
|
authenticate(state) {
|
||||||
return Promise.resolve({ email: state.email });
|
return Promise.resolve({ email: state.email, name: nameFromEmail(state.email) });
|
||||||
}
|
}
|
||||||
|
|
||||||
entriesByFolder(collection) {
|
entriesByFolder(collection) {
|
||||||
@ -71,7 +80,6 @@ export default class TestRepo {
|
|||||||
} else {
|
} else {
|
||||||
window.repoFiles[folder][fileName].content = entry.raw;
|
window.repoFiles[folder][fileName].content = entry.raw;
|
||||||
}
|
}
|
||||||
mediaFiles.forEach(media => media.uploaded = true);
|
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,10 @@ import htmlSyntax from 'markup-it/syntaxes/html';
|
|||||||
import reInline from 'markup-it/syntaxes/markdown/re/inline';
|
import reInline from 'markup-it/syntaxes/markdown/re/inline';
|
||||||
import MarkupItReactRenderer from '../';
|
import MarkupItReactRenderer from '../';
|
||||||
|
|
||||||
|
function getMedia(path) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
describe('MarkitupReactRenderer', () => {
|
describe('MarkitupReactRenderer', () => {
|
||||||
describe('basics', () => {
|
describe('basics', () => {
|
||||||
it('should re-render properly after a value and syntax update', () => {
|
it('should re-render properly after a value and syntax update', () => {
|
||||||
@ -17,6 +21,7 @@ describe('MarkitupReactRenderer', () => {
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value="# Title"
|
value="# Title"
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
const tree1 = component.html();
|
const tree1 = component.html();
|
||||||
@ -33,6 +38,7 @@ describe('MarkitupReactRenderer', () => {
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value="# Title"
|
value="# Title"
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
const syntax1 = component.instance().props.syntax;
|
const syntax1 = component.instance().props.syntax;
|
||||||
@ -77,6 +83,7 @@ Text with **bold** & _em_ elements
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -91,6 +98,7 @@ Text with **bold** & _em_ elements
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -115,6 +123,7 @@ Text with **bold** & _em_ elements
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -134,6 +143,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -147,6 +157,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -158,6 +169,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -185,6 +197,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -228,6 +241,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
value={value}
|
value={value}
|
||||||
syntax={myMarkdownSyntax}
|
syntax={myMarkdownSyntax}
|
||||||
schema={myCustomSchema}
|
schema={myCustomSchema}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
@ -241,6 +255,7 @@ I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]
|
|||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={value}
|
value={value}
|
||||||
syntax={htmlSyntax}
|
syntax={htmlSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
expect(component.html()).toMatchSnapshot();
|
expect(component.html()).toMatchSnapshot();
|
||||||
|
@ -42,11 +42,7 @@ const defaultSchema = {
|
|||||||
[ENTITIES.HARD_BREAK]: 'br',
|
[ENTITIES.HARD_BREAK]: 'br',
|
||||||
};
|
};
|
||||||
|
|
||||||
const notAllowedAttributes = ['loose'];
|
const notAllowedAttributes = ['loose', 'image'];
|
||||||
|
|
||||||
function sanitizeProps(props) {
|
|
||||||
return omit(props, notAllowedAttributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default class MarkupItReactRenderer extends React.Component {
|
export default class MarkupItReactRenderer extends React.Component {
|
||||||
|
|
||||||
@ -66,6 +62,17 @@ export default class MarkupItReactRenderer extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sanitizeProps(props) {
|
||||||
|
const { getMedia } = this.props;
|
||||||
|
|
||||||
|
if (props.image) {
|
||||||
|
props = Object.assign({}, props, { src: getMedia(props.image).toString() });
|
||||||
|
}
|
||||||
|
|
||||||
|
return omit(props, notAllowedAttributes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
renderToken(schema, token, index = 0, key = '0') {
|
renderToken(schema, token, index = 0, key = '0') {
|
||||||
const type = token.get('type');
|
const type = token.get('type');
|
||||||
const data = token.get('data');
|
const data = token.get('data');
|
||||||
@ -85,7 +92,7 @@ export default class MarkupItReactRenderer extends React.Component {
|
|||||||
if (nodeType !== null) {
|
if (nodeType !== null) {
|
||||||
let props = { key, token };
|
let props = { key, token };
|
||||||
if (typeof nodeType !== 'function') {
|
if (typeof nodeType !== 'function') {
|
||||||
props = { key, ...sanitizeProps(data.toJS()) };
|
props = { key, ...this.sanitizeProps(data.toJS()) };
|
||||||
}
|
}
|
||||||
// If this is a react element
|
// If this is a react element
|
||||||
return React.createElement(nodeType, props, children);
|
return React.createElement(nodeType, props, children);
|
||||||
@ -108,7 +115,7 @@ export default class MarkupItReactRenderer extends React.Component {
|
|||||||
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { value, schema } = this.props;
|
const { value, schema, getMedia } = this.props;
|
||||||
const content = this.parser.toContent(value);
|
const content = this.parser.toContent(value);
|
||||||
return this.renderToken({ ...defaultSchema, ...schema }, content.get('token'));
|
return this.renderToken({ ...defaultSchema, ...schema }, content.get('token'));
|
||||||
}
|
}
|
||||||
@ -121,4 +128,5 @@ MarkupItReactRenderer.propTypes = {
|
|||||||
PropTypes.string,
|
PropTypes.string,
|
||||||
PropTypes.func,
|
PropTypes.func,
|
||||||
])),
|
])),
|
||||||
|
getMedia: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
@ -6,6 +6,8 @@ import { processEditorPlugins } from './richText';
|
|||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { switchVisualMode } from '../../actions/editor';
|
import { switchVisualMode } from '../../actions/editor';
|
||||||
|
|
||||||
|
const MODE_STORAGE_KEY = 'cms.md-mode';
|
||||||
|
|
||||||
class MarkdownControl extends React.Component {
|
class MarkdownControl extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
editor: PropTypes.object.isRequired,
|
editor: PropTypes.object.isRequired,
|
||||||
@ -18,7 +20,7 @@ class MarkdownControl extends React.Component {
|
|||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = { mode: 'visual' };
|
this.state = { mode: localStorage.getItem(MODE_STORAGE_KEY) || 'visual' };
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
@ -27,6 +29,7 @@ class MarkdownControl extends React.Component {
|
|||||||
|
|
||||||
handleMode = (mode) => {
|
handleMode = (mode) => {
|
||||||
this.setState({ mode });
|
this.setState({ mode });
|
||||||
|
localStorage.setItem(MODE_STORAGE_KEY, mode);
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
.root {
|
.root {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dragging { }
|
||||||
|
|
||||||
|
.shim {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
display: none;
|
||||||
|
border: 2px dashed #aaa;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dragging .shim {
|
||||||
|
z-index: 1000;
|
||||||
|
display: block;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
@ -24,10 +24,6 @@ function processUrl(url) {
|
|||||||
return `/${ url }`;
|
return `/${ url }`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function preventDefault(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
function cleanupPaste(paste) {
|
function cleanupPaste(paste) {
|
||||||
const content = html.toContent(paste);
|
const content = html.toContent(paste);
|
||||||
return markdown.toText(content);
|
return markdown.toText(content);
|
||||||
@ -76,11 +72,9 @@ export default class RawEditor extends React.Component {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.updateHeight();
|
this.updateHeight();
|
||||||
this.element.addEventListener('dragenter', preventDefault, false);
|
|
||||||
this.element.addEventListener('dragover', preventDefault, false);
|
|
||||||
this.element.addEventListener('drop', this.handleDrop, false);
|
|
||||||
this.element.addEventListener('paste', this.handlePaste, false);
|
this.element.addEventListener('paste', this.handlePaste, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,9 +87,7 @@ export default class RawEditor extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
this.element.removeEventListener('dragenter', preventDefault);
|
this.element.removeEventListener('paste', this.handlePaste);
|
||||||
this.element.removeEventListener('dragover', preventDefault);
|
|
||||||
this.element.removeEventListener('drop', this.handleDrop);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getSelection() {
|
getSelection() {
|
||||||
@ -256,8 +248,25 @@ export default class RawEditor extends React.Component {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleDragEnter = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.setState({ dragging: true });
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDragLeave = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.setState({ dragging: false });
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDragOver = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
};
|
||||||
|
|
||||||
handleDrop = (e) => {
|
handleDrop = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
this.setState({ dragging: false });
|
||||||
|
|
||||||
let data;
|
let data;
|
||||||
|
|
||||||
if (e.dataTransfer.files && e.dataTransfer.files.length) {
|
if (e.dataTransfer.files && e.dataTransfer.files.length) {
|
||||||
@ -296,8 +305,19 @@ export default class RawEditor extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { onAddMedia, onRemoveMedia, getMedia } = this.props;
|
const { onAddMedia, onRemoveMedia, getMedia } = this.props;
|
||||||
const { showToolbar, showBlockMenu, plugins, selectionPosition } = this.state;
|
const { showToolbar, showBlockMenu, plugins, selectionPosition, dragging } = this.state;
|
||||||
return (<div className={styles.root}>
|
const classNames = [styles.root];
|
||||||
|
if (dragging) {
|
||||||
|
classNames.push(styles.dragging);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (<div
|
||||||
|
className={classNames.join(' ')}
|
||||||
|
onDragEnter={this.handleDragEnter}
|
||||||
|
onDragLeave={this.handleDragLeave}
|
||||||
|
onDragOver={this.handleDragOver}
|
||||||
|
onDrop={this.handleDrop}
|
||||||
|
>
|
||||||
<Toolbar
|
<Toolbar
|
||||||
isOpen={showToolbar}
|
isOpen={showToolbar}
|
||||||
selectionPosition={selectionPosition}
|
selectionPosition={selectionPosition}
|
||||||
@ -324,6 +344,7 @@ export default class RawEditor extends React.Component {
|
|||||||
onChange={this.handleChange}
|
onChange={this.handleChange}
|
||||||
onSelect={this.handleSelection}
|
onSelect={this.handleSelection}
|
||||||
/>
|
/>
|
||||||
|
<div className={styles.shim}/>
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,13 @@
|
|||||||
& p {
|
& p {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
& hr {
|
||||||
|
border: 1px solid;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
& li > p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
& div[data-plugin] {
|
& div[data-plugin] {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #aaa;
|
border: 1px solid #aaa;
|
||||||
@ -28,6 +35,25 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dragging { }
|
||||||
|
|
||||||
|
.shim {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
display: none;
|
||||||
|
border: 2px dashed #aaa;
|
||||||
|
background: rgba(0,0,0,0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dragging .shim {
|
||||||
|
z-index: 1000;
|
||||||
|
display: block;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
:global {
|
:global {
|
||||||
& .ProseMirror {
|
& .ProseMirror {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -11,6 +11,7 @@ import { keymap } from 'prosemirror-keymap';
|
|||||||
import { schema, defaultMarkdownSerializer } from 'prosemirror-markdown';
|
import { schema, defaultMarkdownSerializer } from 'prosemirror-markdown';
|
||||||
import { baseKeymap, setBlockType, toggleMark } from 'prosemirror-commands';
|
import { baseKeymap, setBlockType, toggleMark } from 'prosemirror-commands';
|
||||||
import registry from '../../../../lib/registry';
|
import registry from '../../../../lib/registry';
|
||||||
|
import MediaProxy from '../../../../valueObjects/MediaProxy';
|
||||||
import { buildKeymap } from './keymap';
|
import { buildKeymap } from './keymap';
|
||||||
import createMarkdownParser from './parser';
|
import createMarkdownParser from './parser';
|
||||||
import Toolbar from '../Toolbar';
|
import Toolbar from '../Toolbar';
|
||||||
@ -88,7 +89,7 @@ function createSerializer(schema, plugins) {
|
|||||||
plugins.forEach((plugin) => {
|
plugins.forEach((plugin) => {
|
||||||
serializer.nodes[`plugin_${ plugin.get('id') }`] = (state, node) => {
|
serializer.nodes[`plugin_${ plugin.get('id') }`] = (state, node) => {
|
||||||
const toBlock = plugin.get('toBlock');
|
const toBlock = plugin.get('toBlock');
|
||||||
state.write(toBlock.call(plugin, node.attrs));
|
state.write(toBlock.call(plugin, node.attrs) + '\n\n');
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
return serializer;
|
return serializer;
|
||||||
@ -210,7 +211,53 @@ export default class Editor extends Component {
|
|||||||
handleBlock = (plugin, data) => {
|
handleBlock = (plugin, data) => {
|
||||||
const { schema } = this.state;
|
const { schema } = this.state;
|
||||||
const nodeType = schema.nodes[`plugin_${ plugin.get('id') }`];
|
const nodeType = schema.nodes[`plugin_${ plugin.get('id') }`];
|
||||||
this.view.props.onAction(this.view.state.tr.replaceSelection(nodeType.create(data.toJS())).action());
|
this.view.props.onAction(this.view.state.tr.replaceSelectionWith(nodeType.create(data.toJS())).action());
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDragEnter = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.setState({ dragging: true });
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDragLeave = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.setState({ dragging: false });
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDragOver = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
};
|
||||||
|
|
||||||
|
handleDrop = (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
this.setState({ dragging: false });
|
||||||
|
|
||||||
|
const { schema } = this.state;
|
||||||
|
|
||||||
|
const nodes = [];
|
||||||
|
|
||||||
|
if (e.dataTransfer.files && e.dataTransfer.files.length) {
|
||||||
|
Array.from(e.dataTransfer.files).forEach((file) => {
|
||||||
|
const mediaProxy = new MediaProxy(file.name, file);
|
||||||
|
this.props.onAddMedia(mediaProxy);
|
||||||
|
if (file.type.split('/')[0] === 'image') {
|
||||||
|
nodes.push(
|
||||||
|
schema.nodes.image.create({ src: mediaProxy.public_path, alt: file.name })
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
nodes.push(
|
||||||
|
schema.marks.link.create({ href: mediaProxy.public_path, title: file.name })
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
nodes.push(schema.nodes.paragraph.create({}, e.dataTransfer.getData('text/plain')));
|
||||||
|
}
|
||||||
|
|
||||||
|
nodes.forEach((node) => {
|
||||||
|
this.view.props.onAction(this.view.state.tr.replaceSelectionWith(node).action());
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
handleToggle = () => {
|
handleToggle = () => {
|
||||||
@ -219,9 +266,19 @@ export default class Editor extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { onAddMedia, onRemoveMedia, getMedia } = this.props;
|
const { onAddMedia, onRemoveMedia, getMedia } = this.props;
|
||||||
const { plugins, showToolbar, showBlockMenu, selectionPosition } = this.state;
|
const { plugins, showToolbar, showBlockMenu, selectionPosition, dragging } = this.state;
|
||||||
|
const classNames = [styles.editor];
|
||||||
|
if (dragging) {
|
||||||
|
classNames.push(styles.dragging);
|
||||||
|
}
|
||||||
|
|
||||||
return (<div className={styles.editor}>
|
return (<div
|
||||||
|
className={classNames.join(' ')}
|
||||||
|
onDragEnter={this.handleDragEnter}
|
||||||
|
onDragLeave={this.handleDragLeave}
|
||||||
|
onDragOver={this.handleDragOver}
|
||||||
|
onDrop={this.handleDrop}
|
||||||
|
>
|
||||||
<Toolbar
|
<Toolbar
|
||||||
isOpen={showToolbar}
|
isOpen={showToolbar}
|
||||||
selectionPosition={selectionPosition}
|
selectionPosition={selectionPosition}
|
||||||
@ -242,6 +299,7 @@ export default class Editor extends Component {
|
|||||||
getMedia={getMedia}
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
<div ref={this.handleRef} />
|
<div ref={this.handleRef} />
|
||||||
|
<div className={styles.shim} />
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,8 +228,11 @@ export default function createMarkdownParser(schema, plugins) {
|
|||||||
blockquote: {block: "blockquote"},
|
blockquote: {block: "blockquote"},
|
||||||
paragraph: {block: "paragraph"},
|
paragraph: {block: "paragraph"},
|
||||||
list_item: {block: "list_item"},
|
list_item: {block: "list_item"},
|
||||||
bullet_list: {block: "bullet_list"},
|
// Note - we force lists to be tight here, while that's not ProseMirror's default
|
||||||
ordered_list: {block: "ordered_list", attrs: tok => ({order: +tok.attrGet("order") || 1})},
|
// The default behavior means list elements always have a `p` inside, and we want
|
||||||
|
// to avoid tha.
|
||||||
|
bullet_list: {block: "bullet_list", attrs: tok => ({tight: true})},
|
||||||
|
ordered_list: {block: "ordered_list", attrs: tok => ({tight: true, order: +tok.attrGet("order") || 1})},
|
||||||
heading: {block: "heading", attrs: tok => ({level: +tok.tag.slice(1)})},
|
heading: {block: "heading", attrs: tok => ({level: +tok.tag.slice(1)})},
|
||||||
code_block: {block: "code_block"},
|
code_block: {block: "code_block"},
|
||||||
fence: {block: "code_block"},
|
fence: {block: "code_block"},
|
||||||
|
@ -24,6 +24,7 @@ const MarkdownPreview = ({ value, getMedia }) => {
|
|||||||
value={value}
|
value={value}
|
||||||
syntax={markdown}
|
syntax={markdown}
|
||||||
schema={schema}
|
schema={schema}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -19,16 +19,22 @@ const htmlContent = `
|
|||||||
</ol>
|
</ol>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
function getMedia(path) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
storiesOf('MarkupItReactRenderer', module)
|
storiesOf('MarkupItReactRenderer', module)
|
||||||
.add('Markdown', () => (
|
.add('Markdown', () => (
|
||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={mdContent}
|
value={mdContent}
|
||||||
syntax={markdownSyntax}
|
syntax={markdownSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
)).add('HTML', () => (
|
)).add('HTML', () => (
|
||||||
<MarkupItReactRenderer
|
<MarkupItReactRenderer
|
||||||
value={htmlContent}
|
value={htmlContent}
|
||||||
syntax={htmlSyntax}
|
syntax={htmlSyntax}
|
||||||
|
getMedia={getMedia}
|
||||||
/>
|
/>
|
||||||
));
|
));
|
||||||
|
@ -12,7 +12,7 @@ function formatByType(type) {
|
|||||||
return YamlFrontmatterFormatter;
|
return YamlFrontmatterFormatter;
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatByExtension(extension) {
|
export function formatByExtension(extension) {
|
||||||
return {
|
return {
|
||||||
yml: yamlFormatter,
|
yml: yamlFormatter,
|
||||||
json: jsonFormatter,
|
json: jsonFormatter,
|
||||||
|
@ -17,15 +17,18 @@ const medias = (state = Map(), action) => {
|
|||||||
|
|
||||||
export default medias;
|
export default medias;
|
||||||
|
|
||||||
|
const memoizedProxies = {};
|
||||||
export const getMedia = (publicFolder, state, path) => {
|
export const getMedia = (publicFolder, state, path) => {
|
||||||
// No path provided, skip
|
// No path provided, skip
|
||||||
if (!path) return null;
|
if (!path) return null;
|
||||||
|
|
||||||
if (state.has(path)) {
|
let proxy = state.get(path) || memoizedProxies[path];
|
||||||
|
if (proxy) {
|
||||||
// There is already a MediaProxy in memmory for this path. Use it.
|
// There is already a MediaProxy in memmory for this path. Use it.
|
||||||
return state.get(path);
|
return proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new MediaProxy (for consistency) and return it.
|
// Create a new MediaProxy (for consistency) and return it.
|
||||||
return new MediaProxy(resolvePath(path, publicFolder), null, true);
|
proxy = memoizedProxies[path] = new MediaProxy(resolvePath(path, publicFolder), null, true);
|
||||||
|
return proxy;
|
||||||
};
|
};
|
||||||
|
329
yarn.lock
329
yarn.lock
@ -107,12 +107,12 @@ airbnb-js-shims@^1.0.0:
|
|||||||
string.prototype.padstart "^3.0.0"
|
string.prototype.padstart "^3.0.0"
|
||||||
|
|
||||||
ajv-keywords@^1.0.0:
|
ajv-keywords@^1.0.0:
|
||||||
version "1.4.1"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.4.1.tgz#f080e635e230baae26537ce727f260ae62b43802"
|
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.0.tgz#c11e6859eafff83e0dafc416929472eca946aa2c"
|
||||||
|
|
||||||
ajv@^4.7.0:
|
ajv@^4.7.0:
|
||||||
version "4.10.1"
|
version "4.10.3"
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.1.tgz#6e1669b62d752424a73da9175901d0327adfc2a5"
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.3.tgz#3e4fea9675b157de7888b80dd0ed735b83f28e11"
|
||||||
dependencies:
|
dependencies:
|
||||||
co "^4.6.0"
|
co "^4.6.0"
|
||||||
json-stable-stringify "^1.0.1"
|
json-stable-stringify "^1.0.1"
|
||||||
@ -256,8 +256,8 @@ asap@^2.0.3, asap@~2.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
|
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
|
||||||
|
|
||||||
asn1.js@^4.0.0:
|
asn1.js@^4.0.0:
|
||||||
version "4.9.0"
|
version "4.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a"
|
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40"
|
||||||
dependencies:
|
dependencies:
|
||||||
bn.js "^4.0.0"
|
bn.js "^4.0.0"
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
@ -301,7 +301,7 @@ async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.0, async@1.x:
|
|||||||
version "1.5.2"
|
version "1.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
||||||
|
|
||||||
async@^2.0.1:
|
async@^2.0.1, async@^2.1.4:
|
||||||
version "2.1.4"
|
version "2.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
|
resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -334,6 +334,31 @@ aws4@^1.2.1:
|
|||||||
version "1.5.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
|
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
|
||||||
|
|
||||||
|
babel:
|
||||||
|
version "6.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/babel/-/babel-6.5.2.tgz#59140607438270920047ff56f02b2d8630c2d129"
|
||||||
|
|
||||||
|
babel-cli:
|
||||||
|
version "6.18.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186"
|
||||||
|
dependencies:
|
||||||
|
babel-core "^6.18.0"
|
||||||
|
babel-polyfill "^6.16.0"
|
||||||
|
babel-register "^6.18.0"
|
||||||
|
babel-runtime "^6.9.0"
|
||||||
|
commander "^2.8.1"
|
||||||
|
convert-source-map "^1.1.0"
|
||||||
|
fs-readdir-recursive "^1.0.0"
|
||||||
|
glob "^5.0.5"
|
||||||
|
lodash "^4.2.0"
|
||||||
|
output-file-sync "^1.1.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
slash "^1.0.0"
|
||||||
|
source-map "^0.5.0"
|
||||||
|
v8flags "^2.0.10"
|
||||||
|
optionalDependencies:
|
||||||
|
chokidar "^1.0.0"
|
||||||
|
|
||||||
babel-code-frame@^6.16.0, babel-code-frame@^6.20.0:
|
babel-code-frame@^6.16.0, babel-code-frame@^6.20.0:
|
||||||
version "6.20.0"
|
version "6.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26"
|
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26"
|
||||||
@ -962,7 +987,7 @@ babel-plugin-transform-system-register@0.0.1:
|
|||||||
version "0.0.1"
|
version "0.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25"
|
resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25"
|
||||||
|
|
||||||
babel-polyfill@^6.9.1:
|
babel-polyfill@^6.16.0, babel-polyfill@^6.9.1:
|
||||||
version "6.20.0"
|
version "6.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.20.0.tgz#de4a371006139e20990aac0be367d398331204e7"
|
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.20.0.tgz#de4a371006139e20990aac0be367d398331204e7"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -1648,7 +1673,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
commander@^2.9.0, commander@2.9.x:
|
commander@^2.8.1, commander@^2.9.0, commander@2.9.x:
|
||||||
version "2.9.0"
|
version "2.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2068,8 +2093,8 @@ dateformat@^1.0.12:
|
|||||||
meow "^3.3.0"
|
meow "^3.3.0"
|
||||||
|
|
||||||
debug@^2.1.1, debug@^2.2.0:
|
debug@^2.1.1, debug@^2.2.0:
|
||||||
version "2.5.1"
|
version "2.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.5.1.tgz#9107bb4a506052ec2a02314bc606313ed2b921c1"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "0.7.2"
|
ms "0.7.2"
|
||||||
|
|
||||||
@ -2087,7 +2112,7 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
|
|||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||||
|
|
||||||
deep-equal@^1.0.0, deep-equal@^1.0.1, deep-equal@~1.0.1:
|
deep-equal, deep-equal@^1.0.0, deep-equal@^1.0.1, deep-equal@~1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
||||||
|
|
||||||
@ -2190,8 +2215,8 @@ detect-indent@^4.0.0:
|
|||||||
repeating "^2.0.0"
|
repeating "^2.0.0"
|
||||||
|
|
||||||
diff@^3.0.0:
|
diff@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.1.0.tgz#9406c73a401e6c2b3ba901c5e2c44eb6a60c5385"
|
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
|
||||||
|
|
||||||
diffie-hellman@^5.0.0:
|
diffie-hellman@^5.0.0:
|
||||||
version "5.0.2"
|
version "5.0.2"
|
||||||
@ -2546,8 +2571,8 @@ eslint-config-airbnb@^12.0.0:
|
|||||||
eslint-config-airbnb-base "^8.0.0"
|
eslint-config-airbnb-base "^8.0.0"
|
||||||
|
|
||||||
"eslint-config-netlify@github:netlify/eslint-config-netlify":
|
"eslint-config-netlify@github:netlify/eslint-config-netlify":
|
||||||
version "0.1.2"
|
version "0.1.3"
|
||||||
resolved "https://codeload.github.com/netlify/eslint-config-netlify/tar.gz/1bca27f2b6c3698a45ae8fdd5058ce634a77414b"
|
resolved "https://codeload.github.com/netlify/eslint-config-netlify/tar.gz/42e46d0b50b380da88db299c3fbe33b55621b87d"
|
||||||
dependencies:
|
dependencies:
|
||||||
babel-eslint "^7.0.0"
|
babel-eslint "^7.0.0"
|
||||||
eslint "^3.9.1"
|
eslint "^3.9.1"
|
||||||
@ -2899,10 +2924,6 @@ extend@^3.0.0, extend@~3.0.0:
|
|||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
|
||||||
|
|
||||||
extending-char@^1.0.0:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/extending-char/-/extending-char-1.0.1.tgz#4c6c0eee3658a49df1600b32fc73876f418c7c6c"
|
|
||||||
|
|
||||||
extglob@^0.3.1:
|
extglob@^0.3.1:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
|
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
|
||||||
@ -2931,8 +2952,8 @@ falafel@^1.0.1:
|
|||||||
object-keys "^1.0.6"
|
object-keys "^1.0.6"
|
||||||
|
|
||||||
fast-levenshtein@~2.0.4:
|
fast-levenshtein@~2.0.4:
|
||||||
version "2.0.5"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
|
|
||||||
fastparse@^1.1.1:
|
fastparse@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
@ -2999,12 +3020,12 @@ filename-regex@^2.0.0:
|
|||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
|
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
|
||||||
|
|
||||||
fileset@0.2.x:
|
fileset@^2.0.2:
|
||||||
version "0.2.1"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/fileset/-/fileset-0.2.1.tgz#588ef8973c6623b2a76df465105696b96aac8067"
|
resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "5.x"
|
glob "^7.0.3"
|
||||||
minimatch "2.x"
|
minimatch "^3.0.3"
|
||||||
|
|
||||||
fill-range@^2.1.0:
|
fill-range@^2.1.0:
|
||||||
version "2.2.3"
|
version "2.2.3"
|
||||||
@ -3129,7 +3150,11 @@ fresh@0.3.0:
|
|||||||
|
|
||||||
fs-exists-sync@^0.1.0:
|
fs-exists-sync@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "http://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
|
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
|
||||||
|
|
||||||
|
fs-readdir-recursive@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
|
||||||
|
|
||||||
fs.realpath@^1.0.0:
|
fs.realpath@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@ -3283,7 +3308,7 @@ glob-parent@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-glob "^2.0.0"
|
is-glob "^2.0.0"
|
||||||
|
|
||||||
glob@^5.0.15, glob@5.0.x, glob@5.x:
|
glob@^5.0.15, glob@^5.0.5, glob@5.0.x:
|
||||||
version "5.0.15"
|
version "5.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3411,7 +3436,7 @@ got@^5.0.0:
|
|||||||
unzip-response "^1.0.2"
|
unzip-response "^1.0.2"
|
||||||
url-parse-lax "^1.0.0"
|
url-parse-lax "^1.0.0"
|
||||||
|
|
||||||
graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6:
|
graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6:
|
||||||
version "4.1.11"
|
version "4.1.11"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||||
|
|
||||||
@ -4048,35 +4073,34 @@ isstream@~0.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||||
|
|
||||||
istanbul-api@^1.0.0-aplha.10:
|
istanbul-api@^1.0.0-aplha.10:
|
||||||
version "1.0.0-aplha.10"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.0.0-aplha.10.tgz#902edf5cf5404e0eba7e00ef46408488a0d3e337"
|
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.0.tgz#fb3f62edd5bfc6ae09da09453ded6e10ae7e483b"
|
||||||
dependencies:
|
dependencies:
|
||||||
async "1.x"
|
async "^2.1.4"
|
||||||
clone "^1.0.2"
|
fileset "^2.0.2"
|
||||||
fileset "0.2.x"
|
istanbul-lib-coverage "^1.0.0"
|
||||||
istanbul-lib-coverage "^1.0.0-alpha"
|
istanbul-lib-hook "^1.0.0-alpha.4"
|
||||||
istanbul-lib-hook "^1.0.0-alpha"
|
istanbul-lib-instrument "^1.3.0"
|
||||||
istanbul-lib-instrument "^1.0.0-alpha"
|
istanbul-lib-report "^1.0.0-alpha.3"
|
||||||
istanbul-lib-report "^1.0.0-alpha"
|
istanbul-lib-source-maps "^1.1.0"
|
||||||
istanbul-lib-source-maps "^1.0.0-alpha"
|
istanbul-reports "^1.0.0"
|
||||||
istanbul-reports "^1.0.0-alpha"
|
js-yaml "^3.7.0"
|
||||||
js-yaml "3.x"
|
mkdirp "^0.5.1"
|
||||||
mkdirp "0.5.x"
|
once "^1.4.0"
|
||||||
once "1.x"
|
|
||||||
|
|
||||||
istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0:
|
istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2"
|
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2"
|
||||||
|
|
||||||
istanbul-lib-hook@^1.0.0-alpha:
|
istanbul-lib-hook@^1.0.0-alpha.4:
|
||||||
version "1.0.0-alpha.4"
|
version "1.0.0-alpha.4"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0-alpha.4.tgz#8c5bb9f6fbd8526e0ae6cf639af28266906b938f"
|
resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0-alpha.4.tgz#8c5bb9f6fbd8526e0ae6cf639af28266906b938f"
|
||||||
dependencies:
|
dependencies:
|
||||||
append-transform "^0.3.0"
|
append-transform "^0.3.0"
|
||||||
|
|
||||||
istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.1.4:
|
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.1.4, istanbul-lib-instrument@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.3.0.tgz#19f0a973397454989b98330333063a5b56df0e58"
|
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.3.1.tgz#112c25a4f2f9bc361d13d14bbff992331b974e52"
|
||||||
dependencies:
|
dependencies:
|
||||||
babel-generator "^6.18.0"
|
babel-generator "^6.18.0"
|
||||||
babel-template "^6.16.0"
|
babel-template "^6.16.0"
|
||||||
@ -4086,7 +4110,7 @@ istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1, istanbul-l
|
|||||||
istanbul-lib-coverage "^1.0.0"
|
istanbul-lib-coverage "^1.0.0"
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
|
|
||||||
istanbul-lib-report@^1.0.0-alpha:
|
istanbul-lib-report@^1.0.0-alpha.3:
|
||||||
version "1.0.0-alpha.3"
|
version "1.0.0-alpha.3"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af"
|
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4097,7 +4121,7 @@ istanbul-lib-report@^1.0.0-alpha:
|
|||||||
rimraf "^2.4.3"
|
rimraf "^2.4.3"
|
||||||
supports-color "^3.1.2"
|
supports-color "^3.1.2"
|
||||||
|
|
||||||
istanbul-lib-source-maps@^1.0.0-alpha:
|
istanbul-lib-source-maps@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f"
|
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4106,7 +4130,7 @@ istanbul-lib-source-maps@^1.0.0-alpha:
|
|||||||
rimraf "^2.4.4"
|
rimraf "^2.4.4"
|
||||||
source-map "^0.5.3"
|
source-map "^0.5.3"
|
||||||
|
|
||||||
istanbul-reports@^1.0.0-alpha:
|
istanbul-reports@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.0.tgz#24b4eb2b1d29d50f103b369bd422f6e640aa0777"
|
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.0.tgz#24b4eb2b1d29d50f103b369bd422f6e640aa0777"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4872,8 +4896,8 @@ localforage@^1.4.2:
|
|||||||
lie "3.0.2"
|
lie "3.0.2"
|
||||||
|
|
||||||
lodash-es@^4.2.0, lodash-es@^4.2.1:
|
lodash-es@^4.2.0, lodash-es@^4.2.1:
|
||||||
version "4.17.2"
|
version "4.17.3"
|
||||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.2.tgz#59011b585166e613eb9dd5fc256b2cd1a30f3712"
|
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.3.tgz#567a08d2f0c91d92b31ce35c5565e1f337fb81db"
|
||||||
|
|
||||||
lodash._arraycopy@^3.0.0:
|
lodash._arraycopy@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
@ -5234,8 +5258,8 @@ lodash@^3.7.0:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
|
||||||
|
|
||||||
lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@^4.7.0, "lodash@4.6.1 || ^4.16.1":
|
lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@^4.7.0, "lodash@4.6.1 || ^4.16.1":
|
||||||
version "4.17.2"
|
version "4.17.3"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.3.tgz#557ed7d2a9438cac5fd5a43043ca60cb455e01f7"
|
||||||
|
|
||||||
lodash@~4.16.4:
|
lodash@~4.16.4:
|
||||||
version "4.16.6"
|
version "4.16.6"
|
||||||
@ -5485,12 +5509,6 @@ minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2, "minimat
|
|||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.0.0"
|
brace-expansion "^1.0.0"
|
||||||
|
|
||||||
minimatch@2.x:
|
|
||||||
version "2.0.10"
|
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
|
|
||||||
dependencies:
|
|
||||||
brace-expansion "^1.0.0"
|
|
||||||
|
|
||||||
minimatch@3.0.2:
|
minimatch@3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.2.tgz#0f398a7300ea441e9c348c83d98ab8c9dbf9c40a"
|
||||||
@ -5921,7 +5939,7 @@ on-headers@~1.0.1:
|
|||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
|
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
|
||||||
|
|
||||||
once@^1.3.0, once@^1.3.1, once@1.x:
|
once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x:
|
||||||
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:
|
||||||
@ -5976,6 +5994,10 @@ ora@^0.2.1, ora@^0.2.3:
|
|||||||
cli-spinners "^0.1.2"
|
cli-spinners "^0.1.2"
|
||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
|
|
||||||
|
orderedmap@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.0.0.tgz#d90fc2ba1ed085190907d601dec6e6a53f8d41ba"
|
||||||
|
|
||||||
original@>=0.0.5:
|
original@>=0.0.5:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
|
resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
|
||||||
@ -6011,6 +6033,14 @@ osenv@^0.1.0, osenv@0:
|
|||||||
os-homedir "^1.0.0"
|
os-homedir "^1.0.0"
|
||||||
os-tmpdir "^1.0.0"
|
os-tmpdir "^1.0.0"
|
||||||
|
|
||||||
|
output-file-sync@^1.1.0:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.4"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
object-assign "^4.1.0"
|
||||||
|
|
||||||
package-json@^2.0.0, package-json@^2.0.1:
|
package-json@^2.0.0, package-json@^2.0.1:
|
||||||
version "2.4.0"
|
version "2.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"
|
resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"
|
||||||
@ -6497,8 +6527,8 @@ postcss-minify-gradients@^1.0.1:
|
|||||||
postcss-value-parser "^3.3.0"
|
postcss-value-parser "^3.3.0"
|
||||||
|
|
||||||
postcss-minify-params@^1.0.4:
|
postcss-minify-params@^1.0.4:
|
||||||
version "1.2.1"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.1.tgz#c899444d9e2ff8933018befac151fbfadf10e737"
|
resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
|
||||||
dependencies:
|
dependencies:
|
||||||
alphanum-sort "^1.0.1"
|
alphanum-sort "^1.0.1"
|
||||||
postcss "^5.0.2"
|
postcss "^5.0.2"
|
||||||
@ -6506,8 +6536,8 @@ postcss-minify-params@^1.0.4:
|
|||||||
uniqs "^2.0.0"
|
uniqs "^2.0.0"
|
||||||
|
|
||||||
postcss-minify-selectors@^2.0.4:
|
postcss-minify-selectors@^2.0.4:
|
||||||
version "2.0.7"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.0.7.tgz#bfb9248fe14db33770f036572de6b4897c48d81c"
|
resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.0.tgz#d08c37fd15f9d543e20e2c87dcb493844ccd8f6d"
|
||||||
dependencies:
|
dependencies:
|
||||||
alphanum-sort "^1.0.2"
|
alphanum-sort "^1.0.2"
|
||||||
has "^1.0.1"
|
has "^1.0.1"
|
||||||
@ -6718,8 +6748,8 @@ postcss@^4.1.7:
|
|||||||
source-map "~0.4.2"
|
source-map "~0.4.2"
|
||||||
|
|
||||||
postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.3, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.0, postcss@^5.1.1, postcss@^5.1.2, postcss@^5.2.0, postcss@^5.2.4, postcss@^5.2.5, postcss@^5.2.6:
|
postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.3, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.0, postcss@^5.1.1, postcss@^5.1.2, postcss@^5.2.0, postcss@^5.2.4, postcss@^5.2.5, postcss@^5.2.6:
|
||||||
version "5.2.6"
|
version "5.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.6.tgz#a252cd67cd52585035f17e9ad12b35137a7bdd9e"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.8.tgz#05720c49df23c79bda51fd01daeb1e9222e94390"
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^1.1.3"
|
chalk "^1.1.3"
|
||||||
js-base64 "^2.1.9"
|
js-base64 "^2.1.9"
|
||||||
@ -6797,88 +6827,90 @@ proper-lockfile@^1.1.2:
|
|||||||
graceful-fs "^4.1.2"
|
graceful-fs "^4.1.2"
|
||||||
retry "^0.10.0"
|
retry "^0.10.0"
|
||||||
|
|
||||||
prosemirror-commands@^0.12.0:
|
prosemirror-commands@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-0.12.0.tgz#d790fe3dbabb5221e4d87e82834835e0f65881b2"
|
resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-0.16.0.tgz#061ec07de7a695cc3afbf0fb8b1ce7b8feaafb3b"
|
||||||
dependencies:
|
dependencies:
|
||||||
extending-char "^1.0.0"
|
prosemirror-model "^0.16.0"
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-state "^0.16.0"
|
||||||
prosemirror-state "^0.12.0"
|
prosemirror-transform "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
|
||||||
|
|
||||||
prosemirror-history@^0.12.0:
|
prosemirror-history@^0.16.0:
|
||||||
version "0.12.1"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-0.12.1.tgz#cbcdb536455b6af36bd2ba3ccced5387e5cfbfe1"
|
resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-0.16.0.tgz#62babd5e048f9b035b539b297514350856b3e27f"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-state "^0.12.0"
|
prosemirror-state "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
prosemirror-transform "^0.16.0"
|
||||||
rope-sequence "^1.2.0"
|
rope-sequence "^1.2.0"
|
||||||
|
|
||||||
prosemirror-inputrules@^0.12.0:
|
prosemirror-inputrules@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-0.12.0.tgz#2e07b5cb1bfc7007c2b51ea5394303204b4b34df"
|
resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-0.16.0.tgz#dc2d3f3e79c4c28ed7e1208608fa854f25f88aba"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-state "^0.12.0"
|
prosemirror-state "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
prosemirror-transform "^0.16.0"
|
||||||
|
|
||||||
prosemirror-keymap@^0.12.0:
|
prosemirror-keymap@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-0.12.0.tgz#b70645b5d3f5ff4843bc6d26a74fa0022b504221"
|
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-0.16.0.tgz#00d98e62161f78d17bcec88dbe0dde822dfd461d"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-state "^0.12.0"
|
prosemirror-state "^0.16.0"
|
||||||
w3c-keyname "^1.1.0"
|
w3c-keyname "^1.1.0"
|
||||||
|
|
||||||
prosemirror-markdown@^0.12.0:
|
prosemirror-markdown@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-0.12.0.tgz#7ff8557c159168dcb532833c0b23b5b2866715c8"
|
resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-0.16.0.tgz#3d5c66841340f5e4e3f81109faaa1760d93b1dfd"
|
||||||
dependencies:
|
dependencies:
|
||||||
markdown-it "^6.0.4"
|
markdown-it "^6.0.4"
|
||||||
prosemirror-model "~0.12.0"
|
prosemirror-model "~0.16.0"
|
||||||
|
|
||||||
prosemirror-model@^0.12.0, prosemirror-model@~0.12.0:
|
prosemirror-model@^0.16.0, prosemirror-model@~0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.1"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-0.12.0.tgz#5430c4056f2d3fe87d36de3f73aa9d9d07b0e8a7"
|
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-0.16.1.tgz#02bb4d0912d9f8847c002902304b784124736f6d"
|
||||||
|
|
||||||
prosemirror-schema-basic@^0.12.0:
|
|
||||||
version "0.12.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-0.12.0.tgz#9af876f8a915e75ba65847c794eebfc0df9f274e"
|
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
orderedmap "^1.0.0"
|
||||||
|
|
||||||
prosemirror-schema-list@^0.12.0:
|
prosemirror-schema-basic@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-0.12.0.tgz#d93ba425ed202fc113d7b3388e5d9be1f698c276"
|
resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-0.16.0.tgz#1a7c45fd25b5307e361edb16ab31f308dbacde41"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-model "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
|
||||||
|
|
||||||
prosemirror-schema-table@^0.12.0:
|
prosemirror-schema-list@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-schema-table/-/prosemirror-schema-table-0.12.0.tgz#a665dcb66bbd4c0ff2eac492d82991c6c410b5f3"
|
resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-0.16.0.tgz#b7dd1e7f42da4e487b1eb0199a9c77e78dcadc93"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-model "^0.16.0"
|
||||||
prosemirror-state "^0.12.0"
|
prosemirror-transform "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
|
||||||
|
|
||||||
prosemirror-state@^0.12.0:
|
prosemirror-schema-table@^0.16.0:
|
||||||
version "0.12.0"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-0.12.0.tgz#16e13d57d91840d0c3c340d47694efabeb77e987"
|
resolved "https://registry.yarnpkg.com/prosemirror-schema-table/-/prosemirror-schema-table-0.16.0.tgz#b94dc190dd86b3a976faa8d6444b7a23821bb30f"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-model "^0.16.0"
|
||||||
prosemirror-transform "^0.12.0"
|
prosemirror-state "^0.16.0"
|
||||||
|
prosemirror-transform "^0.16.0"
|
||||||
|
|
||||||
prosemirror-transform@^0.12.0, prosemirror-transform@^0.12.1:
|
prosemirror-state@^0.16.0:
|
||||||
version "0.12.1"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-0.12.1.tgz#69bca7e55976815e59281fbd8af4518f5ab90844"
|
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-0.16.0.tgz#51959ff8c0624058ce2abf2481f988a7bf33fe78"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-model "^0.16.0"
|
||||||
|
prosemirror-transform "^0.16.0"
|
||||||
|
|
||||||
prosemirror-view@^0.12.0:
|
prosemirror-transform@^0.16.0:
|
||||||
version "0.12.2"
|
version "0.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-0.12.2.tgz#4a48bfe2ae3119b8c0c79166d7cd73e82284c99d"
|
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-0.16.0.tgz#fec4296d0876fa7e8f698773fa0d7008e2779317"
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^0.12.0"
|
prosemirror-model "^0.16.0"
|
||||||
prosemirror-state "^0.12.0"
|
|
||||||
|
prosemirror-view@^0.16.0:
|
||||||
|
version "0.16.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-0.16.2.tgz#63ed4cdfd000242d769b8cac6ea94b6de22b1954"
|
||||||
|
dependencies:
|
||||||
|
prosemirror-model "^0.16.0"
|
||||||
|
prosemirror-state "^0.16.0"
|
||||||
|
prosemirror-transform "^0.16.0"
|
||||||
|
|
||||||
proxy-addr@~1.1.2:
|
proxy-addr@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
@ -6974,7 +7006,7 @@ range-parser@^1.0.3, range-parser@~1.2.0:
|
|||||||
|
|
||||||
range-utils@^1.1.0:
|
range-utils@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/range-utils/-/range-utils-1.1.0.tgz#b27a9e8669d76eab7f7611f3120b39655b2e9495"
|
resolved "http://registry.npmjs.org/range-utils/-/range-utils-1.1.0.tgz#b27a9e8669d76eab7f7611f3120b39655b2e9495"
|
||||||
dependencies:
|
dependencies:
|
||||||
extend "^3.0.0"
|
extend "^3.0.0"
|
||||||
is "^3.1.0"
|
is "^3.1.0"
|
||||||
@ -7211,7 +7243,7 @@ react-toolbox@^1.2.1:
|
|||||||
|
|
||||||
react-topbar-progress-indicator@^1.0.0:
|
react-topbar-progress-indicator@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-topbar-progress-indicator/-/react-topbar-progress-indicator-1.0.0.tgz#3379ab2cb840c1bc1bc22fb5fc871688b9104dd4"
|
resolved "http://registry.npmjs.org/react-topbar-progress-indicator/-/react-topbar-progress-indicator-1.0.0.tgz#3379ab2cb840c1bc1bc22fb5fc871688b9104dd4"
|
||||||
dependencies:
|
dependencies:
|
||||||
topbar "^0.1.3"
|
topbar "^0.1.3"
|
||||||
|
|
||||||
@ -7635,7 +7667,19 @@ rxjs@^5.0.0-beta.11:
|
|||||||
dependencies:
|
dependencies:
|
||||||
symbol-observable "^1.0.1"
|
symbol-observable "^1.0.1"
|
||||||
|
|
||||||
sane@^1.3.3, sane@~1.4.1:
|
sane@^1.3.3:
|
||||||
|
version "1.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/sane/-/sane-1.5.0.tgz#a4adeae764d048621ecb27d5f9ecf513101939f3"
|
||||||
|
dependencies:
|
||||||
|
anymatch "^1.3.0"
|
||||||
|
exec-sh "^0.2.0"
|
||||||
|
fb-watchman "^1.8.0"
|
||||||
|
minimatch "^3.0.2"
|
||||||
|
minimist "^1.1.1"
|
||||||
|
walker "~1.0.5"
|
||||||
|
watch "~0.10.0"
|
||||||
|
|
||||||
|
sane@~1.4.1:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/sane/-/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715"
|
resolved "https://registry.yarnpkg.com/sane/-/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7881,8 +7925,8 @@ source-list-map@^0.1.4, source-list-map@~0.1.0, source-list-map@~0.1.7:
|
|||||||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.7.tgz#d4b5ce2a46535c72c7e8527c71a77d250618172e"
|
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.7.tgz#d4b5ce2a46535c72c7e8527c71a77d250618172e"
|
||||||
|
|
||||||
source-map-support@^0.4.0, source-map-support@^0.4.2:
|
source-map-support@^0.4.0, source-map-support@^0.4.2:
|
||||||
version "0.4.7"
|
version "0.4.8"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.7.tgz#7a7988e0e66241c778c78dd179199bb6bcd35bd6"
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.8.tgz#4871918d8a3af07289182e974e32844327b2e98b"
|
||||||
dependencies:
|
dependencies:
|
||||||
source-map "^0.5.3"
|
source-map "^0.5.3"
|
||||||
|
|
||||||
@ -8318,7 +8362,7 @@ symbol-observable@^1.0.1, symbol-observable@^1.0.2:
|
|||||||
|
|
||||||
synesthesia@^1.0.1:
|
synesthesia@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "http://registry.npmjs.org/synesthesia/-/synesthesia-1.0.1.tgz#5ef95ea548c0d5c6e6f9bb4b0d0731dff864a777"
|
resolved "https://registry.yarnpkg.com/synesthesia/-/synesthesia-1.0.1.tgz#5ef95ea548c0d5c6e6f9bb4b0d0731dff864a777"
|
||||||
dependencies:
|
dependencies:
|
||||||
css-color-names "0.0.3"
|
css-color-names "0.0.3"
|
||||||
|
|
||||||
@ -8472,8 +8516,8 @@ through2@^0.6.1, through2@^0.6.2, through2@^0.6.3, through2@^0.6.5, through2@~0.
|
|||||||
xtend ">=4.0.0 <4.1.0-0"
|
xtend ">=4.0.0 <4.1.0-0"
|
||||||
|
|
||||||
timed-out@^3.0.0:
|
timed-out@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.0.tgz#43b98b14bb712c9161c28f4dc1f3068d67a04ec2"
|
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217"
|
||||||
|
|
||||||
timers-browserify@^1.4.2:
|
timers-browserify@^1.4.2:
|
||||||
version "1.4.2"
|
version "1.4.2"
|
||||||
@ -8605,7 +8649,7 @@ uid@0.0.2:
|
|||||||
|
|
||||||
unc-path-regex@^0.1.0:
|
unc-path-regex@^0.1.0:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
|
resolved "http://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
|
||||||
|
|
||||||
uniq@^1.0.1:
|
uniq@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
@ -8689,6 +8733,10 @@ url@^0.11.0:
|
|||||||
punycode "1.3.2"
|
punycode "1.3.2"
|
||||||
querystring "0.2.0"
|
querystring "0.2.0"
|
||||||
|
|
||||||
|
user-home@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
|
||||||
|
|
||||||
user-home@^2.0.0:
|
user-home@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
|
resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
|
||||||
@ -8717,6 +8765,12 @@ uuid@^3.0.0:
|
|||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
||||||
|
|
||||||
|
v8flags@^2.0.10:
|
||||||
|
version "2.0.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881"
|
||||||
|
dependencies:
|
||||||
|
user-home "^1.1.1"
|
||||||
|
|
||||||
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"
|
||||||
@ -9095,8 +9149,8 @@ yargs@^5.0.0:
|
|||||||
yargs-parser "^3.2.0"
|
yargs-parser "^3.2.0"
|
||||||
|
|
||||||
yargs@^6.0.0, yargs@^6.3.0:
|
yargs@^6.0.0, yargs@^6.3.0:
|
||||||
version "6.5.0"
|
version "6.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.5.0.tgz#a902e23a1f0fe912b2a03f6131b7ed740c9718ff"
|
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
|
||||||
dependencies:
|
dependencies:
|
||||||
camelcase "^3.0.0"
|
camelcase "^3.0.0"
|
||||||
cliui "^3.2.0"
|
cliui "^3.2.0"
|
||||||
@ -9109,7 +9163,6 @@ yargs@^6.0.0, yargs@^6.3.0:
|
|||||||
set-blocking "^2.0.0"
|
set-blocking "^2.0.0"
|
||||||
string-width "^1.0.2"
|
string-width "^1.0.2"
|
||||||
which-module "^1.0.0"
|
which-module "^1.0.0"
|
||||||
window-size "^0.2.0"
|
|
||||||
y18n "^3.2.1"
|
y18n "^3.2.1"
|
||||||
yargs-parser "^4.2.0"
|
yargs-parser "^4.2.0"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user