diff --git a/.gitignore b/.gitignore index 76dc6e31..83bbe49f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules/ npm-debug.log .DS_Store .tern-project +yarn-error.log diff --git a/package.json b/package.json index 4da9aac2..bda4fe47 100644 --- a/package.json +++ b/package.json @@ -106,6 +106,16 @@ "normalize.css": "^4.2.0", "pluralize": "^3.0.0", "prismjs": "^1.5.1", + "prosemirror-commands": "^0.12.0", + "prosemirror-history": "^0.12.0", + "prosemirror-inputrules": "^0.12.0", + "prosemirror-keymap": "^0.12.0", + "prosemirror-markdown": "^0.12.0", + "prosemirror-schema-basic": "^0.12.0", + "prosemirror-schema-list": "^0.12.0", + "prosemirror-schema-table": "^0.12.0", + "prosemirror-state": "^0.12.0", + "prosemirror-view": "^0.12.0", "react": "^15.1.0", "react-addons-css-transition-group": "^15.3.1", "react-datetime": "^2.6.0", diff --git a/src/components/UI/icon/Icon.js b/src/components/UI/icon/Icon.js index 7368cd12..98a1252c 100644 --- a/src/components/UI/icon/Icon.js +++ b/src/components/UI/icon/Icon.js @@ -5,7 +5,7 @@ const availableIcons = [ // Font Awesome Editor Icons 'bold', 'italic', 'list', 'font', 'text-height', 'text-width', 'align-left', 'align-center', 'align-right', 'align-justify', 'indent-left', 'indent-right', 'list-bullet', 'list-numbered', 'strike', 'underline', 'table', - 'superscript', 'subscript', 'header', 'h1', 'h2', 'paragraph', 'link', 'unlink', 'quote-left', 'quote-right', 'code', + 'superscript', 'subscript', 'header', 'h1', 'h2', 'h3', 'paragraph', 'link', 'unlink', 'quote-left', 'quote-right', 'code', 'picture', 'video', // Entypo 'note', 'note-beamed', diff --git a/src/components/Widgets/MarkdownControl.js b/src/components/Widgets/MarkdownControl.js index a63c98cb..a04ea6da 100644 --- a/src/components/Widgets/MarkdownControl.js +++ b/src/components/Widgets/MarkdownControl.js @@ -16,48 +16,49 @@ class MarkdownControl extends React.Component { value: PropTypes.node, }; + constructor(props) { + super(props); + this.state = { mode: 'visual' }; + } + componentWillMount() { - this.useRawEditor(); processEditorPlugins(registry.getEditorComponents()); } - useVisualEditor = () => { - this.props.switchVisualMode(true); - }; - - useRawEditor = () => { - this.props.switchVisualMode(false); + handleMode = (mode) => { + this.setState({ mode }); }; render() { - const { editor, onChange, onAddMedia, onRemoveMedia, getMedia, value } = this.props; - if (editor.get('useVisualMode')) { + const { onChange, onAddMedia, onRemoveMedia, getMedia, value } = this.props; + const { mode } = this.state; + if (mode === 'visual') { return (
- {null && } -
- ); - } else { - return ( -
- {null && } -
); } + + return ( +
+ +
+ ); } } diff --git a/src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.css b/src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.css deleted file mode 100644 index 2d91b9f7..00000000 --- a/src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.css +++ /dev/null @@ -1,28 +0,0 @@ -.Toolbar { - position: absolute; - z-index: 1000; - display: none; - margin: none; - padding: none; - box-shadow: 1px 1px 5px; - list-style: none; -} - -.Button { - display: inline-block; - - & button { - padding: 5px; - border: none; - border-right: 1px solid #eee; - background: #fff; - } -} - -.Button:last-child button { - border-right: none; -} - -.Visible { - display: block; -} diff --git a/src/components/Widgets/MarkdownControlElements/RawEditor/index.js b/src/components/Widgets/MarkdownControlElements/RawEditor/index.js index d8ad8eb3..3b6374a8 100644 --- a/src/components/Widgets/MarkdownControlElements/RawEditor/index.js +++ b/src/components/Widgets/MarkdownControlElements/RawEditor/index.js @@ -6,7 +6,7 @@ import htmlSyntax from 'markup-it/syntaxes/html'; import CaretPosition from 'textarea-caret-position'; import registry from '../../../../lib/registry'; import MediaProxy from '../../../../valueObjects/MediaProxy'; -import Toolbar from './Toolbar'; +import Toolbar from '../Toolbar'; import BlockMenu from './BlockMenu'; import styles from './index.css'; @@ -238,8 +238,9 @@ export default class RawEditor extends React.Component { const selection = this.getSelection(); if (selection.start !== selection.end && !HAS_LINE_BREAK.test(selection.selected)) { try { - const position = this.caretPosition.get(selection.start, selection.end); - this.setState({ showToolbar: true, showBlockMenu: false, selectionPosition: position }); + const selectionPosition = this.caretPosition.get(selection.start, selection.end); + console.log('pos: %o', selectionPosition); + this.setState({ showToolbar: true, showBlockMenu: false, selectionPosition }); } catch (e) { this.setState({ showToolbar: false, showBlockMenu: false }); } @@ -313,7 +314,11 @@ export default class RawEditor extends React.Component { this.newSelection = newSelection; onChange(beforeSelection + paste + afterSelection); }); - } + }; + + handleToggle = () => { + this.props.onMode('visual'); + }; render() { const { onAddMedia, onRemoveMedia, getMedia } = this.props; @@ -327,6 +332,7 @@ export default class RawEditor extends React.Component { onBold={this.handleBold} onItalic={this.handleItalic} onLink={this.handleLink} + onToggleMode={this.handleToggle} /> * { + pointer-events: auto; + } + + & .ProseMirror-nodeselection *::selection { + background: transparent; + } + + & .ProseMirror-nodeselection *::-moz-selection { + background: transparent; + } + + & .ProseMirror-selectednode { + outline: 2px solid #8cf; + } + /* Make sure li selections wrap around markers */ + & li.ProseMirror-selectednode { + outline: none; + } + + & li.ProseMirror-selectednode:after { + position: absolute; + top: -2px; + right: -2px; + bottom: -2px; + left: -32px; + border: 2px solid #8cf; + content: ''; + pointer-events: none; + } +} diff --git a/src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.js b/src/components/Widgets/MarkdownControlElements/Toolbar.js similarity index 88% rename from src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.js rename to src/components/Widgets/MarkdownControlElements/Toolbar.js index fcfc2b23..686e79d6 100644 --- a/src/components/Widgets/MarkdownControlElements/RawEditor/Toolbar.js +++ b/src/components/Widgets/MarkdownControlElements/Toolbar.js @@ -1,5 +1,5 @@ import React, { Component, PropTypes } from 'react'; -import { Icon } from '../../../UI'; +import { Icon } from '../../UI'; import styles from './Toolbar.css'; function button(label, icon, action) { @@ -19,6 +19,7 @@ export default class Toolbar extends Component { onBold: PropTypes.func.isRequired, onItalic: PropTypes.func.isRequired, onLink: PropTypes.func.isRequired, + onToggleMode: PropTypes.func.isRequired, }; componentDidUpdate() { @@ -41,7 +42,7 @@ export default class Toolbar extends Component { }; render() { - const { isOpen, onH1, onH2, onBold, onItalic, onLink } = this.props; + const { isOpen, onH1, onH2, onBold, onItalic, onLink, onToggleMode } = this.props; const classNames = [styles.Toolbar]; if (isOpen) { @@ -55,6 +56,7 @@ export default class Toolbar extends Component { {button('Bold', 'bold', onBold)} {button('Italic', 'italic', onItalic)} {button('Link', 'link', onLink)} + {button('View Code', 'code', onToggleMode)} ); } diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.css b/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.css deleted file mode 100644 index df0af926..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.css +++ /dev/null @@ -1,71 +0,0 @@ -.root { - border: dotted 1px #ddd; - position: relative; - margin: 9px 0 15px 0; -} - - -.type:after { - content: attr(data-type); - font-size: 10px; - color: #aaa; - position: absolute; - top : -7px;; - margin-left: 1em; - padding: 0 3px; - display: inline; - background-color: #fafafa; - pointer-events: none; -} - -.body { - padding: 8px; -} - -.body img{ - max-width: 100%; - height: auto; -} - -.Paragraph { - -} - -.Heading1, .Heading2, .Heading3, .Heading4, .Heading5, .Heading6 { - margin: 0; - font-weight: bold -} - -.Heading1 { - font-size: 1.2em; -} - -.Heading2 { - font-size: 1.15em; -} - -.Heading3 { - font-size: 1.1em; -} - -.Heading4 { - font-size: 1.07em; -} - -.Heading5 { - font-size: 1.05em; -} - -.Heading6 { - font-size: 1.03em; -} - -.blockquote { - padding-left: 5px; - border-left: solid 3px #ccc; -} - -.body ul { - padding-left: 20px; - margin: 0; -} diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.js deleted file mode 100644 index 0b1a3649..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/Block.js +++ /dev/null @@ -1,32 +0,0 @@ -import React, { PropTypes } from 'react'; -import styles from './Block.css'; - -const AVAILABLE_TYPES = [ - 'Paragraph', - 'Heading1', - 'Heading2', - 'Heading3', - 'Heading4', - 'Heading5', - 'Heading6', - 'List', - 'blockquote' -]; - -export function Block({ type, children }) { - return ( -
-
-
- {children} -
-
- ); -} - -Block.propTypes = { - children: PropTypes.node.isRequired, - type: PropTypes.oneOf(AVAILABLE_TYPES).isRequired -}; - -export default Block; diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.css b/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.css deleted file mode 100644 index 9868af79..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.css +++ /dev/null @@ -1,32 +0,0 @@ -.root { - position: absolute; -} - -.button { - margin-top: 2px; - color: #ddd; - transition: color 0.5s ease; - cursor: pointer; -} -.button:hover { - color: #aaa; -} - -.menu { - position: absolute; - top: -5px; - left: 20px; - height: 32px; - white-space: nowrap; - background-color: rgba(126, 126, 126, 0.1); -} - -.icon { - margin: 8px; - cursor: pointer; - color: #555; -} - -.input { - display: none; -} diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.js deleted file mode 100644 index 36ab5166..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/BlockTypesMenu.js +++ /dev/null @@ -1,115 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import withPortalAtCursorPosition from './withPortalAtCursorPosition'; -import { Icon } from '../../../UI'; -import MediaProxy from '../../../../valueObjects/MediaProxy'; -import styles from './BlockTypesMenu.css'; - -class BlockTypesMenu extends Component { - - static propTypes = { - plugins: PropTypes.array.isRequired, - onClickBlock: PropTypes.func.isRequired, - onClickPlugin: PropTypes.func.isRequired, - onClickImage: PropTypes.func.isRequired, - }; - - state = { - expanded: false, - }; - - componentWillUpdate() { - if (this.state.expanded) { - this.setState({ expanded: false }); - } - } - - toggleMenu = () => { - this.setState({ expanded: !this.state.expanded }); - }; - - handleBlockTypeClick = (e, type) => { - this.props.onClickBlock(type); - }; - - handlePluginClick = (e, plugin) => { - const data = {}; - plugin.fields.forEach((field) => { - data[field.name] = window.prompt(field.label); // eslint-disable-line - }); - this.props.onClickPlugin(plugin.id, data); - }; - - handleFileUploadClick = () => { - this._fileInput.click(); - }; - - handleFileUploadChange = (e) => { - e.stopPropagation(); - e.preventDefault(); - - const fileList = e.dataTransfer ? e.dataTransfer.files : e.target.files; - const files = [...fileList]; - const imageType = /^image\//; - - // Iterate through the list of files and return the first image on the list - const file = files.find((currentFile) => { - if (imageType.test(currentFile.type)) { - return currentFile; - } - }); - - if (file) { - const mediaProxy = new MediaProxy(file.name, file); - this.props.onClickImage(mediaProxy); - } - }; - - renderBlockTypeButton = (type, icon) => { - const onClick = e => this.handleBlockTypeClick(e, type); - return ( - - ); - }; - - renderPluginButton = (plugin) => { - const onClick = e => this.handlePluginClick(e, plugin); - return ( - - ); - }; - - renderMenu() { - const { plugins } = this.props; - if (this.state.expanded) { - return ( -
- {this.renderBlockTypeButton('hr', 'dot-3')} - {plugins.map(plugin => this.renderPluginButton(plugin))} - - { - this._fileInput = el; - }} - /> -
- ); - } else { - return null; - } - } - - render() { - return ( -
- - {this.renderMenu()} -
- ); - } -} - -export default withPortalAtCursorPosition(BlockTypesMenu); diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.css b/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.css deleted file mode 100644 index c87888af..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.css +++ /dev/null @@ -1,39 +0,0 @@ - -.button { - color: #ccc; - cursor: pointer; -} - -.button[data-active="true"] { - color: black; -} - - -.menu > * { - display: inline-block; -} - -.menu > * + * { - margin-left: 10px; -} - -.hoverMenu { - padding: 8px 7px 6px; - position: absolute; - z-index: 1; - top: -10000px; - left: -10000px; - margin-top: -6px; - opacity: 0; - background-color: #222; - border-radius: 4px; - transition: opacity .75s; -} - -.hoverMenu .button { - color: #aaa; -} - -.hoverMenu .button[data-active="true"] { - color: #fff; -} diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.js deleted file mode 100644 index 5d141098..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/StylesMenu.js +++ /dev/null @@ -1,99 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import withPortalAtCursorPosition from './withPortalAtCursorPosition'; -import { Icon } from '../../../UI'; -import styles from './StylesMenu.css'; - -class StylesMenu extends Component { - - static propTypes = { - marks: PropTypes.object.isRequired, - blocks: PropTypes.object.isRequired, - inlines: PropTypes.object.isRequired, - onClickBlock: PropTypes.func.isRequired, - onClickMark: PropTypes.func.isRequired, - onClickInline: PropTypes.func.isRequired, - }; - - /** - * Used to set toolbar buttons to active state - */ - hasMark = (type) => { - const { marks } = this.props; - return marks.some(mark => mark.type == type); - }; - - hasBlock = (type) => { - const { blocks } = this.props; - return blocks.some(node => node.type == type); - }; - - hasLinks = (type) => { - const { inlines } = this.props; - return inlines.some(inline => inline.type == 'link'); - }; - - handleMarkClick = (e, type) => { - e.preventDefault(); - this.props.onClickMark(type); - }; - - renderMarkButton = (type, icon) => { - const isActive = this.hasMark(type); - const onMouseDown = e => this.handleMarkClick(e, type); - return ( - - - - ); - }; - - handleInlineClick = (e, type, isActive) => { - e.preventDefault(); - this.props.onClickInline(type, isActive); - }; - - renderLinkButton = () => { - const isActive = this.hasLinks(); - const onMouseDown = e => this.handleInlineClick(e, 'link', isActive); - return ( - - - - ); - }; - - handleBlockClick = (e, type) => { - e.preventDefault(); - const isActive = this.hasBlock(type); - const isList = this.hasBlock('list-item'); - this.props.onClickBlock(type, isActive, isList); - }; - - renderBlockButton = (type, icon, checkType) => { - checkType = checkType || type; - const isActive = this.hasBlock(checkType); - const onMouseDown = e => this.handleBlockClick(e, type); - return ( - - - - ); - }; - - render() { - return ( -
- {this.renderMarkButton('BOLD', 'bold')} - {this.renderMarkButton('ITALIC', 'italic')} - {this.renderMarkButton('CODE', 'code')} - {this.renderLinkButton()} - {this.renderBlockButton('header_one', 'h1')} - {this.renderBlockButton('header_two', 'h2')} - {this.renderBlockButton('blockquote', 'quote-left')} - {this.renderBlockButton('unordered_list', 'list-bullet', 'list_item')} -
- ); - } -} - -export default withPortalAtCursorPosition(StylesMenu); diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/index.css b/src/components/Widgets/MarkdownControlElements/VisualEditor/index.css index 6eb82211..7e407aef 100644 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/index.css +++ b/src/components/Widgets/MarkdownControlElements/VisualEditor/index.css @@ -1,26 +1,95 @@ -.active { - box-shadow: 0 0 0 2px blue; +.editor { + position: relative; + & h1, & h2, & h3 { + padding: 0; + color: #7c8382; + text-decoration: none; + border-bottom: none; + margin-bottom: 20px; + line-height: 1.45; + &:before { + content: "# "; + color: #a5afad; + } + } + & h1 { + font-size: 2.5rem; + } + & h2 { + font-size: 2rem; + } + & h3 { + font-size: 1.8rem; + } + & h2:before { + content: "## "; + } + & h3:before { + content: "### "; + } + & p { + margin-bottom: 20px; + } } -:global .plugin { - background-color: #ddd; - color: #555; - text-align: center; - width: 200px; - padding: 8px; - border-radius: 2px; -} +:global { + & .ProseMirror { + position: relative; + } -:global .plugin_icon { - font-size: 50px; - margin: 12px 0; -} + & .ProseMirror-content { + white-space: pre-wrap; + } -:global .plugin_fields { - font-size: 11px; - outline:none; -} + & .ProseMirror-drop-target { + position: absolute; + width: 1px; + background: #666; + pointer-events: none; + } -:global .active { - box-shadow: 0 0 0 2px blue; + & .ProseMirror-content ul, & .ProseMirror-content ol { + padding-left: 30px; + cursor: default; + } + + & .ProseMirror-content blockquote { + padding-left: 1em; + border-left: 3px solid #eee; + margin-left: 0; margin-right: 0; + } + + & .ProseMirror-content pre { + white-space: pre-wrap; + } + + & .ProseMirror-content li { + position: relative; + pointer-events: none; /* Don't do weird stuff with marker clicks */ + } + & .ProseMirror-content li > * { + pointer-events: auto; + } + + & .ProseMirror-nodeselection *::selection { background: transparent; } + & .ProseMirror-nodeselection *::-moz-selection { background: transparent; } + + & .ProseMirror-selectednode { + outline: 2px solid #8cf; + } + + /* Make sure li selections wrap around markers */ + + & li.ProseMirror-selectednode { + outline: none; + } + + & li.ProseMirror-selectednode:after { + content: ""; + position: absolute; + left: -32px; + right: -2px; top: -2px; bottom: -2px; + border: 2px solid #8cf; + pointer-events: none; + } } diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/index.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/index.js index 943948e0..347bc91a 100644 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/index.js +++ b/src/components/Widgets/MarkdownControlElements/VisualEditor/index.js @@ -1,298 +1,120 @@ -import React, { PropTypes } from 'react'; -import _ from 'lodash'; -import { Editor, Raw } from 'slate'; -import PluginDropImages from 'slate-drop-or-paste-images'; -import MarkupIt, { SlateUtils } from 'markup-it'; -import MediaProxy from '../../../../valueObjects/MediaProxy'; -import { emptyParagraphBlock, mediaproxyBlock } from '../constants'; -import { DEFAULT_NODE, SCHEMA } from './schema'; -import { getNodes, getSyntaxes, getPlugins } from '../../richText'; -import StylesMenu from './StylesMenu'; -import BlockTypesMenu from './BlockTypesMenu'; +import React, { Component } from 'react'; +import { EditorState } from 'prosemirror-state'; +import { EditorView } from 'prosemirror-view'; +import history from 'prosemirror-history'; +import { + blockQuoteRule, orderedListRule, bulletListRule, codeBlockRule, headingRule, + inputRules, allInputRules, +} from 'prosemirror-inputrules'; +import { keymap } from 'prosemirror-keymap'; +import { schema, defaultMarkdownParser, defaultMarkdownSerializer } from 'prosemirror-markdown'; +import { baseKeymap, setBlockType, toggleMark } from 'prosemirror-commands'; +import { buildKeymap } from './keymap'; +import Toolbar from '../Toolbar'; +import styles from './index.css'; -/** - * Slate Render Configuration - */ -export default class VisualEditor extends React.Component { - - static propTypes = { - onChange: PropTypes.func.isRequired, - onAddMedia: PropTypes.func.isRequired, - getMedia: PropTypes.func.isRequired, - value: PropTypes.string, - }; +function buildInputRules(schema) { + let result = [], type; + if (type = schema.nodes.blockquote) result.push(blockQuoteRule(type)); + if (type = schema.nodes.ordered_list) result.push(orderedListRule(type)); + if (type = schema.nodes.bullet_list) result.push(bulletListRule(type)); + if (type = schema.nodes.code_block) result.push(codeBlockRule(type)); + if (type = schema.nodes.heading) result.push(headingRule(type, 6)); + return result; +} +export default class Editor extends Component { constructor(props) { super(props); + this.state = {}; + } - const MarkdownSyntax = getSyntaxes(this.getMedia).markdown; - this.markdown = new MarkupIt(MarkdownSyntax); - - SCHEMA.nodes = _.merge(SCHEMA.nodes, getNodes()); - - this.blockEdit = false; - - let rawJson; - if (props.value !== undefined) { - const content = this.markdown.toContent(props.value); - rawJson = SlateUtils.encode(content, null, ['mediaproxy'].concat(getPlugins().map(plugin => plugin.id))); - } else { - rawJson = emptyParagraphBlock; - } - this.state = { - state: Raw.deserialize(rawJson, { terse: true }), - }; - - this.plugins = [ - PluginDropImages({ - applyTransform: (transform, file) => { - const mediaProxy = new MediaProxy(file.name, file); - props.onAddMedia(mediaProxy); - return transform - .insertBlock(mediaproxyBlock(mediaProxy)); - }, + componentDidMount() { + this.view = new EditorView(this.ref, { + state: EditorState.create({ + doc: defaultMarkdownParser.parse(this.props.value || ''), + schema, + plugins: [ + inputRules({ + rules: allInputRules.concat(buildInputRules(schema)), + }), + keymap(buildKeymap(schema, { + 'Mod-z': history.undo, + 'Mod-y': history.redo, + })), + keymap(baseKeymap), + history.history(), + ], }), - ]; + onAction: this.handleAction, + }); } - getMedia = (src) => { - return this.props.getMedia(src); + handleAction = (action) => { + const newState = this.view.state.applyAction(action); + switch (action.type) { + case 'selection': + this.handleSelection(newState); + default: + const md = defaultMarkdownSerializer.serialize(newState.doc); + this.props.onChange(md); + } + this.view.updateState(newState); + this.view.focus(); }; - /** - * Slate keeps track of selections, scroll position etc. - * So, onChange gets dispatched on every interaction (click, arrows, everything...) - * It also have an onDocumentChange, that get's dispatched only when the actual - * content changes - */ - handleChange = (state) => { - if (this.blockEdit) { - this.blockEdit = false; + handleSelection = (state) => { + const { selection } = state; + if (selection.from === selection.to) { + const pos = this.view.coordsAtPos(selection.from); + const editorPos = this.view.content.getBoundingClientRect(); + const selectionPosition = { top: pos.top - editorPos.top, left: pos.left - editorPos.left }; + this.setState({ showToolbar: false, selectionPosition }); } else { - this.setState({ state }); + this.setState({ showToolbar: true }); } }; - handleDocumentChange = (document, state) => { - const rawJson = Raw.serialize(state, { terse: true }); - const content = SlateUtils.decode(rawJson); - this.props.onChange(this.markdown.toText(content)); + handleRef = (ref) => { + this.ref = ref; }; - /** - * Toggle marks / blocks when button is clicked - */ - handleMarkStyleClick = (type) => { - let { state } = this.state; - - state = state - .transform() - .toggleMark(type) - .apply(); - - this.setState({ state }); - }; - - handleBlockStyleClick = (type, isActive, isList) => { - let { state } = this.state; - let transform = state.transform(); - const { document } = state; - - // Handle everything but list buttons. - if (type != 'unordered_list' && type != 'ordered_list') { - if (isList) { - transform = transform - .setBlock(isActive ? DEFAULT_NODE : type) - .unwrapBlock('unordered_list') - .unwrapBlock('ordered_list'); - } - - else { - transform = transform - .setBlock(isActive ? DEFAULT_NODE : type); - } + handleHeader = level => ( + () => { + const command = setBlockType(schema.nodes.heading, { level }); + command(this.view.state, this.handleAction); } + ); - // Handle the extra wrapping required for list buttons. - else { - const isType = state.blocks.some((block) => { - return !!document.getClosest(block, parent => parent.type == type); - }); - - if (isList && isType) { - transform = transform - .setBlock(DEFAULT_NODE) - .unwrapBlock('unordered_list'); - } else if (isList) { - transform = transform - .unwrapBlock(type == 'unordered_list') - .wrapBlock(type); - } else { - transform = transform - .setBlock('list_item') - .wrapBlock(type); - } - } - - state = transform.apply(); - this.setState({ state }); + handleBold = () => { + const command = toggleMark(schema.marks.strong); + command(this.view.state, this.handleAction); }; - /** - * When clicking a link, if the selection has a link in it, remove the link. - * Otherwise, add a new link with an href and text. - * - * @param {Event} e - */ - - handleInlineClick = (type, isActive) => { - let { state } = this.state; - - if (type === 'link') { - if (!state.isExpanded) return; - - if (isActive) { - state = state - .transform() - .unwrapInline('link') - .apply(); - } - - else { - const href = window.prompt('Enter the URL of the link:', 'http://www.'); // eslint-disable-line - state = state - .transform() - .wrapInline({ - type: 'link', - data: { href }, - }) - .collapseToEnd() - .apply(); - } - } - this.setState({ state }); + handleItalic = () => { + const command = toggleMark(schema.marks.em); + command(this.view.state, this.handleAction); }; - handleBlockTypeClick = (type) => { - let { state } = this.state; - - state = state - .transform() - .insertBlock({ - type, - isVoid: true, - }) - .apply(); - - this.setState({ state }, this.focusAndAddParagraph); + handleToggle = () => { + this.props.onMode('raw'); }; - handlePluginClick = (type, data) => { - let { state } = this.state; - - state = state - .transform() - .insertInline({ - type, - data, - isVoid: true, - }) - .collapseToEnd() - .insertBlock(DEFAULT_NODE) - .focus() - .apply(); - - this.setState({ state }); - }; - - handleImageClick = (mediaProxy) => { - let { state } = this.state; - this.props.onAddMedia(mediaProxy); - - state = state - .transform() - .insertBlock(mediaproxyBlock(mediaProxy)) - .apply(); - - this.setState({ state }); - }; - - focusAndAddParagraph = () => { - const { state } = this.state; - const blocks = state.document.getBlocks(); - const last = blocks.last(); - const normalized = state - .transform() - .focus() - .collapseToEndOf(last) - .splitBlock() - .setBlock(DEFAULT_NODE) - .apply({ - snapshot: false, - }); - this.setState({ state: normalized }); - }; - - handleKeyDown = (evt) => { - if (evt.shiftKey && evt.key === 'Enter') { - this.blockEdit = true; - let { state } = this.state; - state = state - .transform() - .insertText('\n') - .apply(); - - this.setState({ state }); - } - }; - - renderBlockTypesMenu = () => { - const currentBlock = this.state.state.blocks.get(0); - const isOpen = (this.props.value !== undefined && currentBlock.isEmpty && currentBlock.type !== 'horizontal-rule'); - - return ( - - ); - }; - - renderStylesMenu() { - const { state } = this.state; - const isOpen = !(state.isBlurred || state.isCollapsed); - - return ( - - ); - } - render() { - return ( -
- {this.renderStylesMenu()} - {this.renderBlockTypesMenu()} - -
- ); + const { showToolbar, selectionPosition } = this.state; + + return (
+ +
+
); } } diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/keymap.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/keymap.js new file mode 100644 index 00000000..cae9f5d1 --- /dev/null +++ b/src/components/Widgets/MarkdownControlElements/VisualEditor/keymap.js @@ -0,0 +1,92 @@ +const {wrapIn, setBlockType, chainCommands, newlineInCode, toggleMark} = require("prosemirror-commands") +const {selectNextCell, selectPreviousCell} = require("prosemirror-schema-table") +const {wrapInList, splitListItem, liftListItem, sinkListItem} = require("prosemirror-schema-list") +const {undo, redo} = require("prosemirror-history") + +const mac = typeof navigator != "undefined" ? /Mac/.test(navigator.platform) : false + +// :: (Schema, ?Object) → Object +// Inspect the given schema looking for marks and nodes from the +// basic schema, and if found, add key bindings related to them. +// This will add: +// +// * **Mod-b** for toggling [strong](#schema-basic.StrongMark) +// * **Mod-i** for toggling [emphasis](#schema-basic.EmMark) +// * **Mod-`** for toggling [code font](#schema-basic.CodeMark) +// * **Ctrl-Shift-0** for making the current textblock a paragraph +// * **Ctrl-Shift-1** to **Ctrl-Shift-Digit6** for making the current +// textblock a heading of the corresponding level +// * **Ctrl-Shift-Backslash** to make the current textblock a code block +// * **Ctrl-Shift-8** to wrap the selection in an ordered list +// * **Ctrl-Shift-9** to wrap the selection in a bullet list +// * **Ctrl->** to wrap the selection in a block quote +// * **Enter** to split a non-empty textblock in a list item while at +// the same time splitting the list item +// * **Mod-Enter** to insert a hard break +// * **Mod-_** to insert a horizontal rule +// +// You can suppress or map these bindings by passing a `mapKeys` +// argument, which maps key names (say `"Mod-B"` to either `false`, to +// remove the binding, or a new key name string. +function buildKeymap(schema, mapKeys) { + let keys = {}, type + function bind(key, cmd) { + if (mapKeys) { + let mapped = mapKeys[key] + if (mapped === false) return + if (mapped) key = mapped + } + keys[key] = cmd + } + + bind("Mod-z", undo) + bind("Mod-y", redo) + + if (type = schema.marks.strong) + bind("Mod-b", toggleMark(type)) + if (type = schema.marks.em) + bind("Mod-i", toggleMark(type)) + if (type = schema.marks.code) + bind("Mod-`", toggleMark(type)) + + if (type = schema.nodes.bullet_list) + bind("Shift-Ctrl-8", wrapInList(type)) + if (type = schema.nodes.ordered_list) + bind("Shift-Ctrl-9", wrapInList(type)) + if (type = schema.nodes.blockquote) + bind("Ctrl->", wrapIn(type)) + if (type = schema.nodes.hard_break) { + let br = type, cmd = chainCommands(newlineInCode, (state, onAction) => { + onAction(state.tr.replaceSelection(br.create()).scrollAction()) + return true + }) + bind("Mod-Enter", cmd) + bind("Shift-Enter", cmd) + if (mac) bind("Ctrl-Enter", cmd) + } + if (type = schema.nodes.list_item) { + bind("Enter", splitListItem(type)) + bind("Mod-[", liftListItem(type)) + bind("Mod-]", sinkListItem(type)) + } + if (type = schema.nodes.paragraph) + bind("Shift-Ctrl-0", setBlockType(type)) + if (type = schema.nodes.code_block) + bind("Shift-Ctrl-\\", setBlockType(type)) + if (type = schema.nodes.heading) + for (let i = 1; i <= 6; i++) bind("Shift-Ctrl-" + i, setBlockType(type, {level: i})) + if (type = schema.nodes.horizontal_rule) { + let hr = type + bind("Mod-_", (state, onAction) => { + onAction(state.tr.replaceSelection(hr.create()).scrollAction()) + return true + }) + } + + if (schema.nodes.table_row) { + bind("Tab", selectNextCell) + bind("Shift-Tab", selectPreviousCell) + } + return keys +} +exports.buildKeymap = buildKeymap diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/schema.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/schema.js deleted file mode 100644 index 412dae5e..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/schema.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react'; -import Block from './Block'; -import styles from './index.css'; - -/* eslint react/prop-types: 0, react/no-multi-comp: 0 */ - -// Define the default node type. -export const DEFAULT_NODE = 'paragraph'; - -/** - * Define a schema. - * - * @type {Object} - */ - -export const SCHEMA = { - nodes: { - 'blockquote': (props) => {props.children}, - 'unordered_list': props =>
    {props.children}
, - 'header_one': props => {props.children}, - 'header_two': props => {props.children}, - 'header_three': props => {props.children}, - 'header_four': props => {props.children}, - 'header_five': props => {props.children}, - 'header_six': props => {props.children}, - 'list_item': props =>
  • {props.children}
  • , - 'paragraph': props => {props.children}, - 'hr': props => { - const { node, state } = props; - const isFocused = state.selection.hasEdgeIn(node); - const className = isFocused ? styles.active : null; - return ( -
    - ); - }, - 'link': (props) => { - const { data } = props.node; - const href = data.get('href'); - return {props.children}; - }, - 'image': (props) => { - const { node, state } = props; - const isFocused = state.selection.hasEdgeIn(node); - const className = isFocused ? styles.active : null; - const src = node.data.get('src'); - return ( - - ); - } - }, - marks: { - BOLD: { - fontWeight: 'bold' - }, - ITALIC: { - fontStyle: 'italic' - }, - CODE: { - fontFamily: 'monospace', - backgroundColor: '#eee', - padding: '3px', - borderRadius: '4px' - } - } -}; diff --git a/src/components/Widgets/MarkdownControlElements/VisualEditor/withPortalAtCursorPosition.js b/src/components/Widgets/MarkdownControlElements/VisualEditor/withPortalAtCursorPosition.js deleted file mode 100644 index 4ff68cb0..00000000 --- a/src/components/Widgets/MarkdownControlElements/VisualEditor/withPortalAtCursorPosition.js +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; -import Portal from 'react-portal'; -import position from 'selection-position'; - -export default function withPortalAtCursorPosition(WrappedComponent) { - return class extends React.Component { - - static propTypes = { - isOpen: React.PropTypes.bool.isRequired, - }; - - state = { - menu: null, - cursorPosition: null, - }; - - componentDidMount() { - this.adjustPosition(); - } - - componentDidUpdate() { - this.adjustPosition(); - } - - adjustPosition = () => { - const { menu } = this.state; - - if (!menu) return; - - const cursorPosition = position(); // TODO: Results aren't determenistic - const centerX = Math.ceil( - cursorPosition.left - + cursorPosition.width / 2 - + window.scrollX - - menu.offsetWidth / 2 - ); - const centerY = cursorPosition.top + window.scrollY; - menu.style.opacity = 1; - menu.style.top = `${ centerY }px`; - menu.style.left = `${ centerX }px`; - }; - - /** - * When the portal opens, cache the menu element. - */ - handleOpen = (portal) => { - this.setState({ menu: portal.firstChild }); - }; - - render() { - const { isOpen, ...rest } = this.props; - return ( - - - - ); - } - }; -} diff --git a/yarn.lock b/yarn.lock index fc22a8e5..43b9452a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,8 +111,8 @@ ajv-keywords@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50" ajv@^4.7.0: - version "4.7.7" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.7.7.tgz#4980d5f65ce90a2579532eec66429f320dea0321" + version "4.8.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.8.2.tgz#65486936ca36fea39a1504332a78bebd5d447bdc" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -137,9 +137,9 @@ ansi-escapes@^1.0.0, ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" -ansi-html@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.5.tgz#0dcaa5a081206866bc240a3b773a184ea3b88b64" +ansi-html@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.6.tgz#bda8e33dd2ee1c20f54c08eb405713cbfc0ed80e" ansi-regex@^2.0.0: version "2.0.0" @@ -298,10 +298,10 @@ async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.0, async@1.x: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.0.1.tgz#b709cc0280a9c36f09f4536be823c838a9049e25" + version "2.1.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" dependencies: - lodash "^4.8.0" + lodash "^4.14.0" async@~0.2.6: version "0.2.10" @@ -312,14 +312,14 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" autoprefixer@^6.0.0, autoprefixer@^6.0.2, autoprefixer@^6.3.1, autoprefixer@^6.3.3: - version "6.5.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.0.tgz#910de0aa0f22af4c7d50367cbc9d4d412945162f" + version "6.5.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.1.tgz#ae759a5221e709f3da17c2d656230e67c43cbb75" dependencies: browserslist "~1.4.0" - caniuse-db "^1.0.30000540" + caniuse-db "^1.0.30000554" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.2" + postcss "^5.2.4" postcss-value-parser "^3.2.3" aws-sign2@~0.6.0: @@ -338,172 +338,170 @@ babel-code-frame@^6.16.0: esutils "^2.0.2" js-tokens "^2.0.0" -babel-core@^6.0.0, babel-core@^6.11.4, babel-core@^6.16.0, babel-core@^6.5.1, babel-core@^6.9.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" +babel-core@^6.0.0, babel-core@^6.11.4, babel-core@^6.18.0, babel-core@^6.5.1, babel-core@^6.9.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.0.tgz#bb5ce9bc0a956e6e94e2f12d597abb3b0b330deb" dependencies: babel-code-frame "^6.16.0" - babel-generator "^6.17.0" + babel-generator "^6.18.0" babel-helpers "^6.16.0" babel-messages "^6.8.0" - babel-register "^6.16.0" + babel-register "^6.18.0" babel-runtime "^6.9.1" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babylon "^6.11.0" convert-source-map "^1.1.0" debug "^2.1.1" - json5 "^0.4.0" + json5 "^0.5.0" lodash "^4.2.0" minimatch "^3.0.2" - path-exists "^1.0.0" path-is-absolute "^1.0.0" private "^0.1.6" - shebang-regex "^1.0.0" slash "^1.0.0" source-map "^0.5.0" babel-eslint@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.0.0.tgz#54e51b4033f54ac81326ecea4c646a779935196d" + version "7.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.0.tgz#d506a5174ba224e25a2d17e128e2ba8987139ddc" dependencies: babel-traverse "^6.15.0" babel-types "^6.15.0" babylon "^6.11.2" lodash.pickby "^4.6.0" -babel-generator@^6.11.3, babel-generator@^6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.17.0.tgz#b894e3808beef7800f2550635bfe024b6226cf33" +babel-generator@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07" dependencies: babel-messages "^6.8.0" babel-runtime "^6.9.0" - babel-types "^6.16.0" - detect-indent "^3.0.1" + babel-types "^6.18.0" + detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" source-map "^0.5.0" -babel-helper-bindify-decorators@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.8.0.tgz#b34805a30b1433cc0042f7054f88a7133c144909" +babel-helper-bindify-decorators@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.18.0.tgz#fc00c573676a6e702fffa00019580892ec8780a5" dependencies: babel-runtime "^6.0.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-helper-builder-binary-assignment-operator-visitor@^6.8.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.15.0.tgz#39e9ee143f797b642262e4646c681c32089ef1ab" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.18.0.tgz#8ae814989f7a53682152e3401a04fabd0bb333a6" dependencies: - babel-helper-explode-assignable-expression "^6.8.0" + babel-helper-explode-assignable-expression "^6.18.0" babel-runtime "^6.0.0" - babel-types "^6.15.0" + babel-types "^6.18.0" babel-helper-builder-react-jsx@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.9.0.tgz#a633978d669c4c9dcad716cc577ee3e0bb8ae723" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71" dependencies: babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-types "^6.18.0" esutils "^2.0.0" lodash "^4.2.0" -babel-helper-call-delegate@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.8.0.tgz#9d283e7486779b6b0481864a11b371ea5c01fa64" +babel-helper-call-delegate@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd" dependencies: - babel-helper-hoist-variables "^6.8.0" + babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.0.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-define-map@^6.8.0, babel-helper-define-map@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.9.0.tgz#6629f9b2a7e58e18e8379a57d1e6fbb2969902fb" +babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2" dependencies: - babel-helper-function-name "^6.8.0" + babel-helper-function-name "^6.18.0" babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-types "^6.18.0" lodash "^4.2.0" -babel-helper-explode-assignable-expression@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.8.0.tgz#9b3525e05b761c3b88919d730a28bad1967e6556" +babel-helper-explode-assignable-expression@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.18.0.tgz#14b8e8c2d03ad735d4b20f1840b24cd1f65239fe" dependencies: babel-runtime "^6.0.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-helper-explode-class@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.8.0.tgz#196a228cc69ea57308695e4ebd1a36cf3f8eca3d" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.18.0.tgz#c44f76f4fa23b9c5d607cbac5d4115e7a76f62cb" dependencies: - babel-helper-bindify-decorators "^6.8.0" + babel-helper-bindify-decorators "^6.18.0" babel-runtime "^6.0.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-function-name@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.8.0.tgz#a0336ba14526a075cdf502fc52d3fe84b12f7a34" +babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6" dependencies: - babel-helper-get-function-arity "^6.8.0" + babel-helper-get-function-arity "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" - babel-traverse "^6.8.0" - babel-types "^6.8.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-get-function-arity@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.8.0.tgz#88276c24bd251cdf6f61b6f89f745f486ced92af" +babel-helper-get-function-arity@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" -babel-helper-hoist-variables@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.8.0.tgz#8b0766dc026ea9ea423bc2b34e665a4da7373aaf" +babel-helper-hoist-variables@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" -babel-helper-optimise-call-expression@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.8.0.tgz#4175628e9c89fc36174904f27070f29d38567f06" +babel-helper-optimise-call-expression@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-helper-regex@^6.8.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.9.0.tgz#c74265fde180ff9a16735fee05e63cadb9e0b057" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6" dependencies: babel-runtime "^6.9.0" - babel-types "^6.9.0" + babel-types "^6.18.0" lodash "^4.2.0" babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.16.2: - version "6.16.2" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.16.2.tgz#24315bde8326c60022dc053cce84cfe38d724b82" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.18.0.tgz#336cdf3cab650bb191b02fc16a3708e7be7f9ce5" dependencies: - babel-helper-function-name "^6.8.0" + babel-helper-function-name "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-helper-replace-supers@^6.14.0, babel-helper-replace-supers@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.16.0.tgz#21c97623cc7e430855753f252740122626a39e6b" +babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e" dependencies: - babel-helper-optimise-call-expression "^6.8.0" + babel-helper-optimise-call-expression "^6.18.0" babel-messages "^6.8.0" babel-runtime "^6.0.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-helpers@^6.16.0: version "6.16.0" @@ -529,9 +527,10 @@ babel-jest@^16.0.0: babel-preset-jest "^16.0.0" babel-loader@^6.2.2, babel-loader@^6.2.4: - version "6.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.5.tgz#576d548520689a5e6b70c65b85d76af1ffedd005" + version "6.2.7" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.7.tgz#16fdbf64328030dc5a606827d389c8b92a2a8032" dependencies: + find-cache-dir "^0.1.1" loader-utils "^0.2.11" mkdirp "^0.5.1" object-assign "^4.0.1" @@ -549,12 +548,12 @@ babel-plugin-check-es2015-constants@^6.3.13: babel-runtime "^6.0.0" babel-plugin-istanbul@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.2.tgz#66c957fd3b2ace69215955c0ea5920980958cbf3" + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz#266b304b9109607d60748474394676982f660df4" dependencies: find-up "^1.1.2" - istanbul-lib-instrument "^1.1.1" - lodash.assign "^4.2.0" + istanbul-lib-instrument "^1.1.4" + object-assign "^4.1.0" test-exclude "^2.1.1" babel-plugin-jest-hoist@^15.0.0: @@ -580,9 +579,9 @@ babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" -babel-plugin-syntax-class-constructor-call@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.13.0.tgz#96fb2e9f177dca22824065de4392f2fe3486b765" +babel-plugin-syntax-class-constructor-call@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" @@ -596,6 +595,10 @@ babel-plugin-syntax-do-expressions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" @@ -604,17 +607,17 @@ babel-plugin-syntax-export-extensions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" -babel-plugin-syntax-flow@^6.3.13, babel-plugin-syntax-flow@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.13.0.tgz#9af0cd396087bf7677053e1afa52f206c0416f17" +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" babel-plugin-syntax-function-bind@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.13.0.tgz#e741ff3992c578310be45c571bcd90a2f9c5586e" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -652,18 +655,18 @@ babel-plugin-transform-cjs-system-wrapper@^0.2.1: babel-template "^6.9.0" babel-plugin-transform-class-constructor-call@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.8.0.tgz#6e740bc80f16d295fa598d92518666020a906192" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.18.0.tgz#80855e38a1ab47b8c6c647f8ea1bcd2c00ca3aae" dependencies: - babel-plugin-syntax-class-constructor-call "^6.8.0" + babel-plugin-syntax-class-constructor-call "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-class-properties@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.16.0.tgz#969bca24d34e401d214f36b8af5c1346859bc904" +babel-plugin-transform-class-properties@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.18.0.tgz#bc1266a39d4c8726e0bd7b15c56235177e6ede57" dependencies: - babel-helper-function-name "^6.8.0" + babel-helper-function-name "^6.18.0" babel-plugin-syntax-class-properties "^6.8.0" babel-runtime "^6.9.1" @@ -697,29 +700,29 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-block-scoping@^6.14.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.15.0.tgz#5b443ca142be8d1db6a8c2ae42f51958b66b70f6" +babel-plugin-transform-es2015-block-scoping@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af" dependencies: babel-runtime "^6.9.0" babel-template "^6.15.0" - babel-traverse "^6.15.0" - babel-types "^6.15.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" lodash "^4.2.0" -babel-plugin-transform-es2015-classes@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.14.0.tgz#87d5149ee91fb475922409f9af5b2ba5d1e39287" +babel-plugin-transform-es2015-classes@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9" dependencies: - babel-helper-define-map "^6.9.0" - babel-helper-function-name "^6.8.0" - babel-helper-optimise-call-expression "^6.8.0" - babel-helper-replace-supers "^6.14.0" + babel-helper-define-map "^6.18.0" + babel-helper-function-name "^6.18.0" + babel-helper-optimise-call-expression "^6.18.0" + babel-helper-replace-supers "^6.18.0" babel-messages "^6.8.0" babel-runtime "^6.9.0" babel-template "^6.14.0" - babel-traverse "^6.14.0" - babel-types "^6.14.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" babel-plugin-transform-es2015-computed-properties@^6.3.13: version "6.8.0" @@ -729,9 +732,9 @@ babel-plugin-transform-es2015-computed-properties@^6.3.13: babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-es2015-destructuring@^6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" +babel-plugin-transform-es2015-destructuring@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5" dependencies: babel-runtime "^6.9.0" @@ -742,9 +745,9 @@ babel-plugin-transform-es2015-duplicate-keys@^6.6.0: babel-runtime "^6.0.0" babel-types "^6.8.0" -babel-plugin-transform-es2015-for-of@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.8.0.tgz#82eda139ba4270dda135c3ec1b1f2813fa62f23c" +babel-plugin-transform-es2015-for-of@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70" dependencies: babel-runtime "^6.0.0" @@ -762,36 +765,36 @@ babel-plugin-transform-es2015-literals@^6.3.13: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-modules-amd@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.8.0.tgz#25d954aa0bf04031fc46d2a8e6230bb1abbde4a3" +babel-plugin-transform-es2015-modules-amd@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40" dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-es2015-modules-commonjs@^6.16.0, babel-plugin-transform-es2015-modules-commonjs@^6.8.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.16.0.tgz#0a34b447bc88ad1a70988b6d199cca6d0b96c892" +babel-plugin-transform-es2015-modules-commonjs@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc" dependencies: - babel-plugin-transform-strict-mode "^6.8.0" + babel-plugin-transform-strict-mode "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.16.0" - babel-types "^6.16.0" + babel-types "^6.18.0" -babel-plugin-transform-es2015-modules-systemjs@^6.14.0, babel-plugin-transform-es2015-modules-systemjs@^6.6.5: - version "6.14.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.14.0.tgz#c519b5c73e32388e679c9b1edf41b2fc23dc3303" +babel-plugin-transform-es2015-modules-systemjs@^6.18.0, babel-plugin-transform-es2015-modules-systemjs@^6.6.5: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad" dependencies: - babel-helper-hoist-variables "^6.8.0" + babel-helper-hoist-variables "^6.18.0" babel-runtime "^6.11.6" babel-template "^6.14.0" -babel-plugin-transform-es2015-modules-umd@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.12.0.tgz#5d73559eb49266775ed281c40be88a421bd371a3" +babel-plugin-transform-es2015-modules-umd@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50" dependencies: - babel-plugin-transform-es2015-modules-amd "^6.8.0" + babel-plugin-transform-es2015-modules-amd "^6.18.0" babel-runtime "^6.0.0" babel-template "^6.8.0" @@ -802,23 +805,23 @@ babel-plugin-transform-es2015-object-super@^6.3.13: babel-helper-replace-supers "^6.8.0" babel-runtime "^6.0.0" -babel-plugin-transform-es2015-parameters@^6.16.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" +babel-plugin-transform-es2015-parameters@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1" dependencies: - babel-helper-call-delegate "^6.8.0" - babel-helper-get-function-arity "^6.8.0" + babel-helper-call-delegate "^6.18.0" + babel-helper-get-function-arity "^6.18.0" babel-runtime "^6.9.0" babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" -babel-plugin-transform-es2015-shorthand-properties@^6.3.13: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.8.0.tgz#f0a4c5fd471630acf333c2d99c3d677bf0952149" +babel-plugin-transform-es2015-shorthand-properties@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-plugin-transform-es2015-spread@^6.3.13: version "6.8.0" @@ -840,9 +843,9 @@ babel-plugin-transform-es2015-template-literals@^6.6.0: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-es2015-typeof-symbol@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.8.0.tgz#84c29eb1219372480955a020fef7a65c44f30533" +babel-plugin-transform-es2015-typeof-symbol@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798" dependencies: babel-runtime "^6.0.0" @@ -870,10 +873,10 @@ babel-plugin-transform-export-extensions@^6.3.13: babel-runtime "^6.0.0" babel-plugin-transform-flow-strip-types@^6.3.13: - version "6.14.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.14.0.tgz#35ceb03f8770934044bab1a76f7e4ee0aa9220f9" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.18.0.tgz#4d3e642158661e9b40db457c004a30817fa32592" dependencies: - babel-plugin-syntax-flow "^6.8.0" + babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.0.0" babel-plugin-transform-function-bind@^6.3.13: @@ -932,12 +935,12 @@ babel-plugin-transform-regenerator@^6.16.0: babel-types "^6.16.0" private "~0.1.5" -babel-plugin-transform-strict-mode@^6.8.0: - version "6.11.3" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.11.3.tgz#183741325126bc7ec9cf4c0fc257d3e7ca5afd40" +babel-plugin-transform-strict-mode@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d" dependencies: babel-runtime "^6.0.0" - babel-types "^6.8.0" + babel-types "^6.18.0" babel-plugin-transform-system-register@0.0.1: version "0.0.1" @@ -952,31 +955,31 @@ babel-polyfill@^6.9.1: regenerator-runtime "^0.9.5" babel-preset-es2015@^6.5.0, babel-preset-es2015@^6.9.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.16.0.tgz#59acecd1efbebaf48f89404840f2fe78c4d2ad5c" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" dependencies: babel-plugin-check-es2015-constants "^6.3.13" babel-plugin-transform-es2015-arrow-functions "^6.3.13" babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" - babel-plugin-transform-es2015-block-scoping "^6.14.0" - babel-plugin-transform-es2015-classes "^6.14.0" + babel-plugin-transform-es2015-block-scoping "^6.18.0" + babel-plugin-transform-es2015-classes "^6.18.0" babel-plugin-transform-es2015-computed-properties "^6.3.13" - babel-plugin-transform-es2015-destructuring "^6.16.0" + babel-plugin-transform-es2015-destructuring "^6.18.0" babel-plugin-transform-es2015-duplicate-keys "^6.6.0" - babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.18.0" babel-plugin-transform-es2015-function-name "^6.9.0" babel-plugin-transform-es2015-literals "^6.3.13" - babel-plugin-transform-es2015-modules-amd "^6.8.0" - babel-plugin-transform-es2015-modules-commonjs "^6.16.0" - babel-plugin-transform-es2015-modules-systemjs "^6.14.0" - babel-plugin-transform-es2015-modules-umd "^6.12.0" + babel-plugin-transform-es2015-modules-amd "^6.18.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-modules-systemjs "^6.18.0" + babel-plugin-transform-es2015-modules-umd "^6.18.0" babel-plugin-transform-es2015-object-super "^6.3.13" - babel-plugin-transform-es2015-parameters "^6.16.0" - babel-plugin-transform-es2015-shorthand-properties "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.18.0" + babel-plugin-transform-es2015-shorthand-properties "^6.18.0" babel-plugin-transform-es2015-spread "^6.3.13" babel-plugin-transform-es2015-sticky-regex "^6.3.13" babel-plugin-transform-es2015-template-literals "^6.6.0" - babel-plugin-transform-es2015-typeof-symbol "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.18.0" babel-plugin-transform-es2015-unicode-regex "^6.3.13" babel-plugin-transform-regenerator "^6.16.0" @@ -1012,7 +1015,7 @@ babel-preset-stage-0@^6.5.0: babel-plugin-transform-function-bind "^6.3.13" babel-preset-stage-1 "^6.16.0" -babel-preset-stage-1, babel-preset-stage-1@^6.16.0: +babel-preset-stage-1@^6.16.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.16.0.tgz#9d31fbbdae7b17c549fd3ac93e3cf6902695e479" dependencies: @@ -1021,10 +1024,11 @@ babel-preset-stage-1, babel-preset-stage-1@^6.16.0: babel-preset-stage-2 "^6.16.0" babel-preset-stage-2@^6.16.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.17.0.tgz#dc4f84582781353cef36c41247eae5e36c4cae0d" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.18.0.tgz#9eb7bf9a8e91c68260d5ba7500493caaada4b5b5" dependencies: - babel-plugin-transform-class-properties "^6.16.0" + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.18.0" babel-plugin-transform-decorators "^6.13.0" babel-preset-stage-3 "^6.17.0" @@ -1038,22 +1042,21 @@ babel-preset-stage-3@^6.17.0: babel-plugin-transform-exponentiation-operator "^6.3.13" babel-plugin-transform-object-rest-spread "^6.16.0" -babel-register@^6.16.0: - version "6.16.3" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.16.3.tgz#7b0c0ca7bfdeb9188ba4c27e5fcb7599a497c624" +babel-register@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" dependencies: - babel-core "^6.16.0" + babel-core "^6.18.0" babel-runtime "^6.11.6" core-js "^2.4.0" - home-or-tmp "^1.0.0" + home-or-tmp "^2.0.0" lodash "^4.2.0" mkdirp "^0.5.1" - path-exists "^1.0.0" source-map-support "^0.4.2" babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.5.0, babel-runtime@^6.6.1, babel-runtime@^6.9.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2, babel-runtime@6.x.x: - version "6.11.6" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.11.6.tgz#6db707fef2d49c49bfa3cb64efdb436b518b8222" + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" dependencies: core-js "^2.4.0" regenerator-runtime "^0.9.5" @@ -1068,32 +1071,32 @@ babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-te babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.14.0, babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.7.3, babel-traverse@^6.8.0, babel-traverse@^6.9.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.16.0.tgz#fba85ae1fd4d107de9ce003149cc57f53bef0c4f" +babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.7.3: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e" dependencies: babel-code-frame "^6.16.0" babel-messages "^6.8.0" babel-runtime "^6.9.0" - babel-types "^6.16.0" + babel-types "^6.18.0" babylon "^6.11.0" debug "^2.2.0" - globals "^8.3.0" + globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.10.2, babel-types@^6.13.0, babel-types@^6.14.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.8.0, babel-types@^6.9.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.16.0.tgz#71cca1dbe5337766225c5c193071e8ebcbcffcfe" +babel-types@^6.13.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8" dependencies: babel-runtime "^6.9.1" esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^1.0.1" -babylon@^6.1.21, babylon@^6.11.0, babylon@^6.11.2, babylon@^6.8.1: - version "6.11.4" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.11.4.tgz#75e1f52187efa0cde5a541a7f7fdda38f6eb5bd2" +babylon@^6.1.21, babylon@^6.11.0, babylon@^6.11.2, babylon@^6.13.0: + version "6.13.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.13.1.tgz#adca350e088f0467647157652bafead6ddb8dfdb" balanced-match@^0.2.0: version "0.2.1" @@ -1137,7 +1140,7 @@ binary-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" -bl@^1.0.0, bl@~1.1.2: +bl@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" dependencies: @@ -1358,9 +1361,9 @@ caniuse-api@^1.3.2: lodash.uniq "^4.3.0" shelljs "^0.7.0" -caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000540: - version "1.0.30000554" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000554.tgz#cd1dbe423d00b6203ba93f05973a476428dec919" +caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000554: + version "1.0.30000572" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000572.tgz#81d0aa6b7de2d785c8dcab135502983276cc707d" capture-stack-trace@^1.0.0: version "1.0.0" @@ -1416,8 +1419,8 @@ cheerio@^0.22.0: lodash.some "^4.4.0" chokidar@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058" + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: anymatch "^1.3.0" async-each "^1.0.0" @@ -1430,6 +1433,10 @@ chokidar@^1.0.0: optionalDependencies: fsevents "^1.0.0" +ci-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + cipher-base@^1.0.0, cipher-base@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" @@ -1538,14 +1545,16 @@ color-convert@^0.5.3, color-convert@0.5.x: resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" color-convert@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.5.0.tgz#7a2b4efb4488df85bca6443cb038b7100fbe7de1" + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.6.0.tgz#7592755faf53938a05b1ea8e5374cab77d6dd190" + dependencies: + color-name "^1.1.1" color-diff@^0.1.3: version "0.1.7" resolved "https://registry.yarnpkg.com/color-diff/-/color-diff-0.1.7.tgz#6db78cd9482a8e459d40821eaf4b503283dcb8e2" -color-name@^1.0.0: +color-name@^1.0.0, color-name@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" @@ -1637,11 +1646,15 @@ commander@^2.9.0, commander@2.9.x: dependencies: graceful-readlink ">= 1.0.0" +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + compressible@~2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.8.tgz#7162e6c46d3b9d200ffb45cb4e4a0f7832732503" + version "2.0.9" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" dependencies: - mime-db ">= 1.23.0 < 2" + mime-db ">= 1.24.0 < 2" compression@^1.5.2: version "1.6.2" @@ -1710,6 +1723,10 @@ content-disposition@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" +content-type-parser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" + content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" @@ -1752,12 +1769,13 @@ cosmiconfig@^1.1.0: require-from-string "^1.1.0" cosmiconfig@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.0.2.tgz#555501957f17b849d44488d55dd2275a6452fff1" + version "2.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.0.tgz#26e384a2055ea4e087050e5e08d53eb4eac8f86e" dependencies: graceful-fs "^4.1.2" js-yaml "^3.4.3" minimist "^1.2.0" + object-assign "^4.1.0" os-homedir "^1.0.1" parse-json "^2.2.0" require-from-string "^1.1.0" @@ -1792,8 +1810,8 @@ create-hmac@^1.1.0, create-hmac@^1.1.2: inherits "^2.0.1" cross-spawn-async@^2.0.0, cross-spawn-async@^2.1.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.4.tgz#c9a8d8e9a06502c7a46296e33a1a054b5d2f1812" + version "2.2.5" + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" dependencies: lru-cache "^4.0.0" which "^1.2.8" @@ -1940,8 +1958,8 @@ cssesc@^0.1.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" "cssnano@>=2.6.1 <4": - version "3.7.7" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.7.7.tgz#27fac611380c6a49d6f722c0537e5a988a785010" + version "3.8.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.8.0.tgz#bb90ac5292f42b679d9a05f6da0e9697556bb80d" dependencies: autoprefixer "^6.3.1" decamelize "^1.1.2" @@ -2150,13 +2168,11 @@ detect-file@^0.1.0: dependencies: fs-exists-sync "^0.1.0" -detect-indent@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-3.0.1.tgz#9dc5e5ddbceef8325764b9451b02bc6d54084f75" +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: - get-stdin "^4.0.1" - minimist "^1.1.0" - repeating "^1.1.0" + repeating "^2.0.0" diff@^3.0.0: version "3.0.1" @@ -2188,8 +2204,8 @@ dnd-core@^2.0.1: redux "^3.2.0" doctrine@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.4.0.tgz#e2db32defa752407b935b381e89f3740e469e599" + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -2592,9 +2608,10 @@ eslint-plugin-react@^6.3.0: jsx-ast-utils "^1.3.1" eslint@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.7.1.tgz#7faa84599e0fea422f04bc32db49054051a3f11a" + version "3.9.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.9.1.tgz#5a8597706fc6048bc6061ac754d4a211d28f4f5b" dependencies: + babel-code-frame "^6.16.0" chalk "^1.1.3" concat-stream "^1.4.6" debug "^2.1.1" @@ -2617,12 +2634,12 @@ eslint@^3.7.1: lodash "^4.0.0" mkdirp "^0.5.0" natural-compare "^1.4.0" - optionator "^0.8.1" + optionator "^0.8.2" path-is-inside "^1.0.1" pluralize "^1.2.1" progress "^1.1.8" require-uncached "^1.0.2" - shelljs "^0.6.0" + shelljs "^0.7.5" strip-bom "^3.0.0" strip-json-comments "~1.0.1" table "^3.7.8" @@ -2693,10 +2710,14 @@ esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb: version "3001.1.0-dev-harmony-fb" resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" -esprima@^2.6.0, esprima@^2.7.1, esprima@~2.7.0, esprima@2.7.x: +esprima@^2.6.0, esprima@^2.7.1, esprima@2.7.x: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" + esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" @@ -2872,13 +2893,17 @@ extend@^3.0.0, extend@~3.0.0: version "3.0.0" 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: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" -extract-text-webpack-plugin: +extract-text-webpack-plugin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c" dependencies: @@ -2999,6 +3024,14 @@ finalhandler@0.5.0: statuses "~1.3.0" unpipe "~1.0.0" +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + find-root@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" @@ -3011,8 +3044,8 @@ find-up@^1.0.0, find-up@^1.1.2: pinkie-promise "^2.0.0" findup-sync@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" dependencies: detect-file "^0.1.0" is-glob "^2.0.1" @@ -3044,7 +3077,7 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flatten@^1.0.2, flatten@1.0.2: +flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" @@ -3052,7 +3085,7 @@ for-in@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" -for-own@^0.1.3: +for-own@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" dependencies: @@ -3066,13 +3099,13 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" +form-data@~2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.1.tgz#4adf0342e1a79afa1e84c8c320a9ffc82392a1f3" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" - mime-types "^2.1.11" + mime-types "^2.1.12" forwarded@~0.1.0: version "0.1.0" @@ -3090,7 +3123,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents, fsevents@^1.0.0: +fsevents@^1.0.0, fsevents@^1.0.14: version "1.0.14" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.14.tgz#558e8cc38643d8ef40fe45158486d0d25758eee4" dependencies: @@ -3236,7 +3269,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@~7.1.0: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@~7.1.0, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -3247,17 +3280,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@~7.1.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-modules@^0.2.0, global-modules@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" @@ -3281,11 +3303,7 @@ global@^4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^8.3.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4" - -globals@^9.2.0: +globals@^9.0.0, globals@^9.2.0: version "9.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.12.0.tgz#992ce90828c3a55fa8f16fada177adb64664cf9d" @@ -3326,12 +3344,12 @@ globjoin@^0.1.2, globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" globule@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.0.0.tgz#f22aebaacce02be492453e979c3ae9b6983f1c6c" + version "1.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" dependencies: - glob "~7.0.3" - lodash "~4.9.0" - minimatch "~3.0.0" + glob "~7.1.1" + lodash "~4.16.4" + minimatch "~3.0.2" got@^5.0.0: version "5.6.0" @@ -3453,12 +3471,12 @@ hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0, hoist-non-react- version "1.2.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" -home-or-tmp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-1.0.0.tgz#4b9f1e40800c3e50c6c27f781676afcce71f3985" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: + os-homedir "^1.0.0" os-tmpdir "^1.0.1" - user-home "^1.1.1" hosted-git-info@^2.1.4: version "2.1.5" @@ -3468,6 +3486,12 @@ html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" +html-encoding-sniffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" + dependencies: + whatwg-encoding "^1.0.1" + html-entities@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" @@ -3477,8 +3501,8 @@ html-tags@^1.1.1: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.1.1.tgz#869f43859f12d9bdc3892419e494a628aa1b204e" htmlparser2@^3.9.0, htmlparser2@^3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.1.tgz#621b7a58bc9acd003f7af0a2c9a00aa67c8505d2" + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" @@ -3512,8 +3536,8 @@ http-proxy-middleware@~0.17.1: micromatch "^2.3.11" http-proxy@^1.15.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.1.tgz#91a6088172e79bc0e821d5eb04ce702f32446393" + version "1.15.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.2.tgz#642fdcaffe52d3448d2bda3b0079e9409064da31" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" @@ -3534,7 +3558,7 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" -iconv-lite@^0.4.13, iconv-lite@~0.4.13: +iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -3552,7 +3576,7 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore@^3.1.2, ignore@^3.1.3, ignore@^3.1.5: +ignore@^3.1.2, ignore@^3.1.5, ignore@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" @@ -3614,8 +3638,8 @@ indexof@0.0.1: resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" inflight@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.5.tgz#db3204cd5a9de2e6cd890b85c6e2f66bcf4f620a" + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" @@ -3688,11 +3712,11 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.0.0.tgz#9c4b20b0e5c0cbef9a479a367ede6f991679f359" is-absolute@^0.2.3: - version "0.2.5" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.5.tgz#994142b9f468d27c14fbf0cd30fe77db934ca76d" + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" dependencies: is-relative "^0.2.1" - is-windows "^0.1.1" + is-windows "^0.2.0" is-arrayish@^0.2.1: version "0.2.1" @@ -3729,8 +3753,10 @@ is-callable@^1.0.4, is-callable@^1.1.1, is-callable@^1.1.3: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" is-ci@^1.0.8, is-ci@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.9.tgz#de2c5ffe49ab3237fda38c47c8a3bbfd55bbcca7" + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" is-data-uri@^0.1.0: version "0.1.0" @@ -3788,9 +3814,9 @@ is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.0.0.tgz#a9b92c1ae2d7a975ad307be0722049c7e4ea2f13" +is-extglob@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" is-finite@^1.0.0: version "1.0.2" @@ -3819,10 +3845,10 @@ is-glob@^2.0.0, is-glob@^2.0.1: is-extglob "^1.0.0" is-glob@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.0.0.tgz#e433c222db9d77844084d72db1eff047845985c1" + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" dependencies: - is-extglob "^2.0.0" + is-extglob "^2.1.0" is-image@^1.0.1: version "1.0.1" @@ -3965,17 +3991,13 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -is-windows@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.1.1.tgz#be310715431cfabccc54ab3951210fa0b6d01abe" - is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" is@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is/-/is-3.1.0.tgz#2945d205d691cbfe4833e3f8a11c8ae94673f2a7" + version "3.2.0" + resolved "https://registry.yarnpkg.com/is/-/is-3.2.0.tgz#a362e3daf7df3fd8b7114115d624c5b7e1cb90f7" is@~0.2.6: version "0.2.7" @@ -4037,16 +4059,17 @@ istanbul-lib-hook@^1.0.0-alpha: dependencies: append-transform "^0.3.0" -istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.1.3.tgz#66d5353d1f592b9e34d1cf9acda9c3f1ab509696" +istanbul-lib-instrument@^1.0.0-alpha, istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.2.0.tgz#73d5d108ab7568c373fdcb7d01c1d42d565bc8c4" dependencies: - babel-generator "^6.11.3" - babel-template "^6.9.0" - babel-traverse "^6.9.0" - babel-types "^6.10.2" - babylon "^6.8.1" + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" istanbul-lib-coverage "^1.0.0" + semver "^5.3.0" istanbul-lib-report@^1.0.0-alpha: version "1.0.0-alpha.3" @@ -4069,8 +4092,8 @@ istanbul-lib-source-maps@^1.0.0-alpha: source-map "^0.5.3" istanbul-reports@^1.0.0-alpha: - version "1.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.0-alpha.8.tgz#094830f4c7f3d482e466aac8abda2495f9ae4689" + version "1.0.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.0.tgz#24b4eb2b1d29d50f103b369bd422f6e640aa0777" dependencies: handlebars "^4.0.3" @@ -4104,8 +4127,8 @@ jest-changed-files@^16.0.0: resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-16.0.0.tgz#7931deff4424182b8173d80e06800d7363b19c45" jest-cli@^16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-16.0.1.tgz#c8c48ce0d1ece34d470562105b236f4f34f39f9d" + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-16.0.2.tgz#d439b28affa7189aa3d046d2af931f7ebb9af69d" dependencies: ansi-escapes "^1.4.0" callsites "^2.0.0" @@ -4116,17 +4139,17 @@ jest-cli@^16.0.1: istanbul-lib-coverage "^1.0.0" istanbul-lib-instrument "^1.1.1" jest-changed-files "^16.0.0" - jest-config "^16.0.0" - jest-environment-jsdom "^16.0.0" + jest-config "^16.0.2" + jest-environment-jsdom "^16.0.2" jest-file-exists "^15.0.0" - jest-haste-map "^16.0.0" - jest-jasmine2 "^16.0.0" - jest-mock "^16.0.0" - jest-resolve "^16.0.0" - jest-resolve-dependencies "^16.0.0" - jest-runtime "^16.0.0" - jest-snapshot "^16.0.0" - jest-util "^16.0.0" + jest-haste-map "^16.0.2" + jest-jasmine2 "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-resolve-dependencies "^16.0.2" + jest-runtime "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" json-stable-stringify "^1.0.0" node-notifier "^4.6.1" sane "~1.4.1" @@ -4136,18 +4159,18 @@ jest-cli@^16.0.1: worker-farm "^1.3.1" yargs "^5.0.0" -jest-config@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-16.0.0.tgz#9be05c331c43a972ab03f9efd582dceefc998386" +jest-config@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-16.0.2.tgz#8e82a9c08846f23dc7fd42b5c0a1f596c385772a" dependencies: chalk "^1.1.1" istanbul "^0.4.5" - jest-environment-jsdom "^16.0.0" - jest-environment-node "^16.0.0" - jest-jasmine2 "^16.0.0" - jest-mock "^16.0.0" - jest-resolve "^16.0.0" - jest-util "^16.0.0" + jest-environment-jsdom "^16.0.2" + jest-environment-node "^16.0.2" + jest-jasmine2 "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-util "^16.0.2" json-stable-stringify "^1.0.0" jest-diff@^16.0.0: @@ -4159,43 +4182,43 @@ jest-diff@^16.0.0: jest-matcher-utils "^16.0.0" pretty-format "~4.2.1" -jest-environment-jsdom@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-16.0.0.tgz#1fc405a249583281ad6b8ef8863ebe2b9d47b57e" +jest-environment-jsdom@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-16.0.2.tgz#548d883b68f8ed0bd6466d8703986296724c1ef7" dependencies: - jest-mock "^16.0.0" - jest-util "^16.0.0" - jsdom "^9.5.0" + jest-mock "^16.0.2" + jest-util "^16.0.2" + jsdom "^9.8.0" -jest-environment-node@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-16.0.0.tgz#470776f814e8997b143708e98ff58b830e374827" +jest-environment-node@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-16.0.2.tgz#eb7b3a4a9c63b728ce023828d4b5661aad8c7a08" dependencies: - jest-mock "^16.0.0" - jest-util "^16.0.0" + jest-mock "^16.0.2" + jest-util "^16.0.2" jest-file-exists@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-15.0.0.tgz#b7fefdd3f4b227cb686bb156ecc7661ee6935a88" -jest-haste-map@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-16.0.0.tgz#2dd23905a9dbefd0e6baf08523ea9931089a33ff" +jest-haste-map@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-16.0.2.tgz#4562915b25171ae2d0d75118c992f0e97536a2ed" dependencies: fb-watchman "^1.9.0" graceful-fs "^4.1.6" multimatch "^2.1.0" worker-farm "^1.3.1" -jest-jasmine2@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-16.0.0.tgz#825efed2b4c3236ef1af0ab8d78d52c45a963323" +jest-jasmine2@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-16.0.2.tgz#c91ae170d127aae22180dbfe181d77655a5da8c3" dependencies: graceful-fs "^4.1.6" jasmine-check "^0.1.4" - jest-matchers "^16.0.0" - jest-snapshot "^16.0.0" - jest-util "^16.0.0" + jest-matchers "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" jest-matcher-utils@^16.0.0: version "16.0.0" @@ -4204,74 +4227,74 @@ jest-matcher-utils@^16.0.0: chalk "^1.1.3" pretty-format "~4.2.1" -jest-matchers@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-16.0.0.tgz#8f65d99e716ba8f4544479601ae4cfaaa4866d16" +jest-matchers@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-16.0.2.tgz#c078c28cfe05b9b1f295f9ab27b5991f1095bbbf" dependencies: jest-diff "^16.0.0" jest-matcher-utils "^16.0.0" - jest-util "^16.0.0" + jest-util "^16.0.2" -jest-mock@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-16.0.0.tgz#39fa77d18b430a9c940d571131961085e2030a6c" +jest-mock@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-16.0.2.tgz#97b533343295d0082e9474a73ac4eb474d1636fe" -jest-resolve-dependencies@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-16.0.0.tgz#7779e36109b571ef0661482efac0c8f2c3a61a80" +jest-resolve-dependencies@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-16.0.2.tgz#b204166d50141469d10667dc216239c0be865729" dependencies: jest-file-exists "^15.0.0" - jest-resolve "^16.0.0" + jest-resolve "^16.0.2" -jest-resolve@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-16.0.0.tgz#9a819b02c3d1581716aac7d5bcdab36df4f30f68" +jest-resolve@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-16.0.2.tgz#46b92b9c2a44aa7ddd9a6b73dc234e9503e8c609" dependencies: browser-resolve "^1.11.2" jest-file-exists "^15.0.0" - jest-haste-map "^16.0.0" + jest-haste-map "^16.0.2" resolve "^1.1.6" -jest-runtime@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-16.0.0.tgz#c5af0c4957198256abcd3d8c5c003188eabb037d" +jest-runtime@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-16.0.2.tgz#a741e8d55a7b5f011bbe17a22c673a83d278a45d" dependencies: babel-core "^6.11.4" babel-jest "^16.0.0" babel-plugin-istanbul "^2.0.0" chalk "^1.1.3" graceful-fs "^4.1.6" - jest-config "^16.0.0" + jest-config "^16.0.2" jest-file-exists "^15.0.0" - jest-haste-map "^16.0.0" - jest-mock "^16.0.0" - jest-resolve "^16.0.0" - jest-snapshot "^16.0.0" - jest-util "^16.0.0" + jest-haste-map "^16.0.2" + jest-mock "^16.0.2" + jest-resolve "^16.0.2" + jest-snapshot "^16.0.2" + jest-util "^16.0.2" json-stable-stringify "^1.0.0" multimatch "^2.1.0" yargs "^5.0.0" -jest-snapshot@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-16.0.0.tgz#a71060d62534e3eb9e61807119b47f971230eb4b" +jest-snapshot@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-16.0.2.tgz#f137a4176d661bd4058910850191d1816bebdaae" dependencies: jest-diff "^16.0.0" jest-file-exists "^15.0.0" jest-matcher-utils "^16.0.0" - jest-util "^16.0.0" + jest-util "^16.0.2" natural-compare "^1.4.0" pretty-format "~4.2.1" -jest-util@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-16.0.0.tgz#a72abcd23ba9be1a02c450324f9beb711f61c9c9" +jest-util@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-16.0.2.tgz#db5123358278e7a34a6d9f837409d649a0db5d54" dependencies: chalk "^1.1.1" diff "^3.0.0" graceful-fs "^4.1.6" jest-file-exists "^15.0.0" - jest-mock "^16.0.0" + jest-mock "^16.0.2" mkdirp "^0.5.1" jju@^1.1.0: @@ -4288,7 +4311,7 @@ js-base64@^2.1.9, js-base64@~2.1.8: version "2.1.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" -js-tokens@^1.0.1, js-tokens@^1.0.2: +js-tokens@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.3.tgz#14e56eb68c8f1a92c43d59f5014ec29dc20f2ae1" @@ -4307,17 +4330,19 @@ jsbn@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" -jsdom@^9.5.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.6.0.tgz#e0e9b15ba07e90b1d9ec083f9bedee0f6800a4fb" +jsdom@^9.8.0: + version "9.8.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.8.3.tgz#fde29c109c32a1131e0b6c65914e64198f97c370" dependencies: abab "^1.0.0" acorn "^2.4.0" acorn-globals "^1.0.4" array-equal "^1.0.0" + content-type-parser "^1.0.1" cssom ">= 0.3.0 < 0.4.0" cssstyle ">= 0.2.36 < 0.3.0" escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" iconv-lite "^0.4.13" nwmatcher ">= 1.3.7 < 2.0.0" parse5 "^1.5.1" @@ -4326,6 +4351,7 @@ jsdom@^9.5.0: symbol-tree ">= 3.1.0 < 4.0.0" tough-cookie "^2.3.1" webidl-conversions "^3.0.1" + whatwg-encoding "^1.0.1" whatwg-url "^3.0.0" xml-name-validator ">= 2.0.1 < 3.0.0" @@ -4365,10 +4391,6 @@ json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" - json5@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" @@ -4416,9 +4438,9 @@ jspm-github@^0.14.11: tar-fs "^1.13.0" which "^1.0.9" -jspm-npm@^0.29.5: - version "0.29.7" - resolved "https://registry.yarnpkg.com/jspm-npm/-/jspm-npm-0.29.7.tgz#029159c3fe210d20f6965821697082e9a2be40ce" +jspm-npm@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/jspm-npm/-/jspm-npm-0.30.0.tgz#3f3ab3c33f1ae7070a240c607c6dd0814affdc39" dependencies: bluebird "^3.0.5" buffer-peek-stream "^1.0.1" @@ -4428,14 +4450,14 @@ jspm-npm@^0.29.5: request "^2.58.0" rmdir "^1.1.0" semver "^5.0.1" - systemjs-builder "^0.15.20" + systemjs-builder "^0.15.33" tar-fs "^1.13.0" traceur "0.0.105" which "^1.1.1" jspm-registry@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/jspm-registry/-/jspm-registry-0.4.1.tgz#2a30c419906ad71d4da692d1532009dd201c5b14" + version "0.4.2" + resolved "https://registry.yarnpkg.com/jspm-registry/-/jspm-registry-0.4.2.tgz#a78ec3f5935bd3c9363da10b94b9c93e5b555e7d" dependencies: graceful-fs "^4.1.3" rimraf "^2.3.2" @@ -4443,8 +4465,8 @@ jspm-registry@^0.4.1: semver "^4.3.3" jspm@^0.17.0-beta.13: - version "0.17.0-beta.29" - resolved "https://registry.yarnpkg.com/jspm/-/jspm-0.17.0-beta.29.tgz#b75f13db7734ba492285409bb57499fb6956e7b2" + version "0.17.0-beta.31" + resolved "https://registry.yarnpkg.com/jspm/-/jspm-0.17.0-beta.31.tgz#34cfd27a0f8d915e788356fd57f2c613595c4ae7" dependencies: bluebird "^3.0.5" chalk "^1.1.1" @@ -4452,7 +4474,7 @@ jspm@^0.17.0-beta.13: glob "^6.0.1" graceful-fs "^4.1.2" jspm-github "^0.14.11" - jspm-npm "^0.29.5" + jspm-npm "^0.30.0" jspm-registry "^0.4.1" liftoff "^2.2.0" minimatch "^3.0.0" @@ -4463,8 +4485,8 @@ jspm@^0.17.0-beta.13: rimraf "^2.4.4" sane "^1.3.3" semver "^5.1.0" - systemjs "0.19.39" - systemjs-builder "0.15.32" + systemjs "0.19.40" + systemjs-builder "0.15.33" traceur "0.0.105" uglify-js "^2.6.1" @@ -4485,8 +4507,8 @@ jstransform@~3.0.0: source-map "0.1.31" jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.2.tgz#dff658782705352111f9865d40471bc4a955961e" + version "1.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.3.tgz#ccfdbe0320ba03f7a1fc4e67ceaf7e2cc0169721" dependencies: acorn-jsx "^3.0.1" object-assign "^4.1.0" @@ -4562,9 +4584,15 @@ liftoff@^2.2.0: rechoir "^0.6.2" resolve "^1.1.7" +linkify-it@~1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a" + dependencies: + uc.micro "^1.0.1" + lint-staged@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.1.0.tgz#4bb3da3b98135b0a076606c5e4f129af034bfe48" + version "3.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.2.0.tgz#6dac6e05b2ed37a9f36df6914577f2c5d58c5934" dependencies: app-root-path "^2.0.0" cosmiconfig "^1.1.0" @@ -4646,8 +4674,8 @@ localforage@^1.4.2: lie "3.0.2" lodash-es@^4.2.1: - version "4.16.4" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.16.4.tgz#4dc3e2cf33a8c343028aa7f7e06d1c9697042599" + version "4.16.5" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.16.5.tgz#0d813fb745f1b038eea63a33cd96435293c51f39" lodash._arraycopy@^3.0.0: version "3.0.0" @@ -5015,13 +5043,9 @@ lodash@^3.7.0: version "3.10.1" 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.15.0, lodash@^4.16.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.8.0, "lodash@4.6.1 || ^4.16.1": - version "4.16.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.4.tgz#01ce306b9bad1319f2a5528674f88297aeb70127" - -lodash@~4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.9.0.tgz#4c20d742f03ce85dc700e0dd7ab9bcab85e6fc14" +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.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.16.4, "lodash@4.6.1 || ^4.16.1": + version "4.16.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.5.tgz#77d88feac548009b1a5c4ca7b49ac431ce346ae8" log-symbols@^1.0.2: version "1.0.2" @@ -5041,10 +5065,10 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.2.0.tgz#69a65aad3de542cf4ee0f4fe74e8e33c709ccb0f" + version "1.3.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" dependencies: - js-tokens "^1.0.1" + js-tokens "^2.0.0" loud-rejection@^1.0.0: version "1.6.0" @@ -5100,15 +5124,25 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +markdown-it@^6.0.4: + version "6.1.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-6.1.1.tgz#ced037f4473ee9f5153ac414f77dc83c91ba927c" + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "~1.2.2" + mdurl "~1.0.1" + uc.micro "^1.0.1" + marked-terminal@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-1.6.2.tgz#44c128d69b5d9776c848314cdf69d4ec96322973" + version "1.7.0" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904" dependencies: cardinal "^1.0.0" - chalk "^1.0.0" + chalk "^1.1.3" cli-table "^0.3.1" lodash.assign "^4.2.0" - node-emoji "^1.3.1" + node-emoji "^1.4.1" marked@^0.3.6: version "0.3.6" @@ -5139,6 +5173,10 @@ math-expression-evaluator@^1.2.14: dependencies: lodash.indexof "^4.0.5" +mdurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -5212,11 +5250,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.23.0 < 2", mime-db@~1.24.0: +"mime-db@>= 1.24.0 < 2", mime-db@~1.24.0: version "1.24.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c" -mime-types@^2.1.11, mime-types@~2.1.11, mime-types@~2.1.7: +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: version "2.1.12" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729" dependencies: @@ -5240,7 +5278,7 @@ minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.0, "minimatch@2 || 3": +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2, "minimatch@2 || 3": version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -5277,12 +5315,12 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mk minimist "0.0.8" mobx@^2.3.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-2.6.0.tgz#0ae83a20488b92d10d4ca326e18fe78a5ab7cb36" + version "2.6.1" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-2.6.1.tgz#7bea19a87e0802c27b0fb6fbeec98fab01efa953" moment@^2.11.2: - version "2.15.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.1.tgz#e979c2a29e22888e60f396f2220a6118f85cd94c" + version "2.15.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" ms@0.7.1: version "0.7.1" @@ -5321,7 +5359,7 @@ netrc@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" -node-emoji@^1.0.3, node-emoji@^1.3.1: +node-emoji@^1.0.3, node-emoji@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.4.1.tgz#c9fa0cf91094335bcb967a6f42b2305c15af2ebc" dependencies: @@ -5426,18 +5464,18 @@ node-notifier@^4.6.1: which "^1.0.5" node-pre-gyp@^0.6.29: - version "0.6.30" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.30.tgz#64d3073a6f573003717ccfe30c89023297babba1" + version "0.6.31" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" dependencies: - mkdirp "~0.5.0" - nopt "~3.0.1" - npmlog "4.x" - rc "~1.1.0" - request "2.x" - rimraf "~2.5.0" + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.0" + rc "~1.1.6" + request "^2.75.0" + rimraf "~2.5.4" semver "~5.3.0" - tar "~2.2.0" - tar-pack "~3.1.0" + tar "~2.2.1" + tar-pack "~3.3.0" node-sass@^3.10.0: version "3.10.1" @@ -5481,7 +5519,7 @@ node.flow@1.2.3: dependencies: node.extend "1.0.8" -nopt@~3.0.1, "nopt@2 || 3", nopt@3.x: +nopt@~3.0.6, "nopt@2 || 3", nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -5509,8 +5547,8 @@ normalize-selector@^0.2.0: resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" normalize-url@^1.4.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.6.1.tgz#a9f254fa065bbc2934461c0c09423815976155a2" + version "1.7.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.7.0.tgz#d82452d98d38821cffddab4d77a5f8d20ce66db0" dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -5581,7 +5619,7 @@ npm-which@^3.0.1: npm-path "^2.0.2" which "^1.2.10" -npmlog@^4.0.0, npmlog@4.x: +npmlog@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" dependencies: @@ -5614,8 +5652,8 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" "nwmatcher@>= 1.3.7 < 2.0.0": - version "1.3.8" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.8.tgz#34edb93de1aa6cb4448b573c9f2a059300241157" + version "1.3.9" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" oauth-sign@~0.8.1: version "0.8.2" @@ -5674,10 +5712,10 @@ object.getownpropertydescriptors@^2.0.3: es-abstract "^1.5.1" object.omit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.0.tgz#868597333d54e60662940bb458605dd6ae12fe94" + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: - for-own "^0.1.3" + for-own "^0.1.4" is-extendable "^0.1.1" object.values@^1.0.3: @@ -5734,7 +5772,7 @@ optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -5863,10 +5901,6 @@ path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" -path-exists@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" - path-exists@^2.0.0, path-exists@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -6159,10 +6193,9 @@ postcss-discard-overridden@^0.1.1: postcss "^5.0.16" postcss-discard-unused@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.1.tgz#5d021f021a6ed6cec7310d4603794a75ddd53232" + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.2.tgz#5d72f7d05d11de0a9589e001958067ccae1b4931" dependencies: - flatten "1.0.2" postcss "^5.0.14" uniqs "^2.0.0" @@ -6217,8 +6250,8 @@ postcss-media-minmax@^2.1.0: postcss "^5.0.4" postcss-media-query-parser@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.1.tgz#b7389644997a5718d05d008756ecafc5f9cf22c9" + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" postcss-merge-idents@^2.1.5: version "2.1.7" @@ -6254,11 +6287,11 @@ postcss-minify-font-values@^1.0.2: postcss-value-parser "^3.0.2" postcss-minify-gradients@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.3.tgz#09d228148c942fa8126679de9ff7738b54919fe3" + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" dependencies: postcss "^5.0.12" - postcss-value-parser "^3.1.3" + postcss-value-parser "^3.3.0" postcss-minify-params@^1.0.4: version "1.0.5" @@ -6346,8 +6379,8 @@ postcss-pseudoelements@^3.0.0: postcss "^5.0.4" postcss-reduce-idents@^2.2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.3.0.tgz#a697b52953ed6825ffea404e26a4f105d8b8d569" + version "2.3.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.3.1.tgz#024e8e219f52773313408573db9645ba62d2d2fe" dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.2" @@ -6450,7 +6483,7 @@ postcss-unique-selectors@^2.0.2: postcss "^5.0.4" uniqs "^2.0.0" -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.1.3, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" @@ -6469,9 +6502,9 @@ postcss@^4.1.7: js-base64 "~2.1.8" 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.2, postcss@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.4.tgz#8eb4bee3e5c4e091585b116df32d8db24a535f21" +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: + version "5.2.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.5.tgz#ec428c27dffc7fac65961340a9b022fa4af5f056" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -6540,6 +6573,89 @@ proper-lockfile@^1.1.2: graceful-fs "^4.1.2" retry "^0.10.0" +prosemirror-commands@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-0.12.0.tgz#d790fe3dbabb5221e4d87e82834835e0f65881b2" + dependencies: + extending-char "^1.0.0" + prosemirror-model "^0.12.0" + prosemirror-state "^0.12.0" + prosemirror-transform "^0.12.0" + +prosemirror-history@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-0.12.0.tgz#93dde545e4407666551ae9e1ddaae8c4b62caa05" + dependencies: + prosemirror-state "^0.12.0" + prosemirror-transform "^0.12.0" + rope-sequence "^1.2.0" + +prosemirror-inputrules: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-0.12.0.tgz#2e07b5cb1bfc7007c2b51ea5394303204b4b34df" + dependencies: + prosemirror-state "^0.12.0" + prosemirror-transform "^0.12.0" + +prosemirror-keymap@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-0.12.0.tgz#b70645b5d3f5ff4843bc6d26a74fa0022b504221" + dependencies: + prosemirror-state "^0.12.0" + w3c-keyname "^1.1.0" + +prosemirror-markdown: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-0.12.0.tgz#7ff8557c159168dcb532833c0b23b5b2866715c8" + dependencies: + markdown-it "^6.0.4" + prosemirror-model "~0.12.0" + +prosemirror-model@^0.12.0, prosemirror-model@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-0.12.0.tgz#5430c4056f2d3fe87d36de3f73aa9d9d07b0e8a7" + +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: + prosemirror-model "^0.12.0" + +prosemirror-schema-list: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-0.12.0.tgz#d93ba425ed202fc113d7b3388e5d9be1f698c276" + dependencies: + prosemirror-model "^0.12.0" + prosemirror-transform "^0.12.0" + +prosemirror-schema-table: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-schema-table/-/prosemirror-schema-table-0.12.0.tgz#a665dcb66bbd4c0ff2eac492d82991c6c410b5f3" + dependencies: + prosemirror-model "^0.12.0" + prosemirror-state "^0.12.0" + prosemirror-transform "^0.12.0" + +prosemirror-state@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-0.12.0.tgz#16e13d57d91840d0c3c340d47694efabeb77e987" + dependencies: + prosemirror-model "^0.12.0" + prosemirror-transform "^0.12.0" + +prosemirror-transform@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-0.12.0.tgz#298660a60e2069112469e0172e78be395762d263" + dependencies: + prosemirror-model "^0.12.0" + +prosemirror-view@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-0.12.0.tgz#0dbc4add8994f3980a68f26f1e37e5f40f9e9382" + dependencies: + prosemirror-model "^0.12.0" + prosemirror-state "^0.12.0" + proxy-addr@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" @@ -6572,7 +6688,7 @@ pump@^1.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.2.4: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -6584,9 +6700,9 @@ q@^1.1.2: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" -qs@^6.1.0, qs@^6.2.0, qs@~6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" +qs@^6.1.0, qs@^6.2.0, qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" qs@6.2.0: version "6.2.0" @@ -6639,7 +6755,7 @@ range-utils@^1.1.0: extend "^3.0.0" is "^3.1.0" -rc@^1.0.1, rc@^1.1.6, rc@~1.1.0: +rc@^1.0.1, rc@^1.1.6, rc@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" dependencies: @@ -6663,8 +6779,8 @@ react-css-themr@~1.4.1: invariant "^2.2.1" react-datetime@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.6.0.tgz#3fbfb7465377560237874168c98ad5bdac728160" + version "2.6.2" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.6.2.tgz#2cf01449dd8722b1d144bec427b7e1be7e52058e" dependencies: object-assign "^3.0.0" react-onclickoutside "^4.1.0" @@ -6688,7 +6804,7 @@ react-dnd@^2.1.4: invariant "^2.1.0" lodash "^4.2.0" -"react-dom@^0.14.0 || ^15.0.0", react-dom@^15.1.0: +react-dom@^15.1.0: version "15.3.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f" @@ -6701,8 +6817,8 @@ react-fuzzy@^0.2.3: fuse.js "^2.2.0" react-hot-loader@^3.0.0-beta.2: - version "3.0.0-beta.5" - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.5.tgz#d7f97d15ef50a5433f17ba5d19c6ee1a7242170e" + version "3.0.0-beta.6" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.6.tgz#463fac0bfc8b63a8385258af20c91636abce75f4" dependencies: babel-template "^6.7.0" global "^4.3.0" @@ -6716,9 +6832,10 @@ react-immutable-proptypes@^1.6.0: resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-1.7.2.tgz#fb1fdca24e30501617732781f4341b704ef7c320" react-inspector@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-1.1.0.tgz#8d55bb94ffc9fd3982a222eb257dbe9cdd4f1b87" + version "1.1.1" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-1.1.1.tgz#e5e413e516f6b27f2e90d86c2088cb2bf496a0e6" dependencies: + babel-runtime "^6.9.2" is-dom "^1.0.5" react-komposer@^1.9.0: @@ -6809,15 +6926,15 @@ react-sortable@^1.2.0: resolved "https://registry.yarnpkg.com/react-sortable/-/react-sortable-1.2.0.tgz#5acd7e1910df665408957035acb5f2354519d849" react-toolbox@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-toolbox/-/react-toolbox-1.2.2.tgz#ae8f3290da9e053625df97a63df7224943b79679" + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-toolbox/-/react-toolbox-1.2.3.tgz#8d034e5e72971e7a82bc26471d40b80b4bd641ce" dependencies: classnames "~2.2.5" core-js "~2.4.0" normalize.css "~5.0.0" react-css-themr "~1.4.1" -react-topbar-progress-indicator: +react-topbar-progress-indicator@^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" dependencies: @@ -6949,12 +7066,11 @@ recursive-readdir@^2.0.0: minimatch "3.0.2" redbox-react@^1.2.2, redbox-react@^1.2.5: - version "1.3.1" - resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.1.tgz#02ea395f93442ac43e5363004d50a9cd1327ce41" + version "1.3.2" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.3.2.tgz#bc12ca4f88705d29aaace7a12183d3ec14dd33f1" dependencies: error-stack-parser "^1.3.6" object-assign "^4.0.1" - react-dom "^0.14.0 || ^15.0.0" redent@^1.0.0: version "1.0.0" @@ -6964,10 +7080,10 @@ redent@^1.0.0: strip-indent "^1.0.1" redeyed@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.0.tgz#6ce25045c9e1f9b28c0ae73ce2960c8cb48184b1" + version "1.0.1" + resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" dependencies: - esprima "~2.7.0" + esprima "~3.0.0" reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: version "1.3.0" @@ -7038,8 +7154,8 @@ regexpu-core@^2.0.0: regjsparser "^0.1.4" registry-auth-token@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.0.1.tgz#c3ee5ec585bce29f88bf41629a3944c71ed53e25" + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" dependencies: rc "^1.1.6" @@ -7064,14 +7180,8 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^1.5.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.5.4.tgz#64ec0c91e0f4b475f90d5b643651e3e6e5b6c2d5" - -repeating@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" - dependencies: - is-finite "^1.0.0" + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" @@ -7083,18 +7193,17 @@ repeating@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/repeating/-/repeating-3.0.0.tgz#f4c376fdd2015761f6f96f4303b1224d581e802f" -request@^2.55.0, request@^2.58.0, request@^2.61.0, request@^2.67.0, request@^2.74.0, request@2, request@2.x: - version "2.75.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" +request@^2.55.0, request@^2.58.0, request@^2.61.0, request@^2.67.0, request@^2.74.0, request@^2.75.0, request@2: + version "2.76.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.76.0.tgz#be44505afef70360a0436955106be3945d95560e" dependencies: aws-sign2 "~0.6.0" aws4 "^1.2.1" - bl "~1.1.2" caseless "~0.11.0" combined-stream "~1.0.5" extend "~3.0.0" forever-agent "~0.6.1" - form-data "~2.0.0" + form-data "~2.1.1" har-validator "~2.0.6" hawk "~3.1.3" http-signature "~1.1.0" @@ -7104,7 +7213,7 @@ request@^2.55.0, request@^2.58.0, request@^2.61.0, request@^2.67.0, request@^2.7 mime-types "~2.1.7" node-uuid "~1.4.7" oauth-sign "~0.8.1" - qs "~6.2.0" + qs "~6.3.0" stringstream "~0.0.4" tough-cookie "~2.3.0" tunnel-agent "~0.4.1" @@ -7190,7 +7299,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@~2.5.0, rimraf@~2.5.1, rimraf@2: +rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -7210,12 +7319,16 @@ rmdir@^1.1.0: dependencies: node.flow "1.2.3" -rollup@^0.36.0: +rollup@^0.36.3: version "0.36.3" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.36.3.tgz#c89ac479828924ff8f69c1d44541cb4ea2fc11fc" dependencies: source-map-support "^0.4.0" +rope-sequence@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.2.1.tgz#7da14c04fdc06f60bacdb9d26936c56265ffee2e" + rsvp@^3.0.13, rsvp@^3.0.18: version "3.3.3" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.3.3.tgz#34633caaf8bc66ceff4be3c2e1dffd032538a813" @@ -7360,17 +7473,13 @@ shallowequal@0.2.x: dependencies: lodash.keys "^3.1.2" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - shelljs@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" -shelljs@^0.7.0: - version "0.7.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.4.tgz#b8f04b3a74ddfafea22acf98e0be45ded53d59c8" +shelljs@^0.7.0, shelljs@^0.7.5: + version "0.7.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -7404,8 +7513,8 @@ slate-drop-or-paste-images@^0.2.0: mime-types "^2.1.11" slate@^0.14.14: - version "0.14.15" - resolved "https://registry.yarnpkg.com/slate/-/slate-0.14.15.tgz#1a64d2ecd2824151fbc0312aa84960b02a25d260" + version "0.14.16" + resolved "https://registry.yarnpkg.com/slate/-/slate-0.14.16.tgz#b15b1f59f2aabd7b79da23265a260f536308ae4b" dependencies: uid "0.0.2" cheerio "^0.22.0" @@ -7464,8 +7573,8 @@ source-list-map@^0.1.4, source-list-map@~0.1.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" source-map-support@^0.4.0, source-map-support@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.3.tgz#693c8383d4389a4569486987c219744dfc601685" + version "0.4.6" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb" dependencies: source-map "^0.5.3" @@ -7564,11 +7673,11 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" stack-source-map@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-source-map/-/stack-source-map-1.0.5.tgz#ca95da2ba241bf90fa5757c70d401d10e022b2df" + version "1.0.6" + resolved "https://registry.yarnpkg.com/stack-source-map/-/stack-source-map-1.0.6.tgz#60216e4d4d0f2b15f3c6bd56abeca5b4e0f0d0d4" dependencies: path-browserify "0.0.0" - source-map "^0.5.3" + source-map "^0.5.6" stackframe@^0.3.1: version "0.3.1" @@ -7810,8 +7919,8 @@ stylelint@^6.8.0: table "^3.7.8" stylelint@^7.3.1: - version "7.4.2" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.4.2.tgz#b4ea1d71b2950d9a0b408877594f7d1ecb2b992e" + version "7.5.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.5.0.tgz#fe19a22e793c419d4fc31d58f3948d599fdb81fb" dependencies: autoprefixer "^6.0.0" balanced-match "^0.4.0" @@ -7824,7 +7933,7 @@ stylelint@^7.3.1: globby "^6.0.0" globjoin "^0.1.4" html-tags "^1.1.1" - ignore "^3.1.3" + ignore "^3.2.0" known-css-properties "^0.0.5" lodash "^4.0.0" log-symbols "^1.0.2" @@ -7844,7 +7953,7 @@ stylelint@^7.3.1: string-width "^2.0.0" style-search "^0.1.0" stylehacks "^2.3.0" - sugarss "^0.1.2" + sugarss "^0.2.0" svg-tags "^1.0.0" table "^3.7.8" @@ -7854,6 +7963,12 @@ sugarss@^0.1.2: dependencies: postcss "^5.2.0" +sugarss@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-0.2.0.tgz#ac34237563327c6ff897b64742bf6aec190ad39e" + dependencies: + postcss "^5.2.4" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -7881,8 +7996,8 @@ svgo@^0.7.0: whet.extend "~0.9.9" symbol-observable@^1.0.1, symbol-observable@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.3.tgz#0fdb005e84f346a899d492beba23068b32d1525a" + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" "symbol-tree@>= 3.1.0 < 4.0.0": version "3.1.4" @@ -7894,9 +8009,9 @@ synesthesia@^1.0.1: dependencies: css-color-names "0.0.3" -systemjs-builder@^0.15.20, systemjs-builder@0.15.32: - version "0.15.32" - resolved "https://registry.yarnpkg.com/systemjs-builder/-/systemjs-builder-0.15.32.tgz#66795f104792b0302eba40950f29ed53a791cc3e" +systemjs-builder@^0.15.33, systemjs-builder@0.15.33: + version "0.15.33" + resolved "https://registry.yarnpkg.com/systemjs-builder/-/systemjs-builder-0.15.33.tgz#7bd4d045769a67b52f9596141ba21cd94b49910c" dependencies: babel-core "^6.9.0" babel-plugin-transform-cjs-system-wrapper "^0.2.1" @@ -7908,28 +8023,28 @@ systemjs-builder@^0.15.20, systemjs-builder@0.15.32: es6-template-strings "^2.0.0" glob "^7.0.3" mkdirp "^0.5.1" - rollup "^0.36.0" + rollup "^0.36.3" source-map "^0.5.3" systemjs "^0.19.39" traceur "0.0.105" uglify-js "^2.6.1" -systemjs@^0.19.39, systemjs@0.19.39: - version "0.19.39" - resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.39.tgz#e513e6f91a25a37b8b607c51c7989ee0d67b9356" +systemjs@^0.19.39, systemjs@0.19.40: + version "0.19.40" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.40.tgz#158f64a9f4ef541a7fda6b40e527ee46b6c54cd0" dependencies: when "^3.7.5" table@^3.7.8: - version "3.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.0.tgz#252166c7f3286684a9d561b0f3a8929caf3a997b" + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" dependencies: ajv "^4.7.0" ajv-keywords "^1.0.0" chalk "^1.1.1" lodash "^4.0.0" slice-ansi "0.0.4" - string-width "^1.0.1" + string-width "^2.0.0" tapable@^0.1.8, tapable@~0.1.8: version "0.1.10" @@ -7953,16 +8068,16 @@ tape@^4.2.0: through "~2.3.8" tar-fs@^1.13.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.13.2.tgz#433e879f9538d7e1e883ba914904f339c6414835" + version "1.14.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.14.0.tgz#f99cc074bf33bed21cd921a21720797bb18e6c96" dependencies: mkdirp "^0.5.0" pump "^1.0.0" tar-stream "^1.1.2" -tar-pack@~3.1.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.1.4.tgz#bc8cf9a22f5832739f12f3910dac1eb97b49708c" +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" dependencies: debug "~2.2.0" fstream "~1.0.10" @@ -7982,7 +8097,7 @@ tar-stream@^1.1.2: readable-stream "^2.0.0" xtend "^4.0.0" -tar@^2.0.0, tar@~2.2.0, tar@~2.2.1: +tar@^2.0.0, tar@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -8064,8 +8179,10 @@ topbar@^0.1.3: resolved "https://registry.yarnpkg.com/topbar/-/topbar-0.1.3.tgz#c9ef8776dc4469f7840e6416f4136ddeccf4b7c6" tough-cookie@^2.3.1, tough-cookie@~2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.1.tgz#99c77dfbb7d804249e8a299d4cb0fd81fef083fd" + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" tr46@~0.0.3: version "0.0.3" @@ -8086,8 +8203,8 @@ trim-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" tryit@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.2.tgz#c196b0073e6b1c595d93c9c830855b7acc32a453" + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" tty-browserify@0.0.0: version "0.0.0" @@ -8126,18 +8243,13 @@ ua-parser-js@^0.7.10, ua-parser-js@^0.7.9: version "0.7.10" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.10.tgz#917559ddcce07cbc09ece7d80495e4c268f4ef9f" -uglify-js@^2.6, uglify-js@^2.6.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.3.tgz#39b3a7329b89f5ec507e344c6e22568698ef4868" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.0" +uc.micro@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" -uglify-js@~2.6.0: - version "2.6.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" +uglify-js@^2.6, uglify-js@^2.6.1, uglify-js@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" dependencies: async "~0.2.6" source-map "~0.5.1" @@ -8215,8 +8327,8 @@ url-parse-lax@^1.0.0: prepend-http "^1.0.1" url-parse@^1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.6.tgz#ab8ff5aea1388071961255e2236147c52ca5fc48" + version "1.1.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" dependencies: querystringify "0.0.x" requires-port "1.0.x" @@ -8242,10 +8354,6 @@ url@~0.11.0: punycode "1.3.2" 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: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -8297,6 +8405,10 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" +w3c-keyname@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.0.tgz#fc02408bb5f45bb7dcaea12e062de5110faec46b" + walkdir@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" @@ -8370,10 +8482,10 @@ webpack-dev-server@^1.15.1: webpack-dev-middleware "^1.4.0" webpack-hot-middleware@^2.10.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.13.0.tgz#aee39c058ff130a5916e2c5a762513241c87064f" + version "2.13.1" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.13.1.tgz#104350e044be58ba3b7ef1c39513d69562841975" dependencies: - ansi-html "0.0.5" + ansi-html "0.0.6" html-entities "^1.2.0" querystring "^0.2.0" strip-ansi "^3.0.0" @@ -8403,8 +8515,8 @@ webpack-sources@^0.1.0: source-map "~0.5.3" webpack@^1.12.11, webpack@^1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.2.tgz#f11a96f458eb752970a86abe746c0704fabafaf3" + version "1.13.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" dependencies: acorn "^3.0.0" async "^1.3.0" @@ -8418,7 +8530,7 @@ webpack@^1.12.11, webpack@^1.13.2: optimist "~0.6.0" supports-color "^3.1.0" tapable "~0.1.8" - uglify-js "~2.6.0" + uglify-js "~2.7.3" watchpack "^0.2.1" webpack-core "~0.6.0" @@ -8432,6 +8544,12 @@ websocket-extensions@>=0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" +whatwg-encoding@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" + dependencies: + iconv-lite "0.4.13" + whatwg-fetch@^1.0.0, whatwg-fetch@>=0.10.0: version "1.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e"