From 13e12da94960c115cacfd85eef9ccce3f4bf643b Mon Sep 17 00:00:00 2001 From: Gytis Vinclovas Date: Tue, 4 Jul 2017 17:57:56 +0300 Subject: [PATCH 001/107] Remove check for sender. --- lib/channels/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/channels/src/index.js b/lib/channels/src/index.js index fd7a3c9ae1fb..defa6aff9c5c 100644 --- a/lib/channels/src/index.js +++ b/lib/channels/src/index.js @@ -72,7 +72,7 @@ export default class Channel { _handleEvent(event) { const listeners = this._listeners[event.type]; - if (event.from !== this._sender && listeners) { + if (listeners) { listeners.forEach(fn => fn(...event.args)); } } From 8ca620b8e0f87e88007a6584a16c8a2773888a67 Mon Sep 17 00:00:00 2001 From: Gytis Vinclovas Date: Wed, 5 Jul 2017 16:03:46 +0300 Subject: [PATCH 002/107] Fixed test. --- lib/channels/src/index.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/channels/src/index.test.js b/lib/channels/src/index.test.js index 987edb2f6829..5f7e37354754 100644 --- a/lib/channels/src/index.test.js +++ b/lib/channels/src/index.test.js @@ -177,12 +177,12 @@ describe('Channel', () => { }); describe('_miscellaneous', () => { - it('should ignore if event came from itself', () => { + it('should not ignore if event came from itself', () => { const received = []; channel.on('type-1', n => received.push(n)); channel._handleEvent({ type: 'type-1', args: [11] }); channel._handleEvent({ type: 'type-1', args: [12], from: channel._sender }); - expect(received).toEqual([11]); + expect(received).toEqual([11, 12]); }); }); }); From bc63adf5c681e13fe09e1c40e1e2741e08031da2 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Tue, 18 Jul 2017 15:58:51 -0700 Subject: [PATCH 003/107] Detailed formatting of arrayOf, shape, oneOf --- addons/info/src/components/PropTable.js | 145 ++++++++++++++++++------ 1 file changed, 109 insertions(+), 36 deletions(-) diff --git a/addons/info/src/components/PropTable.js b/addons/info/src/components/PropTable.js index fbd3f0780b85..477974b2b726 100644 --- a/addons/info/src/components/PropTable.js +++ b/addons/info/src/components/PropTable.js @@ -14,15 +14,97 @@ Object.keys(PropTypes).forEach(typeName => { }); const stylesheet = { + hasProperty: { + marginLeft: 10 + }, + code: { + fontFamily: 'Monaco, Consolas, "Courier New", monospace' + }, + block: { + display: 'block' + }, propTable: { - marginLeft: -10, - borderSpacing: '10px 5px', - borderCollapse: 'separate', + marginTop: 10, + borderCollapse: 'collapse' }, + propTableCell: { + border: '1px solid #ccc', + padding: '2px 6px' + } +}; + +const formatType = ({propType, type, property, required}) => { + let result; + + if (type) { + const PropertyLabel = + property && + + {property}:{' '} + ; + + if (propType === 'other') { + return (result = type.name); + } else if (type && propType === 'arrayOf') { + return ( + + {PropertyLabel} + [ + + {formatType({ + parentType: propType, + type: type.value, + propType: type.value.name + })} + + ] + + ); + } else if (propType === 'enum') { + return ( +
+ {type.value.map(({value}) => value).join(' | ')} +
+ ); + } else if (propType === 'shape') { + const values = Object.keys(type.value).map(property => + formatType({ + property, + parentType: propType, + type: type.value[property], + propType: type.value[property].name, + required: type.value[property].required + }) + ); + + return ( + + {PropertyLabel} + + {'{'} + + {values.map(value => + + {value} + + )} + + {'}'} + + + ); + } + } + + return ( +
+ {property ? ` ${property}${required ? '' : '?'}: ${propType},` : propType} +
+ ); }; export default function PropTable(props) { - const { type, maxPropObjectKeys, maxPropArrayLength, maxPropStringLength } = props; + const {type, maxPropObjectKeys, maxPropArrayLength, maxPropStringLength} = props; if (!type) { return null; @@ -34,24 +116,15 @@ export default function PropTable(props) { Object.keys(type.propTypes).forEach(property => { const typeInfo = type.propTypes[property]; const required = typeInfo.isRequired === undefined ? 'yes' : 'no'; - const description = - type.__docgenInfo && type.__docgenInfo.props && type.__docgenInfo.props[property] - ? type.__docgenInfo.props[property].description - : null; - let propType = PropTypesMap.get(typeInfo) || 'other'; - - if (propType === 'other') { - if ( - type.__docgenInfo && - type.__docgenInfo.props && - type.__docgenInfo.props[property] && - type.__docgenInfo.props[property].type - ) { - propType = type.__docgenInfo.props[property].type.name; - } - } - - accumProps[property] = { property, propType, required, description }; + const docgenInfo = + type.__docgenInfo && type.__docgenInfo.props && type.__docgenInfo.props[property]; + const description = docgenInfo ? docgenInfo.description : null; + const propType = formatType({ + propType: docgenInfo && docgenInfo.type && docgenInfo.type.name, + type: (docgenInfo && docgenInfo.type) || {} + }); + + accumProps[property] = {property, propType, required, description}; }); } @@ -64,7 +137,7 @@ export default function PropTable(props) { } if (!accumProps[property]) { - accumProps[property] = { property }; + accumProps[property] = {property}; } accumProps[property].defaultValue = value; @@ -82,38 +155,38 @@ export default function PropTable(props) { const propValProps = { maxPropObjectKeys, maxPropArrayLength, - maxPropStringLength, + maxPropStringLength }; return ( - - - - - + + + + + {array.map(row => - - - - - @@ -125,11 +198,11 @@ export default function PropTable(props) { PropTable.displayName = 'PropTable'; PropTable.defaultProps = { - type: null, + type: null }; PropTable.propTypes = { type: PropTypes.func, maxPropObjectKeys: PropTypes.number.isRequired, maxPropArrayLength: PropTypes.number.isRequired, - maxPropStringLength: PropTypes.number.isRequired, + maxPropStringLength: PropTypes.number.isRequired }; From 1d54f15b5d46e4d362ccd5e3ccd99f9e6a679260 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Tue, 18 Jul 2017 15:59:18 -0700 Subject: [PATCH 004/107] Add babel watch task --- addons/info/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/info/package.json b/addons/info/package.json index 6a880a325b10..61c694f3c2af 100644 --- a/addons/info/package.json +++ b/addons/info/package.json @@ -11,6 +11,7 @@ "scripts": { "prepublish": "node ../../scripts/prepublish.js", "publish-storybook": "bash .scripts/publish_storybook.sh", + "dev": "babel --watch --ignore tests,__tests__,test.js,stories/,story.jsx --plugins transform-runtime ./src --out-dir ./dist --copy-files", "storybook": "start-storybook -p 9010" }, "dependencies": { From 917f31431aacb09cf6e1ad247fb32973bde09cce Mon Sep 17 00:00:00 2001 From: igor Date: Wed, 2 Aug 2017 17:27:07 +0300 Subject: [PATCH 005/107] Use experemental jest-specific-snapshot to generate snapshot per story file --- addons/storyshots/.gitignore | 1 + addons/storyshots/package.json | 9 +++++++-- addons/storyshots/src/index.js | 15 ++++++++++++--- addons/storyshots/src/test-bodies.js | 10 +++++++++- addons/storyshots/stories/storyshot.test.js | 3 +++ 5 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 addons/storyshots/.gitignore create mode 100644 addons/storyshots/stories/storyshot.test.js diff --git a/addons/storyshots/.gitignore b/addons/storyshots/.gitignore new file mode 100644 index 000000000000..e49dee2bbf9d --- /dev/null +++ b/addons/storyshots/.gitignore @@ -0,0 +1 @@ +*.storyshot \ No newline at end of file diff --git a/addons/storyshots/package.json b/addons/storyshots/package.json index a2a2dc4aa6a3..7fcf75488e51 100644 --- a/addons/storyshots/package.json +++ b/addons/storyshots/package.json @@ -11,11 +11,13 @@ "scripts": { "build-storybook": "build-storybook", "prepublish": "babel ./src --out-dir ./dist", - "storybook": "start-storybook -p 6006" + "storybook": "start-storybook -p 6006", + "example": "jest storyshot.test" }, "dependencies": { "babel-runtime": "^6.23.0", "global": "^4.3.2", + "jest-specific-snapshot": "^0.1.0", "prop-types": "^15.5.10", "read-pkg-up": "^2.0.0" }, @@ -24,11 +26,14 @@ "@storybook/channels": "^3.2.0", "@storybook/react": "^3.2.3", "babel-cli": "^6.24.1", + "babel-jest": "^20.0.3", "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "react": "^15.6.1", - "react-dom": "^15.6.1" + "react-dom": "^15.6.1", + "jest": "^20.0.4", + "jest-cli": "^20.0.4" }, "peerDependencies": { "@storybook/addons": "^3.2.0", diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index 245b28a9b78f..77e2420ed857 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -45,6 +45,13 @@ export default function testStorySnapshots(options = {}) { dirname: configDirPath, }; + const realStoriesOf = storybook.storiesOf; + storybook.storiesOf = (kind, module) => { + const storyFileName = module ? module.filename : ''; + const newKindName = `${storyFileName}?${kind}`; + return realStoriesOf(newKindName, module); + }; + runWithRequireContext(content, contextOpts); } else if (isRNStorybook) { storybook = require.requireActual('@storybook/react-native'); @@ -70,13 +77,15 @@ export default function testStorySnapshots(options = {}) { // eslint-disable-next-line for (const group of stories) { - if (options.storyKindRegex && !group.kind.match(options.storyKindRegex)) { + const [storyFileName, kind] = group.kind.split('?'); + + if (options.storyKindRegex && !kind.match(options.storyKindRegex)) { // eslint-disable-next-line continue; } describe(suite, () => { - describe(group.kind, () => { + describe(kind, () => { // eslint-disable-next-line for (const story of group.stories) { if (options.storyNameRegex && !story.name.match(options.storyNameRegex)) { @@ -85,7 +94,7 @@ export default function testStorySnapshots(options = {}) { } it(story.name, () => { - const context = { kind: group.kind, story: story.name }; + const context = { storyFileName, kind, story: story.name }; options.test({ story, context }); }); } diff --git a/addons/storyshots/src/test-bodies.js b/addons/storyshots/src/test-bodies.js index 48362bca93c1..16d6fec3a139 100644 --- a/addons/storyshots/src/test-bodies.js +++ b/addons/storyshots/src/test-bodies.js @@ -1,10 +1,18 @@ +import path from 'path'; import renderer from 'react-test-renderer'; import shallow from 'react-test-renderer/shallow'; +import 'jest-specific-snapshot'; export const snapshotWithOptions = options => ({ story, context }) => { const storyElement = story.render(context); const tree = renderer.create(storyElement, options).toJSON(); - expect(tree).toMatchSnapshot(); + + const fileName = context.storyFileName || __filename; + const { dir, name } = path.parse(fileName); + const snapshotFileName = path.format({ dir, name, ext: '.storyshot' }); + + expect(tree).toMatchSpecificSnapshot(snapshotFileName); + // expect(tree).toMatchSnapshot(); }; export const snapshot = snapshotWithOptions({}); diff --git a/addons/storyshots/stories/storyshot.test.js b/addons/storyshots/stories/storyshot.test.js new file mode 100644 index 000000000000..b7667e04cd30 --- /dev/null +++ b/addons/storyshots/stories/storyshot.test.js @@ -0,0 +1,3 @@ +import initStoryshots from '../src'; + +initStoryshots(); From 1d54e27a5977d5bc22dc36afea2c70fe58a6ccf0 Mon Sep 17 00:00:00 2001 From: igor Date: Thu, 3 Aug 2017 09:25:19 +0300 Subject: [PATCH 006/107] Add multiSnapshotWithOptions + upgrade jest-specific-snapshot to 0.2.0 --- addons/storyshots/package.json | 2 +- addons/storyshots/src/index.js | 8 +++++++- addons/storyshots/src/test-bodies.js | 18 ++++++++++++++---- addons/storyshots/stories/storyshot.test.js | 6 ++++-- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/addons/storyshots/package.json b/addons/storyshots/package.json index 7fcf75488e51..08d70bc1dc6d 100644 --- a/addons/storyshots/package.json +++ b/addons/storyshots/package.json @@ -17,7 +17,7 @@ "dependencies": { "babel-runtime": "^6.23.0", "global": "^4.3.2", - "jest-specific-snapshot": "^0.1.0", + "jest-specific-snapshot": "^0.2.0", "prop-types": "^15.5.10", "read-pkg-up": "^2.0.0" }, diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index 77e2420ed857..a32f8c23aa6c 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -7,7 +7,13 @@ import runWithRequireContext from './require_context'; import createChannel from './storybook-channel-mock'; import { snapshot } from './test-bodies'; -export { snapshotWithOptions, snapshot, shallowSnapshot, renderOnly } from './test-bodies'; +export { + snapshot, + multiSnapshotWithOptions, + snapshotWithOptions, + shallowSnapshot, + renderOnly, +} from './test-bodies'; let storybook; let configPath; diff --git a/addons/storyshots/src/test-bodies.js b/addons/storyshots/src/test-bodies.js index 16d6fec3a139..7c87cfc4497d 100644 --- a/addons/storyshots/src/test-bodies.js +++ b/addons/storyshots/src/test-bodies.js @@ -3,16 +3,26 @@ import renderer from 'react-test-renderer'; import shallow from 'react-test-renderer/shallow'; import 'jest-specific-snapshot'; -export const snapshotWithOptions = options => ({ story, context }) => { +function getRenderedTree(story, context, options) { const storyElement = story.render(context); - const tree = renderer.create(storyElement, options).toJSON(); + return renderer.create(storyElement, options).toJSON(); +} +function getSnapshotFileName(context) { const fileName = context.storyFileName || __filename; const { dir, name } = path.parse(fileName); - const snapshotFileName = path.format({ dir, name, ext: '.storyshot' }); + return path.format({ dir, name, ext: '.storyshot' }); +} + +export const snapshotWithOptions = options => ({ story, context }) => { + const tree = getRenderedTree(story, context, options); + expect(tree).toMatchSnapshot(); +}; +export const multiSnapshotWithOptions = options => ({ story, context }) => { + const tree = getRenderedTree(story, context, options); + const snapshotFileName = getSnapshotFileName(context); expect(tree).toMatchSpecificSnapshot(snapshotFileName); - // expect(tree).toMatchSnapshot(); }; export const snapshot = snapshotWithOptions({}); diff --git a/addons/storyshots/stories/storyshot.test.js b/addons/storyshots/stories/storyshot.test.js index b7667e04cd30..9d366765a0b6 100644 --- a/addons/storyshots/stories/storyshot.test.js +++ b/addons/storyshots/stories/storyshot.test.js @@ -1,3 +1,5 @@ -import initStoryshots from '../src'; +import initStoryshots, { multiSnapshotWithOptions } from '../src'; -initStoryshots(); +initStoryshots({ + test: multiSnapshotWithOptions({}), +}); From 810a63bc7608e59ff7f4b889d34580bcafa84b72 Mon Sep 17 00:00:00 2001 From: igor Date: Thu, 3 Aug 2017 10:50:59 +0300 Subject: [PATCH 007/107] Fix the case there is no "?" --- addons/storyshots/src/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index a32f8c23aa6c..5af8ff901306 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -83,7 +83,9 @@ export default function testStorySnapshots(options = {}) { // eslint-disable-next-line for (const group of stories) { - const [storyFileName, kind] = group.kind.split('?'); + const groupKindParts = group.kind.split('?'); + const [storyFileName, kind] = + groupKindParts.length === 1 ? ['', groupKindParts[0]] : groupKindParts; if (options.storyKindRegex && !kind.match(options.storyKindRegex)) { // eslint-disable-next-line From dc8bbd72252a9de9a524c5de45c1c5601b9fd014 Mon Sep 17 00:00:00 2001 From: igor Date: Sun, 6 Aug 2017 10:54:18 +0300 Subject: [PATCH 008/107] Use patchStoriesOfFunction for RN --- addons/storyshots/src/index.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index 5af8ff901306..3db31f512bfc 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -27,6 +27,16 @@ const hasDependency = name => (pkg.devDependencies && pkg.devDependencies[name]) || (pkg.dependencies && pkg.dependencies[name]); +function patchStoriesOfFunction(storybookImpl) { + const realStoriesOf = storybookImpl.storiesOf; + // eslint-disable-next-line + storybookImpl.storiesOf = (kind, module) => { + const storyFileName = module ? module.filename : ''; + const newKindName = `${storyFileName}?${kind}`; + return realStoriesOf(newKindName, module); + }; +} + export default function testStorySnapshots(options = {}) { addons.setChannel(createChannel()); @@ -51,16 +61,14 @@ export default function testStorySnapshots(options = {}) { dirname: configDirPath, }; - const realStoriesOf = storybook.storiesOf; - storybook.storiesOf = (kind, module) => { - const storyFileName = module ? module.filename : ''; - const newKindName = `${storyFileName}?${kind}`; - return realStoriesOf(newKindName, module); - }; + patchStoriesOfFunction(storybook); runWithRequireContext(content, contextOpts); } else if (isRNStorybook) { storybook = require.requireActual('@storybook/react-native'); + + patchStoriesOfFunction(storybook); + configPath = path.resolve(options.configPath || 'storybook'); require.requireActual(configPath); } else { From 0eb30936129965f12c7db28b4835bd923077306e Mon Sep 17 00:00:00 2001 From: igor Date: Wed, 9 Aug 2017 23:00:49 +0300 Subject: [PATCH 009/107] Add fileName prop to the storybook client api --- addons/storyshots/src/index.js | 20 +------- addons/storyshots/src/test-bodies.js | 13 ++++- app/react-native/src/preview/index.js | 10 +++- app/react-native/src/preview/story_kind.js | 5 +- app/react-native/src/preview/story_store.js | 12 ++++- app/react/src/client/preview/client_api.js | 9 +++- .../src/client/preview/client_api.test.js | 47 ++++++++++++++++++- app/react/src/client/preview/story_store.js | 12 ++++- 8 files changed, 99 insertions(+), 29 deletions(-) diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index 3db31f512bfc..b3691e0f48ef 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -27,16 +27,6 @@ const hasDependency = name => (pkg.devDependencies && pkg.devDependencies[name]) || (pkg.dependencies && pkg.dependencies[name]); -function patchStoriesOfFunction(storybookImpl) { - const realStoriesOf = storybookImpl.storiesOf; - // eslint-disable-next-line - storybookImpl.storiesOf = (kind, module) => { - const storyFileName = module ? module.filename : ''; - const newKindName = `${storyFileName}?${kind}`; - return realStoriesOf(newKindName, module); - }; -} - export default function testStorySnapshots(options = {}) { addons.setChannel(createChannel()); @@ -61,14 +51,10 @@ export default function testStorySnapshots(options = {}) { dirname: configDirPath, }; - patchStoriesOfFunction(storybook); - runWithRequireContext(content, contextOpts); } else if (isRNStorybook) { storybook = require.requireActual('@storybook/react-native'); - patchStoriesOfFunction(storybook); - configPath = path.resolve(options.configPath || 'storybook'); require.requireActual(configPath); } else { @@ -91,9 +77,7 @@ export default function testStorySnapshots(options = {}) { // eslint-disable-next-line for (const group of stories) { - const groupKindParts = group.kind.split('?'); - const [storyFileName, kind] = - groupKindParts.length === 1 ? ['', groupKindParts[0]] : groupKindParts; + const { fileName, kind } = group; if (options.storyKindRegex && !kind.match(options.storyKindRegex)) { // eslint-disable-next-line @@ -110,7 +94,7 @@ export default function testStorySnapshots(options = {}) { } it(story.name, () => { - const context = { storyFileName, kind, story: story.name }; + const context = { fileName, kind, story: story.name }; options.test({ story, context }); }); } diff --git a/addons/storyshots/src/test-bodies.js b/addons/storyshots/src/test-bodies.js index 7c87cfc4497d..982cc7a40406 100644 --- a/addons/storyshots/src/test-bodies.js +++ b/addons/storyshots/src/test-bodies.js @@ -9,7 +9,12 @@ function getRenderedTree(story, context, options) { } function getSnapshotFileName(context) { - const fileName = context.storyFileName || __filename; + const fileName = context.fileName; + + if (!fileName) { + return null; + } + const { dir, name } = path.parse(fileName); return path.format({ dir, name, ext: '.storyshot' }); } @@ -22,6 +27,12 @@ export const snapshotWithOptions = options => ({ story, context }) => { export const multiSnapshotWithOptions = options => ({ story, context }) => { const tree = getRenderedTree(story, context, options); const snapshotFileName = getSnapshotFileName(context); + + if (!snapshotFileName) { + expect(tree).toMatchSnapshot(); + return; + } + expect(tree).toMatchSpecificSnapshot(snapshotFileName); }; diff --git a/app/react-native/src/preview/index.js b/app/react-native/src/preview/index.js index 0d8cdf0ffe3f..87e58f8968e8 100644 --- a/app/react-native/src/preview/index.js +++ b/app/react-native/src/preview/index.js @@ -23,7 +23,10 @@ export default class Preview { if (module && module.hot) { // TODO remove the kind on dispose } - return new StoryKindApi(this._stories, this._addons, this._decorators, kind); + + const fileName = module ? module.filename : null; + + return new StoryKindApi(this._stories, this._addons, this._decorators, kind, fileName); } setAddon(addon) { @@ -44,11 +47,14 @@ export default class Preview { getStorybook() { return this._stories.getStoryKinds().map(kind => { + const fileName = this._stories.getStoryFileName(kind); + const stories = this._stories.getStories(kind).map(name => { const render = this._stories.getStory(kind, name); return { name, render }; }); - return { kind, stories }; + + return { kind, fileName, stories }; }); } diff --git a/app/react-native/src/preview/story_kind.js b/app/react-native/src/preview/story_kind.js index edec71a5d483..01024277cac4 100644 --- a/app/react-native/src/preview/story_kind.js +++ b/app/react-native/src/preview/story_kind.js @@ -1,10 +1,11 @@ /* eslint no-underscore-dangle: 0 */ export default class StoryKindApi { - constructor(stories, addons, decorators, kind) { + constructor(stories, addons, decorators, kind, fileName) { this.kind = kind; this._stories = stories; this._decorators = decorators.slice(); + this._fileName = fileName; Object.assign(this, addons); } @@ -15,7 +16,7 @@ export default class StoryKindApi { add(story, fn) { const decorated = this._decorate(fn); - this._stories.addStory(this.kind, story, decorated); + this._stories.addStory(this.kind, story, decorated, this._fileName); return this; } diff --git a/app/react-native/src/preview/story_store.js b/app/react-native/src/preview/story_store.js index 07e91876b125..f202ab8c6b2b 100644 --- a/app/react-native/src/preview/story_store.js +++ b/app/react-native/src/preview/story_store.js @@ -9,11 +9,12 @@ export default class StoryStore extends EventEmitter { this._data = {}; } - addStory(kind, name, fn) { + addStory(kind, name, fn, fileName) { count += 1; if (!this._data[kind]) { this._data[kind] = { kind, + fileName, index: count, stories: {}, }; @@ -46,6 +47,15 @@ export default class StoryStore extends EventEmitter { .map(info => info.name); } + getStoryFileName(kind) { + const storiesKind = this._data[kind]; + if (!storiesKind) { + return null; + } + + return storiesKind.fileName; + } + getStory(kind, name) { const storiesKind = this._data[kind]; if (!storiesKind) { diff --git a/app/react/src/client/preview/client_api.js b/app/react/src/client/preview/client_api.js index cf12a4196898..ac924da04b36 100644 --- a/app/react/src/client/preview/client_api.js +++ b/app/react/src/client/preview/client_api.js @@ -82,8 +82,10 @@ export default class ClientApi { getStory ); + const fileName = m ? m.filename : null; + // Add the fully decorated getStory function. - this._storyStore.addStory(kind, storyName, fn); + this._storyStore.addStory(kind, storyName, fn, fileName); return api; }; @@ -97,11 +99,14 @@ export default class ClientApi { getStorybook() { return this._storyStore.getStoryKinds().map(kind => { + const fileName = this._storyStore.getStoryFileName(kind); + const stories = this._storyStore.getStories(kind).map(name => { const render = this._storyStore.getStory(kind, name); return { name, render }; }); - return { kind, stories }; + + return { kind, fileName, stories }; }); } } diff --git a/app/react/src/client/preview/client_api.test.js b/app/react/src/client/preview/client_api.test.js index da6a6bb1abb1..146afff18399 100644 --- a/app/react/src/client/preview/client_api.test.js +++ b/app/react/src/client/preview/client_api.test.js @@ -7,8 +7,8 @@ class StoryStore { this.stories = []; } - addStory(kind, story, fn) { - this.stories.push({ kind, story, fn }); + addStory(kind, story, fn, fileName) { + this.stories.push({ kind, story, fn, fileName }); } getStoryKinds() { @@ -29,6 +29,11 @@ class StoryStore { }, []); } + getStoryFileName(kind) { + const story = this.stories.find(info => info.kind === kind); + return story ? story.fileName : null; + } + getStory(kind, name) { return this.stories.reduce((fn, info) => { if (!fn && info.kind === kind && info.story === name) { @@ -239,6 +244,43 @@ describe('preview.client_api', () => { expect(book).toEqual([ { kind: 'kind-1', + fileName: null, + stories: [ + { name: 'story-1.1', render: functions['story-1.1'] }, + { name: 'story-1.2', render: functions['story-1.2'] }, + ], + }, + { + kind: 'kind-2', + fileName: null, + stories: [ + { name: 'story-2.1', render: functions['story-2.1'] }, + { name: 'story-2.2', render: functions['story-2.2'] }, + ], + }, + ]); + }); + + it('should return storybook with file names when module with file name provided', () => { + const storyStore = new StoryStore(); + const api = new ClientAPI({ storyStore }); + const functions = { + 'story-1.1': () => 'story-1.1', + 'story-1.2': () => 'story-1.2', + 'story-2.1': () => 'story-2.1', + 'story-2.2': () => 'story-2.2', + }; + const kind1 = api.storiesOf('kind-1', { filename: 'foo' }); + kind1.add('story-1.1', functions['story-1.1']); + kind1.add('story-1.2', functions['story-1.2']); + const kind2 = api.storiesOf('kind-2', { filename: 'bar' }); + kind2.add('story-2.1', functions['story-2.1']); + kind2.add('story-2.2', functions['story-2.2']); + const book = api.getStorybook(); + expect(book).toEqual([ + { + kind: 'kind-1', + fileName: 'foo', stories: [ { name: 'story-1.1', render: functions['story-1.1'] }, { name: 'story-1.2', render: functions['story-1.2'] }, @@ -246,6 +288,7 @@ describe('preview.client_api', () => { }, { kind: 'kind-2', + fileName: 'bar', stories: [ { name: 'story-2.1', render: functions['story-2.1'] }, { name: 'story-2.2', render: functions['story-2.2'] }, diff --git a/app/react/src/client/preview/story_store.js b/app/react/src/client/preview/story_store.js index b7051c1ea3be..a82bba34d24d 100644 --- a/app/react/src/client/preview/story_store.js +++ b/app/react/src/client/preview/story_store.js @@ -12,10 +12,11 @@ export default class StoryStore { this._data = {}; } - addStory(kind, name, fn) { + addStory(kind, name, fn, fileName) { if (!this._data[kind]) { this._data[kind] = { kind, + fileName, index: getId(), stories: {}, }; @@ -47,6 +48,15 @@ export default class StoryStore { .map(info => info.name); } + getStoryFileName(kind) { + const storiesKind = this._data[kind]; + if (!storiesKind) { + return null; + } + + return storiesKind.fileName; + } + getStory(kind, name) { const storiesKind = this._data[kind]; if (!storiesKind) { From 9f6e573d29c24be3caa9a75384404b74963df723 Mon Sep 17 00:00:00 2001 From: igor Date: Wed, 9 Aug 2017 23:53:24 +0300 Subject: [PATCH 010/107] Try storyshot example pass on CI --- addons/storyshots/.gitignore | 2 +- addons/storyshots/stories/storyshot.test.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/storyshots/.gitignore b/addons/storyshots/.gitignore index e49dee2bbf9d..dae19727c03a 100644 --- a/addons/storyshots/.gitignore +++ b/addons/storyshots/.gitignore @@ -1 +1 @@ -*.storyshot \ No newline at end of file +*.storyshot diff --git a/addons/storyshots/stories/storyshot.test.js b/addons/storyshots/stories/storyshot.test.js index 9d366765a0b6..6e5a0fea82c2 100644 --- a/addons/storyshots/stories/storyshot.test.js +++ b/addons/storyshots/stories/storyshot.test.js @@ -1,5 +1,8 @@ +import path from 'path'; import initStoryshots, { multiSnapshotWithOptions } from '../src'; initStoryshots({ + framework: 'react', + configPath: path.join(__dirname, '..', '.storybook'), test: multiSnapshotWithOptions({}), }); From 1c1c9db29d7d284fd70ddc474c65dcce765980a5 Mon Sep 17 00:00:00 2001 From: igor Date: Thu, 10 Aug 2017 00:22:14 +0300 Subject: [PATCH 011/107] Save snapshots --- addons/storyshots/.gitignore | 1 - .../stories/directly_required/index.storyshot | 19 ++++ .../Button.stories.storyshot | 19 ++++ .../Welcome.stories.storyshot | 104 ++++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-) delete mode 100644 addons/storyshots/.gitignore create mode 100644 addons/storyshots/stories/directly_required/index.storyshot create mode 100644 addons/storyshots/stories/required_with_context/Button.stories.storyshot create mode 100644 addons/storyshots/stories/required_with_context/Welcome.stories.storyshot diff --git a/addons/storyshots/.gitignore b/addons/storyshots/.gitignore deleted file mode 100644 index dae19727c03a..000000000000 --- a/addons/storyshots/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.storyshot diff --git a/addons/storyshots/stories/directly_required/index.storyshot b/addons/storyshots/stories/directly_required/index.storyshot new file mode 100644 index 000000000000..354841be656e --- /dev/null +++ b/addons/storyshots/stories/directly_required/index.storyshot @@ -0,0 +1,19 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots Another Button with some emoji 1`] = ` + +`; + +exports[`Storyshots Another Button with text 1`] = ` + +`; diff --git a/addons/storyshots/stories/required_with_context/Button.stories.storyshot b/addons/storyshots/stories/required_with_context/Button.stories.storyshot new file mode 100644 index 000000000000..56b21f7fdec4 --- /dev/null +++ b/addons/storyshots/stories/required_with_context/Button.stories.storyshot @@ -0,0 +1,19 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots Button with some emoji 1`] = ` + +`; + +exports[`Storyshots Button with text 1`] = ` + +`; diff --git a/addons/storyshots/stories/required_with_context/Welcome.stories.storyshot b/addons/storyshots/stories/required_with_context/Welcome.stories.storyshot new file mode 100644 index 000000000000..bc6abe86a6e7 --- /dev/null +++ b/addons/storyshots/stories/required_with_context/Welcome.stories.storyshot @@ -0,0 +1,104 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots Welcome to Storybook 1`] = ` +
+

+ Welcome to storybook +

+

+ This is a UI component dev environment for your app. +

+

+ We've added some basic stories inside the + + + src/stories + + + directory. +
+ A story is a single state of one or more UI components. You can have as many stories as you want. +
+ (Basically a story is like a visual test case.) +

+

+ See these sample + + + stories + + + for a component called + + + Button + + . +

+

+ Just like that, you can add your own components as stories. +
+ You can also edit those components and see changes right away. +
+ (Try editing the + + Button + + stories located at + + src/stories/index.js + + .) +

+

+ Usually we create stories with smaller UI components in the app. +
+ Have a look at the + + + Writing Stories + + + section in our documentation. +

+

+ + NOTE: + +
+ Have a look at the + + + .storybook/webpack.config.js + + + to add webpack loaders and plugins you are using in this project. +

+
+`; From c93ffffe1fcf0e46a11a98b1a10c331273c5869a Mon Sep 17 00:00:00 2001 From: Gytis Vinclovas Date: Thu, 10 Aug 2017 11:27:32 +0300 Subject: [PATCH 012/107] Added knobs examples to crna and vanilla react native. --- examples/crna-kitchen-sink/package.json | 1 + .../storybook/stories/Knobs/index.js | 59 +++++++++++++++++++ .../storybook/stories/index.js | 4 ++ examples/react-native-vanilla/package.json | 1 + .../storybook/stories/Knobs/index.js | 59 +++++++++++++++++++ .../storybook/stories/index.js | 4 ++ 6 files changed, 128 insertions(+) create mode 100644 examples/crna-kitchen-sink/storybook/stories/Knobs/index.js create mode 100644 examples/react-native-vanilla/storybook/stories/Knobs/index.js diff --git a/examples/crna-kitchen-sink/package.json b/examples/crna-kitchen-sink/package.json index d95f8fab950c..44d1d5ad48cb 100644 --- a/examples/crna-kitchen-sink/package.json +++ b/examples/crna-kitchen-sink/package.json @@ -4,6 +4,7 @@ "private": true, "devDependencies": { "@storybook/addon-actions": "file:../../addons/actions", + "@storybook/addon-knobs": "file:../../addons/knobs", "@storybook/addon-links": "file:../../addons/links", "@storybook/addon-options": "file:../../addons/options", "@storybook/addon-storyshots": "file:../../addons/storyshots", diff --git a/examples/crna-kitchen-sink/storybook/stories/Knobs/index.js b/examples/crna-kitchen-sink/storybook/stories/Knobs/index.js new file mode 100644 index 000000000000..19cec307ac4f --- /dev/null +++ b/examples/crna-kitchen-sink/storybook/stories/Knobs/index.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +import { text, number, boolean, color, select, array, date, object } from '@storybook/addon-knobs'; + +export default () => { + const name = text('Name', 'Storyteller'); + const age = number('Age', 70, { range: true, min: 0, max: 90, step: 5 }); + const fruits = { + apple: 'Apple', + banana: 'Banana', + cherry: 'Cherry', + }; + const fruit = select('Fruit', fruits, 'apple'); + const dollars = number('Dollars', 12.5); + + // NOTE: color picker is currently broken + const backgroundColor = color('background', '#ffff00'); + const items = array('Items', ['Laptop', 'Book', 'Whiskey']); + const otherStyles = object('Styles', { + borderWidth: 3, + borderColor: '#ff00ff', + padding: 10, + }); + const nice = boolean('Nice', true); + + // NOTE: put this last because it currently breaks everything after it :D + const birthday = date('Birthday', new Date('Jan 20 2017')); + + const intro = `My name is ${name}, I'm ${age} years old, and my favorite fruit is ${fruit}.`; + const style = { backgroundColor, ...otherStyles }; + const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!'; + const dateOptions = { year: 'numeric', month: 'long', day: 'numeric' }; + + return ( + + + {intro} + + + My birthday is: {new Date(birthday).toLocaleDateString('en-US', dateOptions)} + + + My wallet contains: ${dollars.toFixed(2)} + + In my backpack, I have: + + {items.map(item => + + {item} + + )} + + + {salutation} + + + ); +}; diff --git a/examples/crna-kitchen-sink/storybook/stories/index.js b/examples/crna-kitchen-sink/storybook/stories/index.js index 99ab2205a9d0..597005a811de 100644 --- a/examples/crna-kitchen-sink/storybook/stories/index.js +++ b/examples/crna-kitchen-sink/storybook/stories/index.js @@ -4,7 +4,9 @@ import { Text } from 'react-native'; import { storiesOf } from '@storybook/react-native'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; +import { withKnobs } from '@storybook/addon-knobs'; +import knobsWrapper from './Knobs'; import Button from './Button'; import CenterView from './CenterView'; import Welcome from './Welcome'; @@ -27,3 +29,5 @@ storiesOf('Button', module) πŸ˜€ 😎 πŸ‘ πŸ’― ); + +storiesOf('Knobs', module).addDecorator(withKnobs).add('with knobs', knobsWrapper); diff --git a/examples/react-native-vanilla/package.json b/examples/react-native-vanilla/package.json index f10414aab4f3..4ca51a255454 100644 --- a/examples/react-native-vanilla/package.json +++ b/examples/react-native-vanilla/package.json @@ -17,6 +17,7 @@ "jest": "^20.0.4", "react-test-renderer": "16.0.0-alpha.6", "@storybook/addon-actions": "file:../../addons/actions", + "@storybook/addon-knobs": "file:../../addons/knobs", "@storybook/addon-links": "file:../../addons/links", "@storybook/addon-options": "file:../../addons/options", "@storybook/addon-storyshots": "file:../../addons/storyshots", diff --git a/examples/react-native-vanilla/storybook/stories/Knobs/index.js b/examples/react-native-vanilla/storybook/stories/Knobs/index.js new file mode 100644 index 000000000000..19cec307ac4f --- /dev/null +++ b/examples/react-native-vanilla/storybook/stories/Knobs/index.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { View, Text } from 'react-native'; + +import { text, number, boolean, color, select, array, date, object } from '@storybook/addon-knobs'; + +export default () => { + const name = text('Name', 'Storyteller'); + const age = number('Age', 70, { range: true, min: 0, max: 90, step: 5 }); + const fruits = { + apple: 'Apple', + banana: 'Banana', + cherry: 'Cherry', + }; + const fruit = select('Fruit', fruits, 'apple'); + const dollars = number('Dollars', 12.5); + + // NOTE: color picker is currently broken + const backgroundColor = color('background', '#ffff00'); + const items = array('Items', ['Laptop', 'Book', 'Whiskey']); + const otherStyles = object('Styles', { + borderWidth: 3, + borderColor: '#ff00ff', + padding: 10, + }); + const nice = boolean('Nice', true); + + // NOTE: put this last because it currently breaks everything after it :D + const birthday = date('Birthday', new Date('Jan 20 2017')); + + const intro = `My name is ${name}, I'm ${age} years old, and my favorite fruit is ${fruit}.`; + const style = { backgroundColor, ...otherStyles }; + const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!'; + const dateOptions = { year: 'numeric', month: 'long', day: 'numeric' }; + + return ( + + + {intro} + + + My birthday is: {new Date(birthday).toLocaleDateString('en-US', dateOptions)} + + + My wallet contains: ${dollars.toFixed(2)} + + In my backpack, I have: + + {items.map(item => + + {item} + + )} + + + {salutation} + + + ); +}; diff --git a/examples/react-native-vanilla/storybook/stories/index.js b/examples/react-native-vanilla/storybook/stories/index.js index 99ab2205a9d0..597005a811de 100644 --- a/examples/react-native-vanilla/storybook/stories/index.js +++ b/examples/react-native-vanilla/storybook/stories/index.js @@ -4,7 +4,9 @@ import { Text } from 'react-native'; import { storiesOf } from '@storybook/react-native'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; +import { withKnobs } from '@storybook/addon-knobs'; +import knobsWrapper from './Knobs'; import Button from './Button'; import CenterView from './CenterView'; import Welcome from './Welcome'; @@ -27,3 +29,5 @@ storiesOf('Button', module) πŸ˜€ 😎 πŸ‘ πŸ’― ); + +storiesOf('Knobs', module).addDecorator(withKnobs).add('with knobs', knobsWrapper); From ab71413fa28398046c8c6ea3a3aafe7a4d6c5a9f Mon Sep 17 00:00:00 2001 From: igor Date: Thu, 10 Aug 2017 13:07:13 +0300 Subject: [PATCH 013/107] Support fileName in Vue --- app/vue/src/client/preview/client_api.js | 9 +++- app/vue/src/client/preview/client_api.test.js | 47 ++++++++++++++++++- app/vue/src/client/preview/story_store.js | 12 ++++- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/app/vue/src/client/preview/client_api.js b/app/vue/src/client/preview/client_api.js index 051bab7292c8..9249e4d28434 100644 --- a/app/vue/src/client/preview/client_api.js +++ b/app/vue/src/client/preview/client_api.js @@ -73,8 +73,10 @@ export default class ClientApi { getStory ); + const fileName = m ? m.filename : null; + // Add the fully decorated getStory function. - this._storyStore.addStory(kind, storyName, getDecoratedStory); + this._storyStore.addStory(kind, storyName, getDecoratedStory, fileName); return api; }; @@ -88,11 +90,14 @@ export default class ClientApi { getStorybook() { return this._storyStore.getStoryKinds().map(kind => { + const fileName = this._storyStore.getStoryFileName(kind); + const stories = this._storyStore.getStories(kind).map(name => { const render = this._storyStore.getStory(kind, name); return { name, render }; }); - return { kind, stories }; + + return { kind, fileName, stories }; }); } } diff --git a/app/vue/src/client/preview/client_api.test.js b/app/vue/src/client/preview/client_api.test.js index acb45b425c1f..80c57f8cd903 100644 --- a/app/vue/src/client/preview/client_api.test.js +++ b/app/vue/src/client/preview/client_api.test.js @@ -7,8 +7,8 @@ class StoryStore { this.stories = []; } - addStory(kind, story, fn) { - this.stories.push({ kind, story, fn }); + addStory(kind, story, fn, fileName) { + this.stories.push({ kind, story, fn, fileName }); } getStoryKinds() { @@ -29,6 +29,11 @@ class StoryStore { }, []); } + getStoryFileName(kind) { + const story = this.stories.find(info => info.kind === kind); + return story ? story.fileName : null; + } + getStory(kind, name) { return this.stories.reduce((fn, info) => { if (!fn && info.kind === kind && info.story === name) { @@ -229,6 +234,43 @@ describe('preview.client_api', () => { expect(book).toEqual([ { kind: 'kind-1', + fileName: null, + stories: [ + { name: 'story-1.1', render: functions['story-1.1'] }, + { name: 'story-1.2', render: functions['story-1.2'] }, + ], + }, + { + kind: 'kind-2', + fileName: null, + stories: [ + { name: 'story-2.1', render: functions['story-2.1'] }, + { name: 'story-2.2', render: functions['story-2.2'] }, + ], + }, + ]); + }); + + it('should return storybook with file names when module with file name provided', () => { + const storyStore = new StoryStore(); + const api = new ClientAPI({ storyStore }); + const functions = { + 'story-1.1': () => 'story-1.1', + 'story-1.2': () => 'story-1.2', + 'story-2.1': () => 'story-2.1', + 'story-2.2': () => 'story-2.2', + }; + const kind1 = api.storiesOf('kind-1', { filename: 'foo' }); + kind1.add('story-1.1', functions['story-1.1']); + kind1.add('story-1.2', functions['story-1.2']); + const kind2 = api.storiesOf('kind-2', { filename: 'bar' }); + kind2.add('story-2.1', functions['story-2.1']); + kind2.add('story-2.2', functions['story-2.2']); + const book = api.getStorybook(); + expect(book).toEqual([ + { + kind: 'kind-1', + fileName: 'foo', stories: [ { name: 'story-1.1', render: functions['story-1.1'] }, { name: 'story-1.2', render: functions['story-1.2'] }, @@ -236,6 +278,7 @@ describe('preview.client_api', () => { }, { kind: 'kind-2', + fileName: 'bar', stories: [ { name: 'story-2.1', render: functions['story-2.1'] }, { name: 'story-2.2', render: functions['story-2.2'] }, diff --git a/app/vue/src/client/preview/story_store.js b/app/vue/src/client/preview/story_store.js index b7051c1ea3be..a82bba34d24d 100644 --- a/app/vue/src/client/preview/story_store.js +++ b/app/vue/src/client/preview/story_store.js @@ -12,10 +12,11 @@ export default class StoryStore { this._data = {}; } - addStory(kind, name, fn) { + addStory(kind, name, fn, fileName) { if (!this._data[kind]) { this._data[kind] = { kind, + fileName, index: getId(), stories: {}, }; @@ -47,6 +48,15 @@ export default class StoryStore { .map(info => info.name); } + getStoryFileName(kind) { + const storiesKind = this._data[kind]; + if (!storiesKind) { + return null; + } + + return storiesKind.fileName; + } + getStory(kind, name) { const storiesKind = this._data[kind]; if (!storiesKind) { From a0cc1c90415e900beda8faad630baf5028ce9d99 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 17 Aug 2017 15:26:27 -0700 Subject: [PATCH 014/107] initial port --- addons/viewport/.gitignore | 5 ++ addons/viewport/.storybook/addons.js | 1 + addons/viewport/.storybook/config.js | 2 + addons/viewport/.storybook/stories.js | 7 +++ addons/viewport/manager.js | 2 + addons/viewport/package.json | 27 ++++++++++ addons/viewport/register.js | 3 ++ addons/viewport/src/components/Panel.jsx | 54 +++++++++++++++++++ addons/viewport/src/components/WrapStory.jsx | 21 ++++++++ .../viewport/src/components/viewportInfo.js | 21 ++++++++ addons/viewport/src/index.jsx | 20 +++++++ addons/viewport/src/manager.jsx | 23 ++++++++ 12 files changed, 186 insertions(+) create mode 100644 addons/viewport/.gitignore create mode 100644 addons/viewport/.storybook/addons.js create mode 100644 addons/viewport/.storybook/config.js create mode 100644 addons/viewport/.storybook/stories.js create mode 100644 addons/viewport/manager.js create mode 100644 addons/viewport/package.json create mode 100644 addons/viewport/register.js create mode 100644 addons/viewport/src/components/Panel.jsx create mode 100644 addons/viewport/src/components/WrapStory.jsx create mode 100644 addons/viewport/src/components/viewportInfo.js create mode 100644 addons/viewport/src/index.jsx create mode 100644 addons/viewport/src/manager.jsx diff --git a/addons/viewport/.gitignore b/addons/viewport/.gitignore new file mode 100644 index 000000000000..745197c1619c --- /dev/null +++ b/addons/viewport/.gitignore @@ -0,0 +1,5 @@ +*.sw* +node_modules +dist +jest +jest_0 diff --git a/addons/viewport/.storybook/addons.js b/addons/viewport/.storybook/addons.js new file mode 100644 index 000000000000..339062f226f1 --- /dev/null +++ b/addons/viewport/.storybook/addons.js @@ -0,0 +1 @@ +import '@storybook/addon-viewport/register'; diff --git a/addons/viewport/.storybook/config.js b/addons/viewport/.storybook/config.js new file mode 100644 index 000000000000..29599c59b5d2 --- /dev/null +++ b/addons/viewport/.storybook/config.js @@ -0,0 +1,2 @@ +import * as storybook from '@storybook/react'; +storybook.configure(() => require('./stories'), module); diff --git a/addons/viewport/.storybook/stories.js b/addons/viewport/.storybook/stories.js new file mode 100644 index 000000000000..ad417b1c9d83 --- /dev/null +++ b/addons/viewport/.storybook/stories.js @@ -0,0 +1,7 @@ +import React from 'react'; +import { storiesOf } from '@storybook/react'; +import { withViewport } from '../src'; + +storiesOf('Viewport Example', module) + .addDecorator(withViewport) + .add('Example', ); diff --git a/addons/viewport/manager.js b/addons/viewport/manager.js new file mode 100644 index 000000000000..68d13f4d0bf1 --- /dev/null +++ b/addons/viewport/manager.js @@ -0,0 +1,2 @@ +const manager = require('./dist/manager'); +manager.init(); diff --git a/addons/viewport/package.json b/addons/viewport/package.json new file mode 100644 index 000000000000..be4f9b3d3930 --- /dev/null +++ b/addons/viewport/package.json @@ -0,0 +1,27 @@ +{ + "name": "@storybook/addon-viewport", + "version": "1.0.0", + "description": "Creates an addon for the storybook action area to change the viewport for mobile screen sizes", + "main": "dist/index.js", + "scripts": { + "build": "babel --source-maps --out-dir dist src", + "watch": "npm run build -- -w", + "prepublish": "npm run build" + }, + "license": "MIT", + "dependencies": { + "prop-types": "^15.5.10" + }, + "peerDependencies": { + "@storybook/addons": "^3.2.0", + "react": "^15.6.1" + }, + "devDependencies": { + "babel-cli": "^6.24.1", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-es2017": "^6.24.1", + "babel-preset-react": "^6.24.1" + } +} diff --git a/addons/viewport/register.js b/addons/viewport/register.js new file mode 100644 index 000000000000..94af5ec3ba83 --- /dev/null +++ b/addons/viewport/register.js @@ -0,0 +1,3 @@ +// NOTE: loading addons using this file is deprecated! +// please use manager.js and preview.js files instead +require('./manager'); diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx new file mode 100644 index 000000000000..6257870b1489 --- /dev/null +++ b/addons/viewport/src/components/Panel.jsx @@ -0,0 +1,54 @@ +import React, { Component } from 'react'; +import { viewports } from './viewportInfo'; + +const storybookIframe = 'storybook-preview-iframe'; +const configuredStyles = { + border: '1px solid #728099', + display: 'flex', + margin: '0 auto', + boxShadow: 'rgba(0,0,0,0.2) 0px 0px 60px 12px', +}; + + +export class Panel extends Component { + static propTypes = { + channel: PropTypes.object.isRequired, + } + + iframe = undefined; + + constructor(props, context) { + super(props, context); + this.state = { viewport: null }; + + this.props.channel.on( + 'addon:viewport:update', + this.changeViewport + ); + } + + componentDidMount() { + this.iframe = document.getElementById(storybookIframe); + } + + setIframeStyles(styles) { + this.iframe.style = styles; + } + + changeViewport = (viewport) => { + const size = viewports[viewport] || viewports.reset; + this.setIframeStyles(viewport.styles); + } + + render() { + return ( +
+ { viewportSizes.map((viewport) => { + + })} +
+ ); + } +} diff --git a/addons/viewport/src/components/WrapStory.jsx b/addons/viewport/src/components/WrapStory.jsx new file mode 100644 index 000000000000..0928e8b11fca --- /dev/null +++ b/addons/viewport/src/components/WrapStory.jsx @@ -0,0 +1,21 @@ +import React, { Component } from 'react'; +import addons from '@storybook/addons'; +import PropTypes from 'prop-types'; + +export class WrapStory extends Component { + static propTypes = { + channel: PropTypes.object.isRequired, + context: PropTypes.object.isRequired, + storyFn: PropTypes.func.isRequired, + } + + componentDidMount() { + const { channel } = this.props; + channel.emit('addon:viewport:update', 'reset'); + } + + render() { + const { storyFn, context } = this.props; + return storyFn(context); + } +} diff --git a/addons/viewport/src/components/viewportInfo.js b/addons/viewport/src/components/viewportInfo.js new file mode 100644 index 000000000000..0413551c252e --- /dev/null +++ b/addons/viewport/src/components/viewportInfo.js @@ -0,0 +1,21 @@ +export const viewports = { + iphone6: { + name: 'iPhone 6', + styles: { + height: '667px', + width: '375px', + ...configuredStyles, + }, + }, + reset: { + name: 'Reset' + styles: { + width: '100%', + height: '100%', + border: 'none', + display: 'block', + margin: '0', + boxShadow: 'none', + }, + }, +}; diff --git a/addons/viewport/src/index.jsx b/addons/viewport/src/index.jsx new file mode 100644 index 000000000000..927e63c1cdf7 --- /dev/null +++ b/addons/viewport/src/index.jsx @@ -0,0 +1,20 @@ +import React from 'react'; +import addons from '@storybook/addons'; + +import { WrapStory } from './components/WrapStory'; + +class ViewportManager { + wrapStory(channel, storyFn, context) { + const props = { context, storyFn, channel }; + return + } +} + +const manager = new ViewportManager(); + +function withViewport(storyFn, context) { + const channel = addons.getChannel(); + return manager.wrapStory(channel, storyFn, context); +} + +export { withViewport }; diff --git a/addons/viewport/src/manager.jsx b/addons/viewport/src/manager.jsx new file mode 100644 index 000000000000..995fb17f66b3 --- /dev/null +++ b/addons/viewport/src/manager.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import addons from '@storybook/addons'; + +import { Panel } from './components/Panel'; + +const ADDON_ID = 'storybook-addon-viewport'; +const PANEL_ID = `${ADDON_ID}/addon-panel`; +const EVENT_ID = `${ADDON_ID}/addon-event`; + +function init() { + addons.register(ADDON_ID, api => { + const channel = addons.getChannel(); + + addons.addPanel(PANEL_ID, { + title: 'Viewport', + render() { + return ; + } + }); + }); +} + +export { init } From b47bc5b3c93697412fbec06698b784e50d22bbe5 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 17 Aug 2017 15:30:13 -0700 Subject: [PATCH 015/107] improve the viewport package.json for integration into the lerna repo for storybook --- addons/viewport/package.json | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/addons/viewport/package.json b/addons/viewport/package.json index be4f9b3d3930..7f07a51d6294 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -1,12 +1,17 @@ { "name": "@storybook/addon-viewport", "version": "1.0.0", - "description": "Creates an addon for the storybook action area to change the viewport for mobile screen sizes", + "description": "Storybook addon to change the viewport size to mobile", "main": "dist/index.js", + "keywords": [ + "storybook" + ], "scripts": { "build": "babel --source-maps --out-dir dist src", "watch": "npm run build -- -w", - "prepublish": "npm run build" + "prepublish": "npm run build", + "storybook": "start-storybook -p 3000", + "deploy-storybook": "storybook-to-ghpages" }, "license": "MIT", "dependencies": { @@ -14,14 +19,16 @@ }, "peerDependencies": { "@storybook/addons": "^3.2.0", - "react": "^15.6.1" + "react": "*" }, "devDependencies": { + "@storybook/addons": "^3.2.0", "babel-cli": "^6.24.1", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-object-rest-spread": "^6.23.0", "babel-preset-es2015": "^6.24.1", "babel-preset-es2017": "^6.24.1", - "babel-preset-react": "^6.24.1" + "babel-preset-react": "^6.24.1", + "react": "^15.6.1" } } From 3eb9cc5dc4f839c88316687d8c632e8ad0afddbd Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 17 Aug 2017 15:51:19 -0700 Subject: [PATCH 016/107] fix most lint errors --- addons/viewport/manager.js | 1 + addons/viewport/src/components/Panel.jsx | 80 ++++++++----------- addons/viewport/src/components/WrapStory.jsx | 26 +++--- .../viewport/src/components/viewportInfo.js | 41 ++++++---- addons/viewport/src/index.jsx | 12 +-- addons/viewport/src/manager.jsx | 19 +++-- 6 files changed, 86 insertions(+), 93 deletions(-) diff --git a/addons/viewport/manager.js b/addons/viewport/manager.js index 68d13f4d0bf1..67d49f75b482 100644 --- a/addons/viewport/manager.js +++ b/addons/viewport/manager.js @@ -1,2 +1,3 @@ const manager = require('./dist/manager'); + manager.init(); diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx index 6257870b1489..54150de9c538 100644 --- a/addons/viewport/src/components/Panel.jsx +++ b/addons/viewport/src/components/Panel.jsx @@ -1,54 +1,40 @@ import React, { Component } from 'react'; +import PropTypes from 'prop-types'; import { viewports } from './viewportInfo'; const storybookIframe = 'storybook-preview-iframe'; -const configuredStyles = { - border: '1px solid #728099', - display: 'flex', - margin: '0 auto', - boxShadow: 'rgba(0,0,0,0.2) 0px 0px 60px 12px', -}; - export class Panel extends Component { - static propTypes = { - channel: PropTypes.object.isRequired, - } - - iframe = undefined; - - constructor(props, context) { - super(props, context); - this.state = { viewport: null }; - - this.props.channel.on( - 'addon:viewport:update', - this.changeViewport - ); - } - - componentDidMount() { - this.iframe = document.getElementById(storybookIframe); - } - - setIframeStyles(styles) { - this.iframe.style = styles; - } - - changeViewport = (viewport) => { - const size = viewports[viewport] || viewports.reset; - this.setIframeStyles(viewport.styles); - } - - render() { - return ( -
- { viewportSizes.map((viewport) => { - - })} -
- ); - } + static propTypes = { + channel: PropTypes.object.isRequired, + }; + + constructor(props, context) { + super(props, context); + this.state = { viewport: null }; + + this.props.channel.on('addon:viewport:update', this.changeViewport); + } + + componentDidMount() { + this.iframe = document.getElementById(storybookIframe); + } + + iframe = undefined; + + changeViewport = viewport => { + this.iframe.style = viewport.styles; + }; + + render() { + return ( +
+ {viewports.map(viewport => + + )} +
+ ); + } } diff --git a/addons/viewport/src/components/WrapStory.jsx b/addons/viewport/src/components/WrapStory.jsx index 0928e8b11fca..51d7082eef3e 100644 --- a/addons/viewport/src/components/WrapStory.jsx +++ b/addons/viewport/src/components/WrapStory.jsx @@ -3,19 +3,19 @@ import addons from '@storybook/addons'; import PropTypes from 'prop-types'; export class WrapStory extends Component { - static propTypes = { - channel: PropTypes.object.isRequired, - context: PropTypes.object.isRequired, - storyFn: PropTypes.func.isRequired, - } + static propTypes = { + channel: PropTypes.object.isRequired, + context: PropTypes.object.isRequired, + storyFn: PropTypes.func.isRequired, + }; - componentDidMount() { - const { channel } = this.props; - channel.emit('addon:viewport:update', 'reset'); - } + componentDidMount() { + const { channel } = this.props; + channel.emit('addon:viewport:update', 'reset'); + } - render() { - const { storyFn, context } = this.props; - return storyFn(context); - } + render() { + const { storyFn, context } = this.props; + return storyFn(context); + } } diff --git a/addons/viewport/src/components/viewportInfo.js b/addons/viewport/src/components/viewportInfo.js index 0413551c252e..3b4698c2ddee 100644 --- a/addons/viewport/src/components/viewportInfo.js +++ b/addons/viewport/src/components/viewportInfo.js @@ -1,21 +1,28 @@ +const configuredStyles = { + border: '1px solid #728099', + display: 'flex', + margin: '0 auto', + boxShadow: 'rgba(0,0,0,0.2) 0px 0px 60px 12px', +}; + export const viewports = { - iphone6: { - name: 'iPhone 6', - styles: { - height: '667px', - width: '375px', - ...configuredStyles, - }, + iphone6: { + name: 'iPhone 6', + styles: { + height: '667px', + width: '375px', + ...configuredStyles, }, - reset: { - name: 'Reset' - styles: { - width: '100%', - height: '100%', - border: 'none', - display: 'block', - margin: '0', - boxShadow: 'none', - }, + }, + reset: { + name: 'Reset', + styles: { + width: '100%', + height: '100%', + border: 'none', + display: 'block', + margin: '0', + boxShadow: 'none', }, + }, }; diff --git a/addons/viewport/src/index.jsx b/addons/viewport/src/index.jsx index 927e63c1cdf7..4745fb288a5f 100644 --- a/addons/viewport/src/index.jsx +++ b/addons/viewport/src/index.jsx @@ -4,17 +4,17 @@ import addons from '@storybook/addons'; import { WrapStory } from './components/WrapStory'; class ViewportManager { - wrapStory(channel, storyFn, context) { - const props = { context, storyFn, channel }; - return - } + wrapStory(channel, storyFn, context) { + const props = { context, storyFn, channel }; + return ; + } } const manager = new ViewportManager(); function withViewport(storyFn, context) { - const channel = addons.getChannel(); - return manager.wrapStory(channel, storyFn, context); + const channel = addons.getChannel(); + return manager.wrapStory(channel, storyFn, context); } export { withViewport }; diff --git a/addons/viewport/src/manager.jsx b/addons/viewport/src/manager.jsx index 995fb17f66b3..589ce24808ae 100644 --- a/addons/viewport/src/manager.jsx +++ b/addons/viewport/src/manager.jsx @@ -5,19 +5,18 @@ import { Panel } from './components/Panel'; const ADDON_ID = 'storybook-addon-viewport'; const PANEL_ID = `${ADDON_ID}/addon-panel`; -const EVENT_ID = `${ADDON_ID}/addon-event`; function init() { - addons.register(ADDON_ID, api => { - const channel = addons.getChannel(); + addons.register(ADDON_ID, api => { + const channel = addons.getChannel(); - addons.addPanel(PANEL_ID, { - title: 'Viewport', - render() { - return ; - } - }); + addons.addPanel(PANEL_ID, { + title: 'Viewport', + render() { + return ; + }, }); + }); } -export { init } +export { init }; From c25a42f53d7d424997ad078b8460a35539496e57 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 17 Aug 2017 18:18:55 -0700 Subject: [PATCH 017/107] Add some features (respnosive, veritcal / horizontal swap), change single button to switch.. unclear if that's good or not though. --- addons/viewport/.storybook/config.js | 1 + addons/viewport/.storybook/stories.js | 10 +- addons/viewport/package.json | 3 +- addons/viewport/src/components/Panel.jsx | 141 ++++++++++++++---- addons/viewport/src/components/WrapStory.jsx | 11 +- .../viewport/src/components/viewportInfo.js | 65 +++++++- addons/viewport/src/index.js | 1 + addons/viewport/src/index.jsx | 20 --- 8 files changed, 183 insertions(+), 69 deletions(-) create mode 100644 addons/viewport/src/index.js delete mode 100644 addons/viewport/src/index.jsx diff --git a/addons/viewport/.storybook/config.js b/addons/viewport/.storybook/config.js index 29599c59b5d2..9c18e1bf514c 100644 --- a/addons/viewport/.storybook/config.js +++ b/addons/viewport/.storybook/config.js @@ -1,2 +1,3 @@ import * as storybook from '@storybook/react'; + storybook.configure(() => require('./stories'), module); diff --git a/addons/viewport/.storybook/stories.js b/addons/viewport/.storybook/stories.js index ad417b1c9d83..d5ea1dea2e4b 100644 --- a/addons/viewport/.storybook/stories.js +++ b/addons/viewport/.storybook/stories.js @@ -1,7 +1,9 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; -import { withViewport } from '../src'; -storiesOf('Viewport Example', module) - .addDecorator(withViewport) - .add('Example', ); +storiesOf('Viewport', module) + .add('Example', () => ( +

+ Change viewport sizes below +

+ )); diff --git a/addons/viewport/package.json b/addons/viewport/package.json index 7f07a51d6294..e9c6961707e9 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -4,7 +4,7 @@ "description": "Storybook addon to change the viewport size to mobile", "main": "dist/index.js", "keywords": [ - "storybook" + "storybook" ], "scripts": { "build": "babel --source-maps --out-dir dist src", @@ -15,6 +15,7 @@ }, "license": "MIT", "dependencies": { + "@storybook/react": "^3.2.5", "prop-types": "^15.5.10" }, "peerDependencies": { diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx index 54150de9c538..397c2f54af86 100644 --- a/addons/viewport/src/components/Panel.jsx +++ b/addons/viewport/src/components/Panel.jsx @@ -1,40 +1,115 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { viewports } from './viewportInfo'; +import { viewports, resetViewport } from './viewportInfo'; const storybookIframe = 'storybook-preview-iframe'; +const defaultViewport = 'default'; export class Panel extends Component { - static propTypes = { - channel: PropTypes.object.isRequired, - }; - - constructor(props, context) { - super(props, context); - this.state = { viewport: null }; - - this.props.channel.on('addon:viewport:update', this.changeViewport); - } - - componentDidMount() { - this.iframe = document.getElementById(storybookIframe); - } - - iframe = undefined; - - changeViewport = viewport => { - this.iframe.style = viewport.styles; - }; - - render() { - return ( -
- {viewports.map(viewport => - - )} -
- ); - } + static propTypes = { + channel: PropTypes.object.isRequired, + }; + + constructor(props, context) { + super(props, context); + this.state = { + viewport: defaultViewport, + isLandscape: false, + }; + + this.props.channel.on('addon:viewport:update', this.changeViewport); + } + + componentDidMount() { + this.iframe = document.getElementById(storybookIframe); + } + + iframe = undefined; + + changeViewport = viewport => { + const { viewport: previousViewport, isLandscape } = this.state; + + if (previousViewport !== viewport) { + this.setState({ + viewport, + isLandscape: false, + }, this.updateIframe); + } else { + this.updateIframe(); + } + }; + + toggleLandscape = () => { + const { isLandscape } = this.state; + + // TODO simplify the state management + // ideally we simply dispatch an action to the iframe + this.setState({ + isLandscape: !isLandscape, + }, () => { + this.changeViewport(this.state.viewport); + }); + } + + updateIframe() { + const { viewport: viewportKey, isLandscape } = this.state; + const viewport = viewports[viewportKey] || resetViewport; + + if (!this.iframe) { + throw new Error('Cannot find Storybook iframe'); + } + + Object.keys(viewport.styles).forEach(prop => { + this.iframe.style[prop] = viewport.styles[prop]; + }); + + if (isLandscape) { + this.iframe.style.height = viewport.styles.width; + this.iframe.style.width = viewport.styles.height; + } + } + + render() { + const { isLandscape, viewport } = this.state; + + return ( +
+
+ + + +
+ +
+ +
+ +
+

Responsive

+
+ + px +
+
+ + px +
+
+
+ ); + } } diff --git a/addons/viewport/src/components/WrapStory.jsx b/addons/viewport/src/components/WrapStory.jsx index 51d7082eef3e..2c156b6331dd 100644 --- a/addons/viewport/src/components/WrapStory.jsx +++ b/addons/viewport/src/components/WrapStory.jsx @@ -5,9 +5,14 @@ import PropTypes from 'prop-types'; export class WrapStory extends Component { static propTypes = { channel: PropTypes.object.isRequired, - context: PropTypes.object.isRequired, - storyFn: PropTypes.func.isRequired, - }; + context: PropTypes.object, + storyFn: PropTypes.func, + } + + static defaultProps = { + context: {}, + storyFn: context => context, + } componentDidMount() { const { channel } = this.props; diff --git a/addons/viewport/src/components/viewportInfo.js b/addons/viewport/src/components/viewportInfo.js index 3b4698c2ddee..829eaa4264b3 100644 --- a/addons/viewport/src/components/viewportInfo.js +++ b/addons/viewport/src/components/viewportInfo.js @@ -5,7 +5,27 @@ const configuredStyles = { boxShadow: 'rgba(0,0,0,0.2) 0px 0px 60px 12px', }; +export const resetViewport = { + name: 'Reset', + styles: { + width: '100%', + height: '100%', + border: 'none', + display: 'block', + margin: '0', + boxShadow: 'none', + }, +}; + export const viewports = { + iphone5: { + name: 'iPhone 5', + styles: { + height: '568px', + width: '320px', + ...configuredStyles, + }, + }, iphone6: { name: 'iPhone 6', styles: { @@ -14,15 +34,44 @@ export const viewports = { ...configuredStyles, }, }, - reset: { - name: 'Reset', + iphone6p: { + name: 'iPhone 6 Plus', styles: { - width: '100%', - height: '100%', - border: 'none', - display: 'block', - margin: '0', - boxShadow: 'none', + height: '736px', + width: '414px', + ...configuredStyles, + }, + }, + ipad: { + name: 'iPad', + styles: { + height: '1024px', + width: '768px', + ...configuredStyles, + }, + }, + galaxys5: { + name: 'Galaxy S5', + styles: { + height: '640px', + width: '360px', + ...configuredStyles, + }, + }, + nexus5x: { + name: 'Nexus 5X', + styles: { + height: '660px', + width: '412px', + ...configuredStyles, + }, + }, + nexus6p: { + name: 'Nexus 6P', + styles: { + height: '732px', + width: '412px', + ...configuredStyles, }, }, }; diff --git a/addons/viewport/src/index.js b/addons/viewport/src/index.js new file mode 100644 index 000000000000..d3da40ad9193 --- /dev/null +++ b/addons/viewport/src/index.js @@ -0,0 +1 @@ +export { register } from './manager'; diff --git a/addons/viewport/src/index.jsx b/addons/viewport/src/index.jsx deleted file mode 100644 index 4745fb288a5f..000000000000 --- a/addons/viewport/src/index.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import addons from '@storybook/addons'; - -import { WrapStory } from './components/WrapStory'; - -class ViewportManager { - wrapStory(channel, storyFn, context) { - const props = { context, storyFn, channel }; - return ; - } -} - -const manager = new ViewportManager(); - -function withViewport(storyFn, context) { - const channel = addons.getChannel(); - return manager.wrapStory(channel, storyFn, context); -} - -export { withViewport }; From 1b7481be23f1e59a9ad009d554fc458c81e266c5 Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 06:32:42 +0300 Subject: [PATCH 018/107] Revert "Revert "Deprecate confusing option names"" This reverts commit 524110b2e5c62a901ee9dfa326a1bd5a99e55520. --- addons/options/.storybook/config.js | 6 +- .../cra-kitchen-sink/.storybook/config.js | 6 +- lib/ui/src/libs/key_events.js | 12 +- lib/ui/src/modules/api/actions/api.test.js | 2 +- .../modules/shortcuts/actions/shortcuts.js | 39 +++++-- .../shortcuts/actions/shortcuts.test.js | 29 +++++ lib/ui/src/modules/shortcuts/index.js | 6 +- lib/ui/src/modules/ui/actions/ui.js | 2 +- lib/ui/src/modules/ui/actions/ui.test.js | 4 +- .../{down_panel => addon_panel}/index.js | 8 +- .../{down_panel => addon_panel}/index.test.js | 10 +- .../{down_panel => addon_panel}/style.js | 0 .../src/modules/ui/components/layout/index.js | 104 +++++++++--------- .../ui/components/layout/index.test.js | 52 ++++----- .../modules/ui/components/shortcuts_help.js | 12 +- .../{left_panel => stories_panel}/header.js | 0 .../header.test.js | 2 +- .../{left_panel => stories_panel}/index.js | 8 +- .../index.test.js | 14 +-- .../stories_tree/index.js | 0 .../stories_tree/index.test.js | 2 +- .../stories_tree/tree_decorators.js | 0 .../stories_tree/tree_node_type.js | 0 .../stories_tree/tree_style.js | 0 .../text_filter.js | 0 .../text_filter.test.js | 2 +- .../src/modules/ui/configs/handle_routing.js | 31 +++--- .../modules/ui/configs/handle_routing.test.js | 59 +++++++--- lib/ui/src/modules/ui/configs/init_panels.js | 2 +- .../modules/ui/configs/init_panels.test.js | 6 +- .../{down_panel.js => addon_panel.js} | 6 +- ...down_panel.test.js => addon_panel.test.js} | 10 +- lib/ui/src/modules/ui/containers/layout.js | 2 +- .../src/modules/ui/containers/layout.test.js | 4 +- .../{left_panel.js => stories_panel.js} | 4 +- ...ft_panel.test.js => stories_panel.test.js} | 4 +- lib/ui/src/modules/ui/routes.js | 8 +- 37 files changed, 274 insertions(+), 182 deletions(-) rename lib/ui/src/modules/ui/components/{down_panel => addon_panel}/index.js (94%) rename lib/ui/src/modules/ui/components/{down_panel => addon_panel}/index.test.js (78%) rename lib/ui/src/modules/ui/components/{down_panel => addon_panel}/style.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/header.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/header.test.js (86%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/index.js (93%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/index.test.js (82%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/index.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/index.test.js (99%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/tree_decorators.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/tree_node_type.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/tree_style.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/text_filter.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/text_filter.test.js (95%) rename lib/ui/src/modules/ui/containers/{down_panel.js => addon_panel.js} (67%) rename lib/ui/src/modules/ui/containers/{down_panel.test.js => addon_panel.test.js} (72%) rename lib/ui/src/modules/ui/containers/{left_panel.js => stories_panel.js} (90%) rename lib/ui/src/modules/ui/containers/{left_panel.test.js => stories_panel.test.js} (97%) diff --git a/addons/options/.storybook/config.js b/addons/options/.storybook/config.js index 339b3300e362..6f80581920af 100644 --- a/addons/options/.storybook/config.js +++ b/addons/options/.storybook/config.js @@ -5,10 +5,10 @@ setOptions({ name: 'CUSTOM-OPTIONS', url: 'https://github.com/storybooks/storybook', // goFullScreen: false, - // showLeftPanel: true, - showDownPanel: false, + // showStoriesPanel: true, + showAddonPanel: false, // showSearchBox: false, - // downPanelInRight: false, + // addonPanelInRight: false, }); storybook.configure(() => require('./stories'), module); diff --git a/examples/cra-kitchen-sink/.storybook/config.js b/examples/cra-kitchen-sink/.storybook/config.js index c21ef8b46b43..a90810903681 100644 --- a/examples/cra-kitchen-sink/.storybook/config.js +++ b/examples/cra-kitchen-sink/.storybook/config.js @@ -6,10 +6,10 @@ setOptions({ name: 'CRA Kitchen Sink', url: 'https://github.com/storybooks/storybook/tree/master/examples/cra-kitchen-sink', goFullScreen: false, - showLeftPanel: true, - showDownPanel: true, + showStoriesPanel: true, + showAddonsPanel: true, showSearchBox: false, - downPanelInRight: true, + addonsPanelInRight: true, sortStoriesByKind: false, hierarchySeparator: /\/|\./, }); diff --git a/lib/ui/src/libs/key_events.js b/lib/ui/src/libs/key_events.js index fb2b3822903d..bd54cf090692 100755 --- a/lib/ui/src/libs/key_events.js +++ b/lib/ui/src/libs/key_events.js @@ -2,14 +2,14 @@ import keycode from 'keycode'; export const features = { FULLSCREEN: 1, - DOWN_PANEL: 2, - LEFT_PANEL: 3, + ADDON_PANEL: 2, + NAVIGATION_PANEL: 3, SHORTCUTS_HELP: 4, ESCAPE: 5, NEXT_STORY: 6, PREV_STORY: 7, SHOW_SEARCH: 8, - DOWN_PANEL_IN_RIGHT: 9, + ADDON_PANEL_IN_RIGHT: 9, }; export function isModifierPressed(e) { @@ -42,10 +42,10 @@ export default function handle(e) { return features.FULLSCREEN; case keycode('D'): e.preventDefault(); - return features.DOWN_PANEL; + return features.ADDON_PANEL; case keycode('L'): e.preventDefault(); - return features.LEFT_PANEL; + return features.NAVIGATION_PANEL; case keycode('right'): e.preventDefault(); return features.NEXT_STORY; @@ -57,7 +57,7 @@ export default function handle(e) { return features.SHOW_SEARCH; case keycode('J'): e.preventDefault(); - return features.DOWN_PANEL_IN_RIGHT; + return features.ADDON_PANEL_IN_RIGHT; default: return false; } diff --git a/lib/ui/src/modules/api/actions/api.test.js b/lib/ui/src/modules/api/actions/api.test.js index 568bf358ed37..689116b537e9 100755 --- a/lib/ui/src/modules/api/actions/api.test.js +++ b/lib/ui/src/modules/api/actions/api.test.js @@ -216,7 +216,7 @@ describe('manager.api.actions.api', () => { expect(stateUpdates.selectedAddonPanel).toEqual('storybooks/storybook-addon-knobs'); }); - it('should keep current downPanel and output panel IDs', () => { + it('should keep current addonPanel and output panel IDs', () => { const clientStore = new MockClientStore(); actions.setOptions({ clientStore, provider }, { selectedAddonPanel: null }); diff --git a/lib/ui/src/modules/shortcuts/actions/shortcuts.js b/lib/ui/src/modules/shortcuts/actions/shortcuts.js index 741cb3eeebae..71b9eaad575b 100755 --- a/lib/ui/src/modules/shortcuts/actions/shortcuts.js +++ b/lib/ui/src/modules/shortcuts/actions/shortcuts.js @@ -2,23 +2,32 @@ import pick from 'lodash.pick'; import { features } from '../../../libs/key_events'; import apiActions from '../../api/actions'; +const deprecationMessage = (oldName, newName) => + `The ${oldName} prop is renamed to ${newName} and will not be available since the next major Storybook release. Please update your config.`; + export function keyEventToOptions(currentOptions, event) { switch (event) { case features.FULLSCREEN: return { goFullScreen: !currentOptions.goFullScreen }; - case features.DOWN_PANEL: - return { showDownPanel: !currentOptions.showDownPanel }; - case features.LEFT_PANEL: - return { showLeftPanel: !currentOptions.showLeftPanel }; + case features.ADDON_PANEL: + return { showAddonPanel: !currentOptions.showAddonPanel }; + case features.NAVIGATION_PANEL: + return { showStoriesPanel: !currentOptions.showStoriesPanel }; case features.SHOW_SEARCH: return { showSearchBox: true }; - case features.DOWN_PANEL_IN_RIGHT: - return { downPanelInRight: !currentOptions.downPanelInRight }; + case features.ADDON_PANEL_IN_RIGHT: + return { addonPanelInRight: !currentOptions.addonPanelInRight }; default: return {}; } } +const renamedOptions = { + showLeftPanel: 'showStoriesPanel', + showDownPanel: 'showAddonPanel', + downPanelInRight: 'addonPanelInRight', +}; + export default { handleEvent(context, event) { const { clientStore } = context; @@ -51,8 +60,24 @@ export default { ...pick(options, Object.keys(state.shortcutOptions)), }; + const withNewNames = Object.keys(renamedOptions).reduce((acc, oldName) => { + const newName = renamedOptions[oldName]; + + if (oldName in options && !(newName in options)) { + // eslint-disable-next-line no-console + console.warn(deprecationMessage(oldName, newName)); + + return { + ...acc, + [newName]: options[oldName], + }; + } + + return acc; + }, updatedOptions); + return { - shortcutOptions: updatedOptions, + shortcutOptions: withNewNames, }; }); }, diff --git a/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js b/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js index 7256d3991a86..09a0b42c7b44 100644 --- a/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js +++ b/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js @@ -35,5 +35,34 @@ describe('manager.shortcuts.actions.shortcuts', () => { shortcutOptions: { bbc: 50, abc: 10 }, }); }); + + test('should warn about deprecated option names', () => { + const clientStore = new MockClientStore(); + const spy = jest.spyOn(global.console, 'warn'); + actions.setOptions( + { clientStore }, + { + showLeftPanel: 1, + showDownPanel: 2, + downPanelInRight: 3, + } + ); + + const state = { + shortcutOptions: {}, + }; + const stateUpdates = clientStore.updateCallback(state); + expect(spy).toHaveBeenCalledTimes(3); + expect(stateUpdates).toEqual({ + shortcutOptions: { + showStoriesPanel: 1, + showAddonPanel: 2, + addonPanelInRight: 3, + }, + }); + + spy.mockReset(); + spy.mockRestore(); + }); }); }); diff --git a/lib/ui/src/modules/shortcuts/index.js b/lib/ui/src/modules/shortcuts/index.js index b86918e2d854..b8c3b8fa659b 100755 --- a/lib/ui/src/modules/shortcuts/index.js +++ b/lib/ui/src/modules/shortcuts/index.js @@ -5,10 +5,10 @@ export default { defaultState: { shortcutOptions: { goFullScreen: false, - showLeftPanel: true, - showDownPanel: true, + showStoriesPanel: true, + showAddonPanel: true, showSearchBox: false, - downPanelInRight: false, + addonPanelInRight: false, }, }, }; diff --git a/lib/ui/src/modules/ui/actions/ui.js b/lib/ui/src/modules/ui/actions/ui.js index a5a823643ce5..b0d279a8e7e8 100755 --- a/lib/ui/src/modules/ui/actions/ui.js +++ b/lib/ui/src/modules/ui/actions/ui.js @@ -7,7 +7,7 @@ export default { clientStore.toggle('showShortcutsHelp'); }, - selectDownPanel({ clientStore }, panelName) { + selectAddonPanel({ clientStore }, panelName) { clientStore.set('selectedAddonPanel', panelName); }, }; diff --git a/lib/ui/src/modules/ui/actions/ui.test.js b/lib/ui/src/modules/ui/actions/ui.test.js index de4df76f35ee..0226517cc5b3 100755 --- a/lib/ui/src/modules/ui/actions/ui.test.js +++ b/lib/ui/src/modules/ui/actions/ui.test.js @@ -24,13 +24,13 @@ describe('manager.ui.actions.ui', () => { }); }); - describe('selectDownPanel', () => { + describe('selectAddonPanel', () => { it('should set the given panel name', () => { const clientStore = { set: jest.fn(), }; const panelName = 'kkkind'; - actions.selectDownPanel({ clientStore }, panelName); + actions.selectAddonPanel({ clientStore }, panelName); expect(clientStore.set).toHaveBeenCalledWith('selectedAddonPanel', panelName); }); diff --git a/lib/ui/src/modules/ui/components/down_panel/index.js b/lib/ui/src/modules/ui/components/addon_panel/index.js similarity index 94% rename from lib/ui/src/modules/ui/components/down_panel/index.js rename to lib/ui/src/modules/ui/components/addon_panel/index.js index f20cbdcc359c..17b1935286a5 100644 --- a/lib/ui/src/modules/ui/components/down_panel/index.js +++ b/lib/ui/src/modules/ui/components/addon_panel/index.js @@ -2,7 +2,7 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; import style from './style'; -class DownPanel extends Component { +class AddonPanel extends Component { renderTab(name, panel) { let tabStyle = style.tablink; if (this.props.selectedPanel === name) { @@ -69,16 +69,16 @@ class DownPanel extends Component { } } -DownPanel.defaultProps = { +AddonPanel.defaultProps = { panels: {}, onPanelSelect: () => {}, selectedPanel: null, }; -DownPanel.propTypes = { +AddonPanel.propTypes = { panels: PropTypes.object, // eslint-disable-line react/forbid-prop-types onPanelSelect: PropTypes.func, selectedPanel: PropTypes.string, }; -export default DownPanel; +export default AddonPanel; diff --git a/lib/ui/src/modules/ui/components/down_panel/index.test.js b/lib/ui/src/modules/ui/components/addon_panel/index.test.js similarity index 78% rename from lib/ui/src/modules/ui/components/down_panel/index.test.js rename to lib/ui/src/modules/ui/components/addon_panel/index.test.js index c8e825689465..82ebc0866043 100644 --- a/lib/ui/src/modules/ui/components/down_panel/index.test.js +++ b/lib/ui/src/modules/ui/components/addon_panel/index.test.js @@ -1,8 +1,8 @@ import React from 'react'; import { shallow } from 'enzyme'; -import DownPanel from './index'; +import AddonPanel from './index'; -describe('manager.ui.components.down_panel.index', () => { +describe('manager.ui.components.addon_panel.index', () => { test('should render only the selected panel with display set other than "none"', () => { const panels = { test1: { @@ -20,7 +20,7 @@ describe('manager.ui.components.down_panel.index', () => { const onPanelSelect = () => 'onPanelSelect'; const wrapper = shallow( - + ); expect(wrapper.find('#test1').parent()).toHaveStyle('display', 'none'); @@ -38,7 +38,7 @@ describe('manager.ui.components.down_panel.index', () => { const onPanelSelect = jest.fn(); const preventDefault = jest.fn(); const wrapper = shallow( - + ); wrapper.find('a').simulate('click', { preventDefault }); @@ -50,7 +50,7 @@ describe('manager.ui.components.down_panel.index', () => { test('should render "no panels available"', () => { const panels = {}; const onPanelSelect = () => 'onPanelSelect'; - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper.contains('no panels available')).toBe(true); }); diff --git a/lib/ui/src/modules/ui/components/down_panel/style.js b/lib/ui/src/modules/ui/components/addon_panel/style.js similarity index 100% rename from lib/ui/src/modules/ui/components/down_panel/style.js rename to lib/ui/src/modules/ui/components/addon_panel/style.js diff --git a/lib/ui/src/modules/ui/components/layout/index.js b/lib/ui/src/modules/ui/components/layout/index.js index 8be499e0965b..22ae8b54b570 100755 --- a/lib/ui/src/modules/ui/components/layout/index.js +++ b/lib/ui/src/modules/ui/components/layout/index.js @@ -11,48 +11,48 @@ const rootStyle = { backgroundColor: '#F7F7F7', }; -const leftPanelStyle = leftPanelOnTop => ({ +const storiesPanelStyle = storiesPanelOnTop => ({ width: '100%', display: 'flex', - flexDirection: leftPanelOnTop ? 'column' : 'row', + flexDirection: storiesPanelOnTop ? 'column' : 'row', alignItems: 'stretch', - paddingRight: leftPanelOnTop ? 10 : 0, + paddingRight: storiesPanelOnTop ? 10 : 0, }); -const downPanelStyle = downPanelInRight => ({ +const addonPanelStyle = addonPanelInRight => ({ display: 'flex', - flexDirection: downPanelInRight ? 'row' : 'column', + flexDirection: addonPanelInRight ? 'row' : 'column', alignItems: 'stretch', position: 'absolute', width: '100%', height: '100%', - padding: downPanelInRight ? '5px 10px 10px 0' : '0px 10px 10px 0', + padding: addonPanelInRight ? '5px 10px 10px 0' : '0px 10px 10px 0', boxSizing: 'border-box', }); const resizerCursor = isVert => (isVert ? 'col-resize' : 'row-resize'); -const storiesResizerStyle = (showLeftPanel, leftPanelOnTop) => ({ - cursor: showLeftPanel ? resizerCursor(!leftPanelOnTop) : undefined, - height: leftPanelOnTop ? 10 : 'auto', - width: leftPanelOnTop ? '100%' : 10, +const storiesResizerStyle = (showStoriesPanel, storiesPanelOnTop) => ({ + cursor: showStoriesPanel ? resizerCursor(!storiesPanelOnTop) : undefined, + height: storiesPanelOnTop ? 10 : 'auto', + width: storiesPanelOnTop ? '100%' : 10, zIndex: 1, }); -const addonResizerStyle = (showDownPanel, downPanelInRight) => ({ - cursor: showDownPanel ? resizerCursor(downPanelInRight) : undefined, - height: downPanelInRight ? '100%' : 10, - width: downPanelInRight ? 10 : '100%', +const addonResizerStyle = (showAddonPanel, addonPanelInRight) => ({ + cursor: showAddonPanel ? resizerCursor(addonPanelInRight) : undefined, + height: addonPanelInRight ? '100%' : 10, + width: addonPanelInRight ? 10 : '100%', zIndex: 1, }); -const contentPanelStyle = (downPanelInRight, leftPanelOnTop) => ({ +const contentPanelStyle = (addonPanelInRight, storiesPanelOnTop) => ({ position: 'absolute', boxSizing: 'border-box', width: '100%', height: '100%', - padding: downPanelInRight ? '10px 2px 10px 0' : '10px 10px 2px 0', - paddingTop: leftPanelOnTop ? 0 : 10, + padding: addonPanelInRight ? '10px 2px 10px 0' : '10px 10px 2px 0', + paddingTop: storiesPanelOnTop ? 0 : 10, }); const normalPreviewStyle = { @@ -161,16 +161,16 @@ class Layout extends React.Component { render() { const { goFullScreen, - showLeftPanel, - showDownPanel, - downPanelInRight, - downPanel, - leftPanel, + showStoriesPanel, + showAddonPanel, + addonPanelInRight, + addonPanel, + storiesPanel, preview, } = this.props; const { previewPanelDimensions } = this.state; - const leftPanelOnTop = false; + const storiesPanelOnTop = false; let previewStyle = normalPreviewStyle; @@ -180,32 +180,36 @@ class Layout extends React.Component { const sizes = getSavedSizes(this.layerSizes); - const leftPanelDefaultSize = !leftPanelOnTop ? sizes.storiesPanel.left : sizes.storiesPanel.top; - const downPanelDefaultSize = !downPanelInRight ? sizes.addonPanel.down : sizes.addonPanel.right; + const storiesPanelDefaultSize = !storiesPanelOnTop + ? sizes.storiesPanel.left + : sizes.storiesPanel.top; + const addonPanelDefaultSize = !addonPanelInRight + ? sizes.addonPanel.down + : sizes.addonPanel.right; - const addonSplit = downPanelInRight ? 'vertical' : 'horizontal'; - const storiesSplit = leftPanelOnTop ? 'horizontal' : 'vertical'; + const addonSplit = addonPanelInRight ? 'vertical' : 'horizontal'; + const storiesSplit = storiesPanelOnTop ? 'horizontal' : 'vertical'; return (
{conditionalRender( - showLeftPanel, + showStoriesPanel, () => -
+
- {leftPanel()} + {storiesPanel()}
, @@ -214,18 +218,18 @@ class Layout extends React.Component { -
+
{ @@ -237,11 +241,11 @@ class Layout extends React.Component {
{conditionalRender( - showDownPanel, + showAddonPanel, () => -
+
- {downPanel()} + {addonPanel()}
, () => )} @@ -253,13 +257,13 @@ class Layout extends React.Component { } Layout.propTypes = { - showLeftPanel: PropTypes.bool.isRequired, - showDownPanel: PropTypes.bool.isRequired, + showStoriesPanel: PropTypes.bool.isRequired, + showAddonPanel: PropTypes.bool.isRequired, goFullScreen: PropTypes.bool.isRequired, - leftPanel: PropTypes.func.isRequired, + storiesPanel: PropTypes.func.isRequired, preview: PropTypes.func.isRequired, - downPanel: PropTypes.func.isRequired, - downPanelInRight: PropTypes.bool.isRequired, + addonPanel: PropTypes.func.isRequired, + addonPanelInRight: PropTypes.bool.isRequired, }; export default Layout; diff --git a/lib/ui/src/modules/ui/components/layout/index.test.js b/lib/ui/src/modules/ui/components/layout/index.test.js index 687b08fe5a2b..09811c55d2d3 100755 --- a/lib/ui/src/modules/ui/components/layout/index.test.js +++ b/lib/ui/src/modules/ui/components/layout/index.test.js @@ -7,18 +7,18 @@ describe('manager.ui.components.layout.index', () => { test('should render provided components', () => { const wrap = shallow( 'LeftPanel'} - downPanel={() => 'DownPanel'} + storiesPanel={() => 'StoriesPanel'} + addonPanel={() => 'AddonPanel'} preview={() => 'Preview'} /> ); const markup = wrap.html(); - expect(markup).toMatch(/LeftPanel/); - expect(markup).toMatch(/DownPanel/); + expect(markup).toMatch(/StoriesPanel/); + expect(markup).toMatch(/AddonPanel/); expect(markup).toMatch(/Preview/); }); }); @@ -28,55 +28,55 @@ describe('manager.ui.components.layout.index', () => { const wrap = shallow( 'LeftPanel'} - downPanel={() => 'DownPanel'} + storiesPanel={() => 'StoriesPanel'} + addonPanel={() => 'AddonPanel'} preview={() => 'Preview'} /> ); const markup = wrap.html(); - expect(markup).not.toMatch(/LeftPanel/); - expect(markup).not.toMatch(/DownPanel/); + expect(markup).not.toMatch(/StoriesPanel/); + expect(markup).not.toMatch(/AddonPanel/); expect(markup).toMatch(/Preview/); }); }); - describe('with showLeftPanel=false', () => { - test('should hide the leftPanel', () => { + describe('with showStoriesPanel=false', () => { + test('should hide the storiesPanel', () => { const wrap = shallow( 'LeftPanel'} - downPanel={() => 'DownPanel'} + storiesPanel={() => 'StoriesPanel'} + addonPanel={() => 'AddonPanel'} preview={() => 'Preview'} /> ); const markup = wrap.html(); - expect(markup).not.toMatch(/LeftPanel/); - expect(markup).toMatch(/DownPanel/); + expect(markup).not.toMatch(/StoriesPanel/); + expect(markup).toMatch(/AddonPanel/); expect(markup).toMatch(/Preview/); }); }); - describe('with showDownPanel=false', () => { - test('should hide the downPanel', () => { + describe('with showAddonPanel=false', () => { + test('should hide the addonPanel', () => { const wrap = shallow( 'LeftPanel'} - downPanel={() => 'DownPanel'} + storiesPanel={() => 'StoriesPanel'} + addonPanel={() => 'AddonPanel'} preview={() => 'Preview'} /> ); const markup = wrap.html(); - expect(markup).toMatch(/LeftPanel/); - expect(markup).not.toMatch(/DownPanel/); + expect(markup).toMatch(/StoriesPanel/); + expect(markup).not.toMatch(/AddonPanel/); expect(markup).toMatch(/Preview/); }); }); diff --git a/lib/ui/src/modules/ui/components/shortcuts_help.js b/lib/ui/src/modules/ui/components/shortcuts_help.js index 9fb87a273c4c..fa3407d31d66 100755 --- a/lib/ui/src/modules/ui/components/shortcuts_help.js +++ b/lib/ui/src/modules/ui/components/shortcuts_help.js @@ -40,10 +40,10 @@ export function getShortcuts(platform) { if (platform && platform.indexOf('mac') !== -1) { return [ { name: 'Show Search Box', keys: ['⌘ ⇧ P', 'βŒƒ ⇧ P'] }, - { name: 'Toggle Action Logger position', keys: ['⌘ ⇧ J', 'βŒƒ ⇧ J'] }, + { name: 'Toggle Addon panel position', keys: ['⌘ ⇧ J', 'βŒƒ ⇧ J'] }, { name: 'Toggle Fullscreen Mode', keys: ['⌘ ⇧ F', 'βŒƒ ⇧ F'] }, - { name: 'Toggle Left Panel', keys: ['⌘ ⇧ L', 'βŒƒ ⇧ L'] }, - { name: 'Toggle Down Panel', keys: ['⌘ ⇧ D', 'βŒƒ ⇧ D'] }, + { name: 'Toggle Stories Panel', keys: ['⌘ ⇧ L', 'βŒƒ ⇧ L'] }, + { name: 'Toggle Addon panel', keys: ['⌘ ⇧ D', 'βŒƒ ⇧ D'] }, { name: 'Next Story', keys: ['⌘ ⇧ β†’', 'βŒƒ ⇧ β†’'] }, { name: 'Previous Story', keys: ['⌘ ⇧ ←', 'βŒƒ ⇧ ←'] }, ]; @@ -51,10 +51,10 @@ export function getShortcuts(platform) { return [ { name: 'Show Search Box', keys: ['Ctrl + Shift + P'] }, - { name: 'Toggle Action Logger position', keys: ['Ctrl + Shift + J'] }, + { name: 'Toggle Addon panel position', keys: ['Ctrl + Shift + J'] }, { name: 'Toggle Fullscreen Mode', keys: ['Ctrl + Shift + F'] }, - { name: 'Toggle Left Panel', keys: ['Ctrl + Shift + L'] }, - { name: 'Toggle Down Panel', keys: ['Ctrl + Shift + D'] }, + { name: 'Toggle Stories Panel', keys: ['Ctrl + Shift + L'] }, + { name: 'Toggle Addon panel', keys: ['Ctrl + Shift + D'] }, { name: 'Next Story', keys: ['Ctrl + Shift + β†’'] }, { name: 'Previous Story', keys: ['Ctrl + Shift + ←'] }, ]; diff --git a/lib/ui/src/modules/ui/components/left_panel/header.js b/lib/ui/src/modules/ui/components/stories_panel/header.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/header.js rename to lib/ui/src/modules/ui/components/stories_panel/header.js diff --git a/lib/ui/src/modules/ui/components/left_panel/header.test.js b/lib/ui/src/modules/ui/components/stories_panel/header.test.js similarity index 86% rename from lib/ui/src/modules/ui/components/left_panel/header.test.js rename to lib/ui/src/modules/ui/components/stories_panel/header.test.js index 9d65d36d6c5f..e353296e32c8 100755 --- a/lib/ui/src/modules/ui/components/left_panel/header.test.js +++ b/lib/ui/src/modules/ui/components/stories_panel/header.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import Header from './header'; -describe('manager.ui.components.left_panel.header', () => { +describe('manager.ui.components.stories_panel.header', () => { test('should fire openShortcutsHelp when clicked on shortcut button', () => { const openShortcutsHelp = jest.fn(); const wrap = shallow(
); diff --git a/lib/ui/src/modules/ui/components/left_panel/index.js b/lib/ui/src/modules/ui/components/stories_panel/index.js similarity index 93% rename from lib/ui/src/modules/ui/components/left_panel/index.js rename to lib/ui/src/modules/ui/components/stories_panel/index.js index e38994898a9c..57ae6ab563da 100755 --- a/lib/ui/src/modules/ui/components/left_panel/index.js +++ b/lib/ui/src/modules/ui/components/stories_panel/index.js @@ -30,7 +30,7 @@ function hierarchyContainsStories(storiesHierarchy) { } // eslint-disable-next-line react/prefer-stateless-function -class LeftPanel extends Component { +class StoriesPanel extends Component { render() { const { name, @@ -59,7 +59,7 @@ class LeftPanel extends Component { } } -LeftPanel.defaultProps = { +StoriesPanel.defaultProps = { storiesHierarchy: null, storyFilter: null, onStoryFilter: () => {}, @@ -68,7 +68,7 @@ LeftPanel.defaultProps = { url: '', }; -LeftPanel.propTypes = { +StoriesPanel.propTypes = { storiesHierarchy: PropTypes.shape({ namespaces: PropTypes.arrayOf(PropTypes.string), name: PropTypes.string, @@ -82,4 +82,4 @@ LeftPanel.propTypes = { url: PropTypes.string, }; -export default LeftPanel; +export default StoriesPanel; diff --git a/lib/ui/src/modules/ui/components/left_panel/index.test.js b/lib/ui/src/modules/ui/components/stories_panel/index.test.js similarity index 82% rename from lib/ui/src/modules/ui/components/left_panel/index.test.js rename to lib/ui/src/modules/ui/components/stories_panel/index.test.js index 03c3e2da6aae..0f91f76e8109 100755 --- a/lib/ui/src/modules/ui/components/left_panel/index.test.js +++ b/lib/ui/src/modules/ui/components/stories_panel/index.test.js @@ -1,17 +1,17 @@ import React from 'react'; import { shallow } from 'enzyme'; -import LeftPanel from './index'; +import StoriesPanel from './index'; import Header from './header'; import TextFilter from './text_filter'; import Stories from './stories_tree'; import { createHierarchy } from '../../libs/hierarchy'; -describe('manager.ui.components.left_panel.index', () => { +describe('manager.ui.components.stories_panel.index', () => { test('should render Header and TextFilter by default', () => { const openShortcutsHelp = jest.fn(); const storyFilter = 'xxxxx'; const wrap = shallow( - + ); const header = wrap.find(Header).first(); @@ -28,7 +28,7 @@ describe('manager.ui.components.left_panel.index', () => { const selectedStory = 'bb'; const storiesHierarchy = createHierarchy([{ kind: 'kk', stories: ['bb'] }]); const wrap = shallow( - { test('should not render stories if storiesHierarchy exists but is empty', () => { const storiesHierarchy = createHierarchy([]); - const wrap = shallow(); + const wrap = shallow(); expect(wrap.find(Stories).exists()).toBe(false); }); @@ -54,7 +54,7 @@ describe('manager.ui.components.left_panel.index', () => { describe('onStoryFilter prop', () => { test('should set filter as an empty text on TextFilter.onClear', () => { const onStoryFilter = jest.fn(); - const wrap = shallow(); + const wrap = shallow(); const textFilter = wrap.find(TextFilter).first(); textFilter.props().onClear(); @@ -65,7 +65,7 @@ describe('manager.ui.components.left_panel.index', () => { test('should set filter as the given text of TextFilter.onChange', () => { const onStoryFilter = jest.fn(); const filterText = 'XXX'; - const wrap = shallow(); + const wrap = shallow(); const textFilter = wrap.find(TextFilter).first(); textFilter.props().onChange(filterText); diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/index.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/index.js diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/index.test.js similarity index 99% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/index.test.js index 708fdcc8d183..ae8a22c3f1dd 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js +++ b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/index.test.js @@ -6,7 +6,7 @@ import { createHierarchy } from '../../../libs/hierarchy'; const leftClick = { button: 0 }; -describe('manager.ui.components.left_panel.stories', () => { +describe('manager.ui.components.stories_panel.stories', () => { beforeEach(() => setContext({ clientStore: { diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators.js diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_node_type.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_node_type.js diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_style.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_style.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_style.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_style.js diff --git a/lib/ui/src/modules/ui/components/left_panel/text_filter.js b/lib/ui/src/modules/ui/components/stories_panel/text_filter.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/text_filter.js rename to lib/ui/src/modules/ui/components/stories_panel/text_filter.js diff --git a/lib/ui/src/modules/ui/components/left_panel/text_filter.test.js b/lib/ui/src/modules/ui/components/stories_panel/text_filter.test.js similarity index 95% rename from lib/ui/src/modules/ui/components/left_panel/text_filter.test.js rename to lib/ui/src/modules/ui/components/stories_panel/text_filter.test.js index 184415db2471..24f704a35d5e 100755 --- a/lib/ui/src/modules/ui/components/left_panel/text_filter.test.js +++ b/lib/ui/src/modules/ui/components/stories_panel/text_filter.test.js @@ -4,7 +4,7 @@ import TextFilter from './text_filter'; jest.mock('lodash.debounce', () => jest.fn(fn => fn)); -describe('manager.ui.components.left_panel.test_filter', () => { +describe('manager.ui.components.stories_panel.test_filter', () => { describe('render', () => { test('should render input without filterText', () => { const wrap = shallow(); diff --git a/lib/ui/src/modules/ui/configs/handle_routing.js b/lib/ui/src/modules/ui/configs/handle_routing.js index 1ca89a8a021e..3727b3ec8bb5 100755 --- a/lib/ui/src/modules/ui/configs/handle_routing.js +++ b/lib/ui/src/modules/ui/configs/handle_routing.js @@ -10,22 +10,22 @@ export function getUrlState(data) { const { goFullScreen: full, - showDownPanel: down, - showLeftPanel: left, - downPanelInRight: panelRight, + showAddonPanel: addons, + showStoriesPanel: stories, + addonPanelInRight: panelRight, } = data.shortcutOptions; - const { selectedAddonPanel: downPanel } = data; + const { selectedAddonPanel: addonPanel } = data; const urlObj = { ...customQueryParams, selectedKind, selectedStory, full: Number(full), - down: Number(down), - left: Number(left), + addons: Number(addons), + stories: Number(stories), panelRight: Number(panelRight), - downPanel, + addonPanel, }; const url = `?${qs.stringify(urlObj)}`; @@ -33,8 +33,8 @@ export function getUrlState(data) { return { ...urlObj, full, - down, - left, + addons, + stories, panelRight, url, }; @@ -57,9 +57,12 @@ export function updateStore(queryParams, actions) { selectedStory, full = 0, down = 1, + addons = down, left = 1, + stories = left, panelRight = 0, downPanel, + addonPanel = downPanel, ...customQueryParams } = queryParams; @@ -69,13 +72,13 @@ export function updateStore(queryParams, actions) { actions.shortcuts.setOptions({ goFullScreen: Boolean(Number(full)), - showDownPanel: Boolean(Number(down)), - showLeftPanel: Boolean(Number(left)), - downPanelInRight: Boolean(Number(panelRight)), + showAddonPanel: Boolean(Number(addons)), + showStoriesPanel: Boolean(Number(stories)), + addonPanelInRight: Boolean(Number(panelRight)), }); - if (downPanel) { - actions.ui.selectDownPanel(downPanel); + if (addonPanel) { + actions.ui.selectAddonPanel(addonPanel); } actions.api.setQueryParams(customQueryParams); } diff --git a/lib/ui/src/modules/ui/configs/handle_routing.test.js b/lib/ui/src/modules/ui/configs/handle_routing.test.js index aea5bbdd270b..0fafc1df698b 100755 --- a/lib/ui/src/modules/ui/configs/handle_routing.test.js +++ b/lib/ui/src/modules/ui/configs/handle_routing.test.js @@ -19,9 +19,9 @@ describe('manager.ui.config.handle_routing', () => { }, shortcutOptions: { goFullScreen: false, - showDownPanel: true, - showLeftPanel: true, - downPanelInRight: true, + showAddonPanel: true, + showStoriesPanel: true, + addonPanelInRight: true, }, selectedAddonPanel: 'pp', }; @@ -29,17 +29,17 @@ describe('manager.ui.config.handle_routing', () => { getAll: () => state, }; const url = - '?customText=test&selectedKind=kk&selectedStory=ss&full=0&down=1&left=1&panelRight=1&downPanel=pp'; + '?customText=test&selectedKind=kk&selectedStory=ss&full=0&addons=1&stories=1&panelRight=1&addonPanel=pp'; const pushState = { url, selectedKind: 'kk', selectedStory: 'ss', full: false, - down: true, - left: true, + addons: true, + stories: true, panelRight: true, - downPanel: 'pp', + addonPanel: 'pp', customText: 'test', }; const originalPushState = window.history.pushState; @@ -66,11 +66,11 @@ describe('manager.ui.config.handle_routing', () => { setOptions: jest.fn(), }, ui: { - selectDownPanel: jest.fn(), + selectAddonPanel: jest.fn(), }, }; const url = - '?selectedKind=kk&selectedStory=ss&full=1&down=0&left=0&panelRight=0&downPanel=test&customText=teststring'; + '?selectedKind=kk&selectedStory=ss&full=1&addons=0&stories=0&panelRight=0&addonPanel=test&customText=teststring'; const location = { search: url, @@ -80,17 +80,48 @@ describe('manager.ui.config.handle_routing', () => { expect(actions.api.selectStory).toHaveBeenCalled(); expect(actions.shortcuts.setOptions).toHaveBeenCalled(); - expect(actions.ui.selectDownPanel).toHaveBeenCalled(); + expect(actions.ui.selectAddonPanel).toHaveBeenCalled(); expect(actions.shortcuts.setOptions).toHaveBeenCalledWith({ goFullScreen: true, - showDownPanel: false, - showLeftPanel: false, - downPanelInRight: false, + showAddonPanel: false, + showStoriesPanel: false, + addonPanelInRight: false, }); - expect(actions.ui.selectDownPanel).toHaveBeenCalledWith('test'); + expect(actions.ui.selectAddonPanel).toHaveBeenCalledWith('test'); expect(actions.api.setQueryParams).toHaveBeenCalledWith({ customText: 'teststring', }); }); + + test('should handle URLs with outdated param names', () => { + const actions = { + api: { + selectStory: jest.fn(), + setQueryParams: jest.fn(), + }, + shortcuts: { + setOptions: jest.fn(), + }, + ui: { + selectAddonPanel: jest.fn(), + }, + }; + const url = '?down=0&left=0&downPanel=test'; + + const location = { + search: url, + }; + window.location.search = url; + handleInitialUrl(actions, location); + + expect(actions.shortcuts.setOptions).toHaveBeenCalled(); + expect(actions.shortcuts.setOptions).toHaveBeenCalledWith({ + goFullScreen: false, + showAddonPanel: false, + showStoriesPanel: false, + addonPanelInRight: false, + }); + expect(actions.ui.selectAddonPanel).toHaveBeenCalledWith('test'); + }); }); }); diff --git a/lib/ui/src/modules/ui/configs/init_panels.js b/lib/ui/src/modules/ui/configs/init_panels.js index ba898142da96..b1f7b58a23af 100644 --- a/lib/ui/src/modules/ui/configs/init_panels.js +++ b/lib/ui/src/modules/ui/configs/init_panels.js @@ -2,6 +2,6 @@ export default function({ provider }, actionMap) { const panels = Object.keys(provider.getPanels()); if (panels.length > 0) { - actionMap.ui.selectDownPanel(panels[0]); + actionMap.ui.selectAddonPanel(panels[0]); } } diff --git a/lib/ui/src/modules/ui/configs/init_panels.test.js b/lib/ui/src/modules/ui/configs/init_panels.test.js index c8bbce25711f..8c9040a507d1 100644 --- a/lib/ui/src/modules/ui/configs/init_panels.test.js +++ b/lib/ui/src/modules/ui/configs/init_panels.test.js @@ -1,10 +1,10 @@ import initPanels from './init_panels'; describe('manager.ui.config.init_panels', () => { - test('should call the selectDownPanel with first panel name', () => { + test('should call the selectAddonPanel with first panel name', () => { const actions = { ui: { - selectDownPanel: jest.fn(), + selectAddonPanel: jest.fn(), }, }; @@ -20,6 +20,6 @@ describe('manager.ui.config.init_panels', () => { initPanels({ provider }, actions); - expect(actions.ui.selectDownPanel).toHaveBeenCalledWith('test1'); + expect(actions.ui.selectAddonPanel).toHaveBeenCalledWith('test1'); }); }); diff --git a/lib/ui/src/modules/ui/containers/down_panel.js b/lib/ui/src/modules/ui/containers/addon_panel.js similarity index 67% rename from lib/ui/src/modules/ui/containers/down_panel.js rename to lib/ui/src/modules/ui/containers/addon_panel.js index d356dc69c149..7aef41f17422 100644 --- a/lib/ui/src/modules/ui/containers/down_panel.js +++ b/lib/ui/src/modules/ui/containers/addon_panel.js @@ -1,4 +1,4 @@ -import DownPanel from '../components/down_panel'; +import AddonPanel from '../components/addon_panel'; import genPoddaLoader from '../libs/gen_podda_loader'; import compose from '../../../compose'; @@ -10,8 +10,8 @@ export function mapper(state, props, { context, actions }) { return { panels, selectedPanel, - onPanelSelect: actionMap.ui.selectDownPanel, + onPanelSelect: actionMap.ui.selectAddonPanel, }; } -export default compose(genPoddaLoader(mapper))(DownPanel); +export default compose(genPoddaLoader(mapper))(AddonPanel); diff --git a/lib/ui/src/modules/ui/containers/down_panel.test.js b/lib/ui/src/modules/ui/containers/addon_panel.test.js similarity index 72% rename from lib/ui/src/modules/ui/containers/down_panel.test.js rename to lib/ui/src/modules/ui/containers/addon_panel.test.js index fb534adca717..4fb0a31133a4 100644 --- a/lib/ui/src/modules/ui/containers/down_panel.test.js +++ b/lib/ui/src/modules/ui/containers/addon_panel.test.js @@ -1,13 +1,13 @@ -import { mapper } from './down_panel'; +import { mapper } from './addon_panel'; -describe('manager.ui.containers.down_panel', () => { +describe('manager.ui.containers.addon_panel', () => { describe('mapper', () => { test('should give correct data', () => { const state = { selectedAddonPanel: 'sdp', }; - const selectDownPanel = () => 'selectDownPanel'; + const selectAddonPanel = () => 'selectAddonPanel'; const panels = { test1: {}, test2: {}, @@ -19,7 +19,7 @@ describe('manager.ui.containers.down_panel', () => { const env = { actions: () => ({ ui: { - selectDownPanel, + selectAddonPanel, }, }), context: () => ({ @@ -33,7 +33,7 @@ describe('manager.ui.containers.down_panel', () => { expect(result.panels).toEqual(panels); expect(result.selectedPanel).toEqual('sdp'); - expect(result.onPanelSelect).toBe(selectDownPanel); + expect(result.onPanelSelect).toBe(selectAddonPanel); }); }); }); diff --git a/lib/ui/src/modules/ui/containers/layout.js b/lib/ui/src/modules/ui/containers/layout.js index 2abed63b41d1..cb89879735ea 100755 --- a/lib/ui/src/modules/ui/containers/layout.js +++ b/lib/ui/src/modules/ui/containers/layout.js @@ -4,6 +4,6 @@ import genPoddaLoader from '../libs/gen_podda_loader'; import compose from '../../../compose'; export const mapper = ({ shortcutOptions }) => - pick(shortcutOptions, 'showLeftPanel', 'showDownPanel', 'goFullScreen', 'downPanelInRight'); + pick(shortcutOptions, 'showStoriesPanel', 'showAddonPanel', 'goFullScreen', 'addonPanelInRight'); export default compose(genPoddaLoader(mapper))(Layout); diff --git a/lib/ui/src/modules/ui/containers/layout.test.js b/lib/ui/src/modules/ui/containers/layout.test.js index b837078d660d..2aabf74f37d4 100755 --- a/lib/ui/src/modules/ui/containers/layout.test.js +++ b/lib/ui/src/modules/ui/containers/layout.test.js @@ -5,8 +5,8 @@ describe('manager.ui.containers.layout', () => { test('should give correct data', () => { const state = { shortcutOptions: { - showLeftPanel: 'aa', - showDownPanel: 'bb', + showStoriesPanel: 'aa', + showAddonPanel: 'bb', goFullScreen: 'cc', }, }; diff --git a/lib/ui/src/modules/ui/containers/left_panel.js b/lib/ui/src/modules/ui/containers/stories_panel.js similarity index 90% rename from lib/ui/src/modules/ui/containers/left_panel.js rename to lib/ui/src/modules/ui/containers/stories_panel.js index 43188d6378a7..23e49b27cda8 100755 --- a/lib/ui/src/modules/ui/containers/left_panel.js +++ b/lib/ui/src/modules/ui/containers/stories_panel.js @@ -1,4 +1,4 @@ -import LeftPanel from '../components/left_panel'; +import StoriesPanel from '../components/stories_panel'; import * as filters from '../libs/filters'; import genPoddaLoader from '../libs/gen_podda_loader'; import compose from '../../../compose'; @@ -38,4 +38,4 @@ export const mapper = (state, props, { actions }) => { return data; }; -export default compose(genPoddaLoader(mapper))(LeftPanel); +export default compose(genPoddaLoader(mapper))(StoriesPanel); diff --git a/lib/ui/src/modules/ui/containers/left_panel.test.js b/lib/ui/src/modules/ui/containers/stories_panel.test.js similarity index 97% rename from lib/ui/src/modules/ui/containers/left_panel.test.js rename to lib/ui/src/modules/ui/containers/stories_panel.test.js index 8896e6ed983c..bc80a8257692 100755 --- a/lib/ui/src/modules/ui/containers/left_panel.test.js +++ b/lib/ui/src/modules/ui/containers/stories_panel.test.js @@ -1,6 +1,6 @@ -import { mapper } from './left_panel'; +import { mapper } from './stories_panel'; -describe('manager.ui.containers.left_panel', () => { +describe('manager.ui.containers.stories_panel', () => { describe('mapper', () => { test('should give correct data', () => { const stories = [{ kind: 'sk', stories: ['dd'] }]; diff --git a/lib/ui/src/modules/ui/routes.js b/lib/ui/src/modules/ui/routes.js index a59f7f7712ba..98c536c633fc 100755 --- a/lib/ui/src/modules/ui/routes.js +++ b/lib/ui/src/modules/ui/routes.js @@ -1,8 +1,8 @@ import React from 'react'; import ReactDOM from 'react-dom'; import Layout from './containers/layout'; -import LeftPanel from './containers/left_panel'; -import DownPanel from './containers/down_panel'; +import StoriesPanel from './containers/stories_panel'; +import AddonPanel from './containers/addon_panel'; import ShortcutsHelp from './containers/shortcuts_help'; import SearchBox from './containers/search_box'; @@ -17,9 +17,9 @@ export default function(injectDeps, { clientStore, provider, domNode }) { const root = (
} + storiesPanel={() => } preview={() => } - downPanel={() => } + addonPanel={() => } /> From 2233afd1aedfc2bd9837d0afb63ef098f730b1e7 Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 06:42:39 +0300 Subject: [PATCH 019/107] Produce warning only in development --- lib/ui/src/modules/shortcuts/actions/shortcuts.js | 8 +++++--- lib/ui/src/modules/shortcuts/actions/shortcuts.test.js | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ui/src/modules/shortcuts/actions/shortcuts.js b/lib/ui/src/modules/shortcuts/actions/shortcuts.js index 71b9eaad575b..3c25b5e83412 100755 --- a/lib/ui/src/modules/shortcuts/actions/shortcuts.js +++ b/lib/ui/src/modules/shortcuts/actions/shortcuts.js @@ -3,7 +3,7 @@ import { features } from '../../../libs/key_events'; import apiActions from '../../api/actions'; const deprecationMessage = (oldName, newName) => - `The ${oldName} prop is renamed to ${newName} and will not be available since the next major Storybook release. Please update your config.`; + `The ${oldName} option has been renamed to ${newName} and will not be available in the next major Storybook release. Please update your config.`; export function keyEventToOptions(currentOptions, event) { switch (event) { @@ -64,8 +64,10 @@ export default { const newName = renamedOptions[oldName]; if (oldName in options && !(newName in options)) { - // eslint-disable-next-line no-console - console.warn(deprecationMessage(oldName, newName)); + if (process.env.NODE_ENV !== 'production') { + // eslint-disable-next-line no-console + console.warn(deprecationMessage(oldName, newName)); + } return { ...acc, diff --git a/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js b/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js index 09a0b42c7b44..459a7e05860d 100644 --- a/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js +++ b/lib/ui/src/modules/shortcuts/actions/shortcuts.test.js @@ -38,7 +38,7 @@ describe('manager.shortcuts.actions.shortcuts', () => { test('should warn about deprecated option names', () => { const clientStore = new MockClientStore(); - const spy = jest.spyOn(global.console, 'warn'); + const spy = jest.spyOn(console, 'warn'); actions.setOptions( { clientStore }, { From 1ad0decfb7b10ef8303d1daa19cff5d3f1550916 Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 13:18:19 +0300 Subject: [PATCH 020/107] String literals in features enum --- lib/ui/src/libs/key_events.js | 20 +++++++++---------- .../modules/shortcuts/actions/shortcuts.js | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/ui/src/libs/key_events.js b/lib/ui/src/libs/key_events.js index bd54cf090692..c1cd9765b67d 100755 --- a/lib/ui/src/libs/key_events.js +++ b/lib/ui/src/libs/key_events.js @@ -1,15 +1,15 @@ import keycode from 'keycode'; export const features = { - FULLSCREEN: 1, - ADDON_PANEL: 2, - NAVIGATION_PANEL: 3, - SHORTCUTS_HELP: 4, - ESCAPE: 5, - NEXT_STORY: 6, - PREV_STORY: 7, - SHOW_SEARCH: 8, - ADDON_PANEL_IN_RIGHT: 9, + FULLSCREEN: 'FULLSCREEN', + ADDON_PANEL: 'ADDON_PANEL', + STORIES_PANEL: 'STORIES_PANEL', + SHORTCUTS_HELP: 'SHORTCUTS_HELP', + ESCAPE: 'ESCAPE', + NEXT_STORY: 'NEXT_STORY', + PREV_STORY: 'PREV_STORY', + SHOW_SEARCH: 'SHOW_SEARCH', + ADDON_PANEL_IN_RIGHT: 'ADDON_PANEL_IN_RIGHT', }; export function isModifierPressed(e) { @@ -45,7 +45,7 @@ export default function handle(e) { return features.ADDON_PANEL; case keycode('L'): e.preventDefault(); - return features.NAVIGATION_PANEL; + return features.STORIES_PANEL; case keycode('right'): e.preventDefault(); return features.NEXT_STORY; diff --git a/lib/ui/src/modules/shortcuts/actions/shortcuts.js b/lib/ui/src/modules/shortcuts/actions/shortcuts.js index 3c25b5e83412..1920b154e013 100755 --- a/lib/ui/src/modules/shortcuts/actions/shortcuts.js +++ b/lib/ui/src/modules/shortcuts/actions/shortcuts.js @@ -11,7 +11,7 @@ export function keyEventToOptions(currentOptions, event) { return { goFullScreen: !currentOptions.goFullScreen }; case features.ADDON_PANEL: return { showAddonPanel: !currentOptions.showAddonPanel }; - case features.NAVIGATION_PANEL: + case features.STORIES_PANEL: return { showStoriesPanel: !currentOptions.showStoriesPanel }; case features.SHOW_SEARCH: return { showSearchBox: true }; From 30b02e78989e84242774e976af98d0c9ee3c5055 Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 14:40:18 +0300 Subject: [PATCH 021/107] merge master --- .../stories_tree/tree_decorators_utils.js | 0 .../stories_tree/tree_decorators_utils.test.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/tree_decorators_utils.js (100%) rename lib/ui/src/modules/ui/components/{left_panel => stories_panel}/stories_tree/tree_decorators_utils.test.js (92%) diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators_utils.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators_utils.js similarity index 100% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators_utils.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators_utils.js diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators_utils.test.js b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators_utils.test.js similarity index 92% rename from lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators_utils.test.js rename to lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators_utils.test.js index 1de23bb03820..1688a1867d6f 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators_utils.test.js +++ b/lib/ui/src/modules/ui/components/stories_panel/stories_tree/tree_decorators_utils.test.js @@ -1,7 +1,7 @@ import { shallow } from 'enzyme'; import { highlightNode } from './tree_decorators_utils'; -describe('manager.ui.components.left_panel.tree_decorators_utils.test', () => { +describe('manager.ui.components.stories_panel.tree_decorators_utils.test', () => { describe('highlightNode', () => { test('should return name when there no highlighting matches', () => { const node = { From 0ba8c641444732afedab2f45d7b8aae9a5582cba Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 20:45:37 +0300 Subject: [PATCH 022/107] Search box: make found options selectable with click --- lib/ui/package.json | 2 +- lib/ui/src/modules/ui/components/search_box.js | 13 ++++++++++--- .../src/modules/ui/components/search_box.test.js | 14 +++++++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/ui/package.json b/lib/ui/package.json index 9c82f46b0a7f..ed7ce92a22f8 100644 --- a/lib/ui/package.json +++ b/lib/ui/package.json @@ -14,7 +14,6 @@ "storybook": "start-storybook -p 9010" }, "dependencies": { - "@storybook/react-fuzzy": "^0.4.0", "@storybook/components": "^3.2.4", "babel-runtime": "^6.23.0", "deep-equal": "^1.0.1", @@ -30,6 +29,7 @@ "podda": "^1.2.2", "prop-types": "^15.5.10", "qs": "^6.4.0", + "react-fuzzy": "^0.4.1", "react-icons": "^2.2.5", "react-inspector": "^2.1.1", "react-komposer": "^2.0.0", diff --git a/lib/ui/src/modules/ui/components/search_box.js b/lib/ui/src/modules/ui/components/search_box.js index 657618b55658..2a50d80769b4 100644 --- a/lib/ui/src/modules/ui/components/search_box.js +++ b/lib/ui/src/modules/ui/components/search_box.js @@ -2,7 +2,7 @@ import { document } from 'global'; import PropTypes from 'prop-types'; import React from 'react'; import ReactModal from 'react-modal'; -import FuzzySearch from '@storybook/react-fuzzy'; +import FuzzySearch from 'react-fuzzy'; import { baseFonts } from '@storybook/components'; @@ -48,11 +48,18 @@ const formatStories = stories => { return formattedStories; }; -const suggestionTemplate = (props, state, styles) => +const suggestionTemplate = (props, state, styles, clickHandler) => state.results.map((val, i) => { const style = state.selectedIndex === i ? styles.selectedResultStyle : styles.resultsStyle; return ( -
+ // eslint-disable-next-line jsx-a11y/interactive-supports-focus +
clickHandler(i)} + > {val.value} {val.type === 'story' ? `in ${val.kind}` : 'Kind'} diff --git a/lib/ui/src/modules/ui/components/search_box.test.js b/lib/ui/src/modules/ui/components/search_box.test.js index 97915daedb91..624725a5148f 100644 --- a/lib/ui/src/modules/ui/components/search_box.test.js +++ b/lib/ui/src/modules/ui/components/search_box.test.js @@ -1,4 +1,4 @@ -import { shallow } from 'enzyme'; +import { shallow, mount } from 'enzyme'; import React from 'react'; import ReactModal from 'react-modal'; import FuzzySearch from '@storybook/react-fuzzy'; @@ -95,5 +95,17 @@ describe('manager.ui.components.search_box', () => { expect(onSelectStory).toHaveBeenCalledWith('b', 'a'); expect(onClose).toHaveBeenCalled(); }); + + test('should handle selecting a story with click', () => { + const onSelectStory = jest.fn(); + const onClose = jest.fn(); + const wrap = mount(); + + const option = wrap.findWhere(el => el.key() === 'a'); + option.simulate('click'); + + expect(onSelectStory).toHaveBeenCalledWith('b', 'a'); + expect(onClose).toHaveBeenCalled(); + }); }); }); From bd176f780ec9e113a4468f01ddd410250164164d Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 20 Aug 2017 20:59:54 +0300 Subject: [PATCH 023/107] Fix test --- .../modules/ui/components/search_box.test.js | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/ui/src/modules/ui/components/search_box.test.js b/lib/ui/src/modules/ui/components/search_box.test.js index 624725a5148f..9d54bf57a765 100644 --- a/lib/ui/src/modules/ui/components/search_box.test.js +++ b/lib/ui/src/modules/ui/components/search_box.test.js @@ -1,7 +1,7 @@ -import { shallow, mount } from 'enzyme'; +import { shallow } from 'enzyme'; import React from 'react'; import ReactModal from 'react-modal'; -import FuzzySearch from '@storybook/react-fuzzy'; +import FuzzySearch from 'react-fuzzy'; import SearchBox from './search_box'; @@ -97,14 +97,27 @@ describe('manager.ui.components.search_box', () => { }); test('should handle selecting a story with click', () => { + const stories = [ + { + kind: 'a', + stories: ['b', 'c'], + }, + ]; const onSelectStory = jest.fn(); const onClose = jest.fn(); - const wrap = mount(); + const wrap = shallow( + + ); + + const modal = wrap.find(FuzzySearch).dive(); + modal.find('input').simulate('change', { + target: { value: 'b' }, + }); - const option = wrap.findWhere(el => el.key() === 'a'); + const option = modal.findWhere(el => el.key() === 'b'); option.simulate('click'); - expect(onSelectStory).toHaveBeenCalledWith('b', 'a'); + expect(onSelectStory).toHaveBeenCalledWith('a', 'b'); expect(onClose).toHaveBeenCalled(); }); }); From 063ccfd71326e431c608d8b9712b8d97a76ff3b8 Mon Sep 17 00:00:00 2001 From: hypnos Date: Mon, 21 Aug 2017 23:28:29 +0300 Subject: [PATCH 024/107] Knobs: allow arrays in object knob proptypes --- addons/knobs/README.md | 4 ++-- addons/knobs/src/components/types/Object.js | 2 +- .../src/__snapshots__/storyshots.test.js.snap | 19 ++++++++++++++++++ .../cra-kitchen-sink/src/stories/index.js | 20 +++++++++++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/addons/knobs/README.md b/addons/knobs/README.md index 4f2a69ccceef..583411c30ce1 100644 --- a/addons/knobs/README.md +++ b/addons/knobs/README.md @@ -157,7 +157,7 @@ const value = color(label, defaultValue); ### object -Allows you to get a JSON object from the user. +Allows you to get a JSON object or array from the user. ```js import { object } from '@storybook/addon-knobs'; @@ -174,7 +174,7 @@ const value = object(label, defaultValue); ### array -Allows you to get an array from the user. +Allows you to get an array of strings from the user. ```js import { array } from '@storybook/addon-knobs'; diff --git a/addons/knobs/src/components/types/Object.js b/addons/knobs/src/components/types/Object.js index 84084144b492..f97eac2b44b8 100644 --- a/addons/knobs/src/components/types/Object.js +++ b/addons/knobs/src/components/types/Object.js @@ -88,7 +88,7 @@ ObjectType.defaultProps = { ObjectType.propTypes = { knob: PropTypes.shape({ name: PropTypes.string, - value: PropTypes.object, + value: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), }), onChange: PropTypes.func, }; diff --git a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap index 87b857bfac78..4fa131e6af7e 100644 --- a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap +++ b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap @@ -1285,6 +1285,25 @@ exports[`Storyshots Button with knobs 1`] = ` My birthday is: January 20, 2017

+

+ I have + 2 + children: +

+
    +
  1. + Jane + , + 13 + years old +
  2. +
  3. + John + , + 8 + years old +
  4. +

My wallet contains: $ 12.50 diff --git a/examples/cra-kitchen-sink/src/stories/index.js b/examples/cra-kitchen-sink/src/stories/index.js index ada77d629f7c..9c092ec229c2 100644 --- a/examples/cra-kitchen-sink/src/stories/index.js +++ b/examples/cra-kitchen-sink/src/stories/index.js @@ -99,6 +99,16 @@ storiesOf('Button', module) padding: '10px', }); const nice = boolean('Nice', true); + const children = object('Children', [ + { + name: 'Jane', + age: 13, + }, + { + name: 'John', + age: 8, + }, + ]); // NOTE: put this last because it currently breaks everything after it :D const birthday = date('Birthday', new Date('Jan 20 2017')); @@ -116,6 +126,16 @@ storiesOf('Button', module)

My birthday is: {new Date(birthday).toLocaleDateString('en-US', dateOptions)}

+

+ I have {children.length} children: +

+
    + {children.map(child => +
  1. + {child.name}, {child.age} years old +
  2. + )} +

My wallet contains: ${dollars.toFixed(2)}

From a4c51421264f4c3447c3e57bbf9d925070f8e719 Mon Sep 17 00:00:00 2001 From: hypnos Date: Tue, 22 Aug 2017 00:42:06 +0300 Subject: [PATCH 025/107] Stop ignoring yarn.locks --- .gitignore | 1 - CONTRIBUTING.md | 46 +++++++++++----------- README.md | 18 ++++----- docs/README.md | 6 +-- examples/crna-kitchen-sink/package.json | 6 +-- examples/react-native-vanilla/package.json | 4 +- examples/test-cra/package.json | 10 ++--- 7 files changed, 45 insertions(+), 46 deletions(-) diff --git a/.gitignore b/.gitignore index 382b043ede80..8a51e4a07403 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ coverage/ *.lerna_backup build packages/examples/automated-* -yarn.lock /**/LICENSE docs/public packs/*.tgz diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06cdc399d360..73c93802ecc9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,6 +4,8 @@ Thanks for your interest in improving Storybook! We are a community-driven proje Please review this document to help to streamline the process and save everyone's precious time. +This guide assumes you're using `yarn` as package manager. You can use `npm` as well, but it would be less deterministic, as we only commit `yarn.lock` to the repo. + ## Issues No software is bug free. So, if you got an issue, follow these steps: @@ -18,22 +20,22 @@ No software is bug free. So, if you got an issue, follow these steps: ### Testing against `master` -To test your project against the current latest version of storybook, you can clone the repository and link it with `npm`. Try following these steps: +To test your project against the current latest version of storybook, you can clone the repository and link it with `yarn`. Try following these steps: 1. Download the latest version of this project, and build it git clone https://github.com/storybooks/storybook.git cd storybook - npm install - npm run bootstrap + yarn install + yarn run bootstrap 2. Link `storybook` and any other required dependencies cd app/react - npm link + yarn link cd - npm link @storybook/react + yarn link @storybook/react # repeat with whichever other parts of the monorepo you are using. @@ -47,13 +49,11 @@ A good way to do that is using the example `test-cra` app embedded in this repos # Download and build this repository: git clone https://github.com/storybooks/storybook.git cd storybook -npm install -npm run bootstrap - -cd examples/test-cra +yarn install +yarn run bootstrap # make changes to try and reproduce the problem, such as adding components + stories -npm start storybook +yarn start # see if you can see the problem, if so, commit it: git checkout "branch-describing-issue" @@ -67,7 +67,7 @@ git push -u master If you follow that process, you can then link to the github repository in the issue. See for an example. -**NOTE**: If your issue involves a webpack config, create-react-app will prevent you from modifying the _app's_ webpack config, however you can still modify storybook's to mirror your app's version of storybook. Alternatively, use `npm run eject` in the CRA app to get a modifiable webpack config. +**NOTE**: If your issue involves a webpack config, create-react-app will prevent you from modifying the _app's_ webpack config, however you can still modify storybook's to mirror your app's version of storybook. Alternatively, use `yarn run eject` in the CRA app to get a modifiable webpack config. ## Pull Requests (PRs) @@ -78,7 +78,7 @@ We welcome your contributions. There are many ways you can help us. This is few - Work on [API](https://github.com/storybooks/storybook/labels/enhancement%3A%20api), [Addons](https://github.com/storybooks/storybook/labels/enhancement%3A%20addons), [UI](https://github.com/storybooks/storybook/labels/enhancement%3A%20ui) or [Webpack](https://github.com/storybooks/storybook/labels/enhancement%3A%20webpack) use enhancements and new [features](https://github.com/storybooks/storybook/labels/feature%20request). - Add more [tests](https://codecov.io/gh/storybooks/storybook/tree/master/packages) (specially for the [UI](https://codecov.io/gh/storybooks/storybook/tree/master/packages/storybook-ui/src)). -Before you submit a new PR, make you to run `npm test`. Do not submit a PR if tests are failing. If you need any help, create an issue and ask. +Before you submit a new PR, make you to run `yarn test`. Do not submit a PR if tests are failing. If you need any help, create an issue and ask. ### Reviewing PRs @@ -133,7 +133,7 @@ If an issue is a `bug`, and it doesn't have a clear reproduction that you have p This project written in ES2016+ syntax so, we need to transpile it before use. So run the following command: - npm run dev + yarn run dev This will watch files and transpile. @@ -142,14 +142,14 @@ This will watch files and transpile. First of all link this repo with: ```sh -npm link +yarn link ``` In order to test features you add, you may need to link the local copy of this repo. For that we need a sample project. Let's create it. ```sh -npm install --global create-react-app getstorybook +yarn global install --global create-react-app getstorybook create-react-app my-demo-app cd my-demo-app getstorybook @@ -161,12 +161,12 @@ getstorybook Then link storybook inside the sample project with: ```sh -npm link @storybook/react +yarn link @storybook/react ``` ### Getting Changes -After you've done any change, you need to run the `npm run storybook` command every time to see those changes. +After you've done any change, you need to run the `yarn run storybook` command every time to see those changes. ## Release Guide @@ -191,10 +191,10 @@ git status # clean out extra files # WARNING: destructive if you have extra files lying around! -git clean -fdx && yarn +git clean -fdx && yarn install # build all the packages -npm run bootstrap +yarn run bootstrap ``` From here there are different procedures for prerelease (e.g. alpha/beta/rc) and proper release. @@ -205,7 +205,7 @@ From here there are different procedures for prerelease (e.g. alpha/beta/rc) and ```sh # publish and tag the release -npm run publish -- --concurrency 1 --npm-tag=alpha +yarn run publish -- --concurrency 1 --npm-tag=alpha # push the tags git push --tags @@ -215,14 +215,14 @@ git push --tags ```sh # publish but don't commit to git -npm run publish -- --concurrency 1 --skip-git +yarn run publish -- --concurrency 1 --skip-git # Update `CHANGELOG.md` # - Edit PR titles/labels on github until output is good # - Optionally, edit a handwritten description in `CHANGELOG.md` -npm run changelog +yarn run changelog # tag the release and push `CHANGELOG.md` and tags # FIXME: not end-to-end tested! -npm run github-release +yarn run github-release ``` diff --git a/README.md b/README.md index 45e01f83d876..468edd72e0e8 100644 --- a/README.md +++ b/README.md @@ -92,30 +92,30 @@ We welcome contributions to Storybook! ### Development scripts -#### `npm run bootstrap` +#### `yarn run bootstrap` > Installs package dependencies and links packages together - using lerna -#### `npm run publish` +#### `yarn run publish` > Push a release to git and npm > will ask for version in interactive mode - using lerna. -#### `npm run lint` +#### `yarn run lint` > boolean check if code conforms to linting rules - uses remark & eslint -- `npm run lint:js` - will check js -- `npm run lint:md` - will check markdown + code samples +- `yarn run lint:js` - will check js +- `yarn run lint:md` - will check markdown + code samples -- `npm run lint:js -- --fix` - will automatically fix js -- `npm run lint:md -- -o` - will automatically fix markdown +- `yarn run lint:js -- --fix` - will automatically fix js +- `yarn run lint:md -- -o` - will automatically fix markdown -#### `npm run test` +#### `yarn run test` > boolean check if unit tests all pass - uses jest -- `npm run test:watch` - will run tests in watch-mode +- `yarn run test:watch` - will run tests in watch-mode ### Backers diff --git a/docs/README.md b/docs/README.md index d5aae97cf4a1..a92593734e16 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,9 +5,9 @@ This is the source for [storybook.js.org](https://storybook.js.org). It document ### Usage ```sh -npm i -npm run develop -npm run storybook +yarn install +yarn run develop +yarn run storybook ``` ### Edit Documentation diff --git a/examples/crna-kitchen-sink/package.json b/examples/crna-kitchen-sink/package.json index 92828d45d65c..f0dac6063227 100644 --- a/examples/crna-kitchen-sink/package.json +++ b/examples/crna-kitchen-sink/package.json @@ -14,7 +14,7 @@ "@storybook/react-native": "file:../../packs/storybook-react-native.tgz", "@storybook/ui": "file:../../packs/storybook-ui.tgz", "react-native-scripts": "1.1.0", - "jest-expo": "~19.0.0", + "jest-expo": "19.0.0", "react-test-renderer": "16.0.0-alpha.12" }, "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js", @@ -30,8 +30,8 @@ "preset": "jest-expo" }, "dependencies": { - "expo": "^19.0.0", + "expo": "19.0.0", "react": "16.0.0-alpha.12", - "react-native": "^0.46.1" + "react-native": "0.46.1" } } diff --git a/examples/react-native-vanilla/package.json b/examples/react-native-vanilla/package.json index 54daaba92faf..07a3fda4eaf0 100644 --- a/examples/react-native-vanilla/package.json +++ b/examples/react-native-vanilla/package.json @@ -14,7 +14,7 @@ "devDependencies": { "babel-jest": "20.0.3", "babel-preset-react-native": "1.9.2", - "jest": "^20.0.4", + "jest": "20.0.4", "react-test-renderer": "16.0.0-alpha.6", "@storybook/addon-actions": "file:../../packs/storybook-addon-actions.tgz", "@storybook/addon-links": "file:../../packs/storybook-addon-links.tgz", @@ -26,6 +26,6 @@ "@storybook/components": "file:../../packs/storybook-components.tgz", "@storybook/react-native": "file:../../packs/storybook-react-native.tgz", "@storybook/ui": "file:../../packs/storybook-ui.tgz", - "react-dom": "^15.6.1" + "react-dom": "15.6.1" } } diff --git a/examples/test-cra/package.json b/examples/test-cra/package.json index 146660f82ded..3701cba40f28 100644 --- a/examples/test-cra/package.json +++ b/examples/test-cra/package.json @@ -11,10 +11,10 @@ "test": "react-scripts test --env=jsdom" }, "dependencies": { - "global": "^4.3.2", - "prop-types": "^15.5.10", - "react": "^15.6.1", - "react-dom": "^15.6.1" + "global": "4.3.2", + "prop-types": "15.5.10", + "react": "15.6.1", + "react-dom": "15.6.1" }, "devDependencies": { "@storybook/addon-actions": "file:../../packs/storybook-addon-actions.tgz", @@ -27,7 +27,7 @@ "@storybook/react": "file:../../packs/storybook-react.tgz", "@storybook/ui": "file:../../packs/storybook-ui.tgz", "react-scripts": "1.0.2", - "react-test-renderer": "^15.4.2" + "react-test-renderer": "15.4.2" }, "private": true } From 7548bb0ae29d7f18f02438dfd35bc91f0748418e Mon Sep 17 00:00:00 2001 From: hypnos Date: Tue, 22 Aug 2017 23:43:09 +0300 Subject: [PATCH 026/107] merge master --- examples/react-native-vanilla/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/react-native-vanilla/package.json b/examples/react-native-vanilla/package.json index b73f924e7758..fbad24cd9be3 100644 --- a/examples/react-native-vanilla/package.json +++ b/examples/react-native-vanilla/package.json @@ -8,7 +8,7 @@ "storybook": "storybook start -p 7007" }, "dependencies": { - "prop-types": "^15.5.10", + "prop-types": "15.5.10", "react": "16.0.0-alpha.6", "react-native": "0.44.1" }, From 7ce56739361176d8327837ded564ca071f34d8ac Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 23 Aug 2017 15:32:03 -0700 Subject: [PATCH 027/107] addon info: make propTypes table better * more details for arrayOf, objectOf, shape, oneOf, oneOfType * refactored into cleaner code + many smaller components --- addons/info/example/Button.js | 15 ++ addons/info/src/components/PropTable.js | 148 +++--------------- addons/info/src/components/styles.js | 17 ++ addons/info/src/components/types/ArrayOf.js | 19 +++ .../src/components/types/HighlightButton.js | 56 +++++++ addons/info/src/components/types/ObjectOf.js | 28 ++++ .../info/src/components/types/ObjectType.js | 79 ++++++++++ addons/info/src/components/types/OneOfType.js | 22 +++ .../src/components/types/PrettyPropType.js | 73 +++++++++ .../src/components/types/PropertyLabel.js | 26 +++ addons/info/src/components/types/proptypes.js | 6 + .../src/components/DocgenButton.js | 40 +++++ 12 files changed, 401 insertions(+), 128 deletions(-) create mode 100644 addons/info/src/components/styles.js create mode 100644 addons/info/src/components/types/ArrayOf.js create mode 100644 addons/info/src/components/types/HighlightButton.js create mode 100644 addons/info/src/components/types/ObjectOf.js create mode 100644 addons/info/src/components/types/ObjectType.js create mode 100644 addons/info/src/components/types/OneOfType.js create mode 100644 addons/info/src/components/types/PrettyPropType.js create mode 100644 addons/info/src/components/types/PropertyLabel.js create mode 100644 addons/info/src/components/types/proptypes.js diff --git a/addons/info/example/Button.js b/addons/info/example/Button.js index df7c34c01288..69e07321300f 100644 --- a/addons/info/example/Button.js +++ b/addons/info/example/Button.js @@ -14,6 +14,21 @@ Object.assign(Button, { style: PropTypes.object, disabled: PropTypes.bool, onClick: PropTypes.func, + array: PropTypes.array, + arrayOf: PropTypes.arrayOf(PropTypes.string), + oneOf: PropTypes.oneOf(['foo', 'bar']), + shape: PropTypes.shape({ + foo: PropTypes.string, + bar: PropTypes.number, + }), + nestedArrayOf: PropTypes.arrayOf(PropTypes.shape({ + foo: PropTypes.shape({ + baz: PropTypes.string, + bar: PropTypes.arrayOf({ + PropTypes.string + }), + }), + })), }, }); diff --git a/addons/info/src/components/PropTable.js b/addons/info/src/components/PropTable.js index 173bce5b82ef..86bb8659b96f 100644 --- a/addons/info/src/components/PropTable.js +++ b/addons/info/src/components/PropTable.js @@ -2,7 +2,10 @@ import PropTypes from 'prop-types'; import React from 'react'; + +import styles from './styles'; import PropVal from './PropVal'; +import PrettyPropType from './types/PrettyPropType'; const PropTypesMap = new Map(); @@ -13,117 +16,10 @@ Object.keys(PropTypes).forEach(typeName => { PropTypesMap.set(type.isRequired, typeName); }); -const stylesheet = { - hasProperty: { - marginLeft: 10, - }, - code: { - fontFamily: 'Monaco, Consolas, "Courier New", monospace', - }, - block: { - display: 'block', - }, - propTable: { - marginTop: 10, - borderCollapse: 'collapse', - }, - propTableCell: { - border: '1px solid #ccc', - padding: '2px 6px', - }, -}; - const isNotEmpty = obj => obj && obj.props && Object.keys(obj.props).length > 0; -const renderDocgenPropType = propType => { - if (!propType) { - return 'unknown'; - } - - const name = propType.name; - - switch (name) { - case 'arrayOf': - return `${propType.value.name}[]`; - case 'instanceOf': - return propType.value; - case 'union': - return propType.raw; - case 'signature': - return propType.raw; - default: - return name; - } -}; - -const formatType = ({ propType, type, property, required }) => { - let result; - - if (type) { - const PropertyLabel = - property && - - {property}:{' '} - ; - - if (propType === 'other') { - return (result = type.name); - } else if (type && propType === 'arrayOf') { - return ( - - {PropertyLabel} - [ - - {formatType({ - parentType: propType, - type: type.value, - propType: type.value.name, - })} - - ] - - ); - } else if (propType === 'enum') { - return ( -
- {type.value.map(({ value }) => value).join(' | ')} -
- ); - } else if (propType === 'shape') { - const values = Object.keys(type.value).map(property => - formatType({ - property, - parentType: propType, - type: type.value[property], - propType: type.value[property].name, - required: type.value[property].required, - }) - ); - - return ( - - {PropertyLabel} - - {'{'} - - {values.map(value => - - {value} - - )} - - {'}'} - - - ); - } - } -}; - const hasDocgen = type => isNotEmpty(type.__docgenInfo); -const boolToString = value => (value ? 'yes' : 'no'); - const propsFromDocgen = type => { const props = {}; const docgenInfoProps = type.__docgenInfo.props; @@ -135,8 +31,8 @@ const propsFromDocgen = type => { props[property] = { property, - propType: renderDocgenPropType(propType), - required: boolToString(docgenInfoProp.required), + propType, + required: docgenInfoProp.required, description: docgenInfoProp.description, defaultValue: defaultValueDesc.value, }; @@ -151,7 +47,7 @@ const propsFromPropTypes = type => { if (type.propTypes) { Object.keys(type.propTypes).forEach(property => { const typeInfo = type.propTypes[property]; - const required = typeInfo.isRequired === undefined ? 'yes' : 'no'; + const required = typeInfo.isRequired === undefined; const docgenInfo = type.__docgenInfo && type.__docgenInfo.props && type.__docgenInfo.props[property]; const description = docgenInfo ? docgenInfo.description : null; @@ -159,13 +55,9 @@ const propsFromPropTypes = type => { if (propType === 'other') { if (docgenInfo && docgenInfo.type) { - propType = type.__docgenInfo.props[property].type.name; + propType = docgenInfo.type.name; } } - // const propType = formatType({ - // propType: docgenInfo && docgenInfo.type && docgenInfo.type.name, - // type: (docgenInfo && docgenInfo.type) || {} - // }); props[property] = { property, propType, required, description }; }); @@ -211,34 +103,34 @@ export default function PropTable(props) { }; return ( -
propertypropTyperequireddefaultdescriptionpropertypropTyperequireddefaultdescription
+ {row.property} + {row.propType} + {row.required} + {row.defaultValue === undefined ? '-' : } + {row.description}
+
- - - - - + + + + + {array.map(row => - - - - - diff --git a/addons/info/src/components/styles.js b/addons/info/src/components/styles.js new file mode 100644 index 000000000000..a4fcfedf6381 --- /dev/null +++ b/addons/info/src/components/styles.js @@ -0,0 +1,17 @@ +export default { + hasProperty: { + whiteSpace: 'nowrap', + }, + code: { + whiteSpace: 'nowrap', + fontFamily: 'Monaco, Consolas, "Courier New", monospace', + }, + propTable: { + marginTop: 10, + borderCollapse: 'collapse', + }, + propTableCell: { + border: '1px solid #ccc', + padding: '2px 6px', + }, +}; diff --git a/addons/info/src/components/types/ArrayOf.js b/addons/info/src/components/types/ArrayOf.js new file mode 100644 index 000000000000..5ec615798de1 --- /dev/null +++ b/addons/info/src/components/types/ArrayOf.js @@ -0,0 +1,19 @@ +import React from 'react'; + +import PrettyPropType from './PrettyPropType'; +import { TypeInfo } from './proptypes'; + +const ArrayOf = ({ propType }) => + + [ + + + + ] + ; + +ArrayOf.propTypes = { + propType: TypeInfo.isRequired, +}; + +export default ArrayOf; diff --git a/addons/info/src/components/types/HighlightButton.js b/addons/info/src/components/types/HighlightButton.js new file mode 100644 index 000000000000..a9325716db09 --- /dev/null +++ b/addons/info/src/components/types/HighlightButton.js @@ -0,0 +1,56 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +export default class HighlightButton extends React.Component { + static propTypes = { + children: PropTypes.node.isRequired, + highlight: PropTypes.bool, + }; + + static defaultProps = { + highlight: false, + }; + + constructor(props) { + super(props); + this.state = { + hover: false, + }; + } + + handleMouseEnter = () => { + this.setState({ hover: true }); + }; + + handleMouseLeave = () => { + this.setState({ hover: false }); + }; + + render() { + const { children, highlight, ...otherProps } = this.props; + const style = + highlight || this.state.hover + ? { + backgroundColor: 'rgba(0, 0, 0, 0.05)', + border: '1px solid #ccc', + } + : {}; + return ( + + {children} + + ); + } +} diff --git a/addons/info/src/components/types/ObjectOf.js b/addons/info/src/components/types/ObjectOf.js new file mode 100644 index 000000000000..d709e45a71ed --- /dev/null +++ b/addons/info/src/components/types/ObjectOf.js @@ -0,0 +1,28 @@ +import React from 'react'; + +import PrettyPropType from './PrettyPropType'; +import { TypeInfo } from './proptypes'; + +const ObjectOf = ({ propType }) => + + + {'{'} + + + + {'[]:'} + + + + + + + {'}'} + + ; + +ObjectOf.propTypes = { + propType: TypeInfo.isRequired, +}; + +export default ObjectOf; diff --git a/addons/info/src/components/types/ObjectType.js b/addons/info/src/components/types/ObjectType.js new file mode 100644 index 000000000000..618bb8983a26 --- /dev/null +++ b/addons/info/src/components/types/ObjectType.js @@ -0,0 +1,79 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import PrettyPropType from './PrettyPropType'; +import PropertyLabel from './PropertyLabel'; +import HighlightButton from './HighlightButton'; + +import { TypeInfo } from './proptypes'; + +const MARGIN_SIZE = 15; + +export default class ObjectType extends React.Component { + static propTypes = { + propType: TypeInfo, + depth: PropTypes.number.isRequired, + }; + + static defaultProps = { + propType: null, + }; + + constructor(props) { + super(props); + this.state = { + minimized: false, + }; + } + + handleToggle = () => { + this.setState({ + minimized: !this.state.minimized, + }); + }; + + handleMouseEnter = () => { + this.setState({ hover: true }); + }; + + handleMouseLeave = () => { + this.setState({ hover: false }); + }; + + render() { + const { propType, depth } = this.props; + return ( + + + {'{'} + + ... + {!this.state.minimized && + Object.keys(propType.value).map(childProperty => +
+ + + , +
+ )} + + + {'}'} + +
+ ); + } +} diff --git a/addons/info/src/components/types/OneOfType.js b/addons/info/src/components/types/OneOfType.js new file mode 100644 index 000000000000..62cd00a675bd --- /dev/null +++ b/addons/info/src/components/types/OneOfType.js @@ -0,0 +1,22 @@ +import React from 'react'; + +import PrettyPropType from './PrettyPropType'; +import { TypeInfo } from './proptypes'; + +const OneOfType = ({ propType }) => { + const length = propType.value.length; + return ( + + {propType.value + .map((value, i) => [ + , + i < length - 1 ? | : null, + ]) + .reduce((acc, tuple) => acc.concat(tuple), [])} + + ); +}; +OneOfType.propTypes = { + propType: TypeInfo.isRequired, +}; +export default OneOfType; diff --git a/addons/info/src/components/types/PrettyPropType.js b/addons/info/src/components/types/PrettyPropType.js new file mode 100644 index 000000000000..70929261cb27 --- /dev/null +++ b/addons/info/src/components/types/PrettyPropType.js @@ -0,0 +1,73 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import ObjectType from './ObjectType'; +import OneOfType from './OneOfType'; +import ArrayOf from './ArrayOf'; +import ObjectOf from './ObjectOf'; + +import { TypeInfo } from './proptypes'; + +const PrettyPropType = ({ propType, depth }) => { + if (!propType) { + return unknown; + } + + const { name } = propType || {}; + + if (name === 'shape') { + return ; + } + + if (name === 'union') { + return ; + } + + if (name === 'arrayOf') { + return ; + } + + if (name === 'objectOf') { + return ; + } + + // Rest are just simple strings + let display; + + switch (name) { + case 'object': + display = '{}'; + break; + case 'enum': + display = propType.value.map(({ value }) => value).join(' | '); + break; + case 'instanceOf': + display = propType.value; + break; + case 'signature': + display = propType.raw; + break; + default: + display = name; + } + + return ( + + {display} + + ); +}; + +PrettyPropType.displayName = 'PrettyPropType'; + +PrettyPropType.defaultProps = { + propType: null, + depth: 1, +}; + +PrettyPropType.propTypes = { + propType: TypeInfo, + depth: PropTypes.number.isRequired, +}; + +export default PrettyPropType; diff --git a/addons/info/src/components/types/PropertyLabel.js b/addons/info/src/components/types/PropertyLabel.js new file mode 100644 index 000000000000..1b2616b26ab8 --- /dev/null +++ b/addons/info/src/components/types/PropertyLabel.js @@ -0,0 +1,26 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import styles from '../styles'; + +const PropertyLabel = ({ property, required }) => { + if (!property) return null; + + return ( + + {property} + {required ? '' : '?'}:{' '} + + ); +}; + +PropertyLabel.propTypes = { + property: PropTypes.string, + required: PropTypes.bool, +}; + +PropertyLabel.defaultProps = { + property: '', + required: false, +}; + +export default PropertyLabel; diff --git a/addons/info/src/components/types/proptypes.js b/addons/info/src/components/types/proptypes.js new file mode 100644 index 000000000000..916bc3404acb --- /dev/null +++ b/addons/info/src/components/types/proptypes.js @@ -0,0 +1,6 @@ +import PropTypes from 'prop-types'; + +export const TypeInfo = PropTypes.shape({ + name: PropTypes.string, + value: PropTypes.any, +}); diff --git a/examples/cra-kitchen-sink/src/components/DocgenButton.js b/examples/cra-kitchen-sink/src/components/DocgenButton.js index d6835f1ff470..20e997d58eb1 100644 --- a/examples/cra-kitchen-sink/src/components/DocgenButton.js +++ b/examples/cra-kitchen-sink/src/components/DocgenButton.js @@ -54,6 +54,46 @@ DocgenButton.propTypes = { ), }) ), + + /** + * Plain object propType (use shape!!) + */ + obj: PropTypes.object, // eslint-disable-line react/forbid-prop-types + + /** + * propType for shape with nested arraytOf + */ + shape: PropTypes.shape({ + /** + * Just an internal propType for a shape. + * It's also required, and as you can see it supports multi-line comments! + */ + id: PropTypes.number.isRequired, + /** + * A simple non-required function + */ + func: PropTypes.func, + /** + * An `arrayOf` shape + */ + arr: PropTypes.arrayOf( + PropTypes.shape({ + /** + * 5-level deep propType definition and still works. + */ + index: PropTypes.number.isRequired, + }) + ), + + shape: PropTypes.shape({ + shape: PropTypes.shape({ + foo: PropTypes.string, + }), + }), + }), + + arrayOf: PropTypes.arrayOf(PropTypes.number), + /** * `instanceOf` is also supported and the custom type will be shown instead of `instanceOf` */ From 1704ab4420c7c48eb0cc07eabe05e6dc62851747 Mon Sep 17 00:00:00 2001 From: hypnos Date: Thu, 24 Aug 2017 23:32:04 +0300 Subject: [PATCH 028/107] Actually commit `yarn.lock`s --- docs/yarn.lock | 8630 +++++++++++++++++++++++++++++++++ yarn.lock | 12103 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 20733 insertions(+) create mode 100644 docs/yarn.lock create mode 100644 yarn.lock diff --git a/docs/yarn.lock b/docs/yarn.lock new file mode 100644 index 000000000000..684dd09d0fb1 --- /dev/null +++ b/docs/yarn.lock @@ -0,0 +1,8630 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@hypnosphi/fuse.js@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@hypnosphi/fuse.js/-/fuse.js-3.0.9.tgz#ea99f6121b4a8f065b4c71f85595db2714498807" + +"@storybook/addon-actions@^3.2.6", "@storybook/addon-actions@latest": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.2.6.tgz#d8e476188a288f49f36a8482175bc2c1898dfc28" + dependencies: + "@storybook/addons" "^3.2.6" + deep-equal "^1.0.1" + json-stringify-safe "^5.0.1" + prop-types "^15.5.10" + react-inspector "^2.1.1" + uuid "^3.1.0" + +"@storybook/addon-links@^3.2.6", "@storybook/addon-links@latest": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.2.6.tgz#93029ecee8a1a1939f01381c06ed19327acd746b" + dependencies: + "@storybook/addons" "^3.2.6" + +"@storybook/addons@^3.2.6", "@storybook/addons@latest": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.2.6.tgz#c7974db36bd1b969d8ca3776f57fd955447dc7ed" + +"@storybook/channel-postmessage@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.2.0.tgz#612ff53120bf266660cb9328bac9ad671228a2f7" + dependencies: + "@storybook/channels" "^3.2.0" + global "^4.3.2" + json-stringify-safe "^5.0.1" + +"@storybook/channels@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.2.0.tgz#d75395212db76b49e3335f50cce5bc763cf0b5c6" + +"@storybook/components@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.2.7.tgz#7d4c7221851260e4236bbb3ef82a6494b23e5ec9" + dependencies: + glamor "^2.20.40" + glamorous "^4.1.2" + prop-types "^15.5.10" + +"@storybook/react-fuzzy@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@storybook/react-fuzzy/-/react-fuzzy-0.4.0.tgz#2961e8a1f6c1afcce97e9e9a14d1dfe9d9061087" + dependencies: + babel-runtime "^6.23.0" + classnames "^2.2.5" + fuse.js "^3.0.1" + prop-types "^15.5.9" + +"@storybook/react@latest": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.2.8.tgz#7d43ef450559b7cf3b3ecc17cc54d5a09d5ea402" + dependencies: + "@storybook/addon-actions" "^3.2.6" + "@storybook/addon-links" "^3.2.6" + "@storybook/addons" "^3.2.6" + "@storybook/channel-postmessage" "^3.2.0" + "@storybook/ui" "^3.2.7" + airbnb-js-shims "^1.1.1" + autoprefixer "^7.1.1" + babel-core "^6.25.0" + babel-loader "^7.0.0" + babel-plugin-react-docgen "^1.6.0" + babel-preset-env "^1.6.0" + babel-preset-minify "^0.2.0" + babel-preset-react "^6.24.1" + babel-preset-react-app "^3.0.0" + babel-preset-stage-0 "^6.24.1" + babel-runtime "^6.23.0" + case-sensitive-paths-webpack-plugin "^2.0.0" + chalk "^2.0.1" + commander "^2.9.0" + common-tags "^1.4.0" + configstore "^3.1.0" + css-loader "^0.28.1" + express "^4.15.3" + file-loader "^0.11.1" + find-cache-dir "^1.0.0" + glamor "^2.20.40" + glamorous "^4.1.2" + global "^4.3.2" + json-loader "^0.5.4" + json-stringify-safe "^5.0.1" + json5 "^0.5.1" + lodash.flattendeep "^4.4.0" + lodash.pick "^4.4.0" + postcss-flexbugs-fixes "^3.0.0" + postcss-loader "^2.0.5" + prop-types "^15.5.10" + qs "^6.4.0" + react-modal "^2.2.4" + redux "^3.6.0" + request "^2.81.0" + serve-favicon "^2.4.3" + shelljs "^0.7.8" + style-loader "^0.17.0" + url-loader "^0.5.8" + util-deprecate "^1.0.2" + uuid "^3.1.0" + webpack "^2.5.1 || ^3.0.0" + webpack-dev-middleware "^1.10.2" + webpack-hot-middleware "^2.18.0" + +"@storybook/ui@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.2.7.tgz#c07dd5523e2c83d9f8ac5a7982c305cc59f34e78" + dependencies: + "@hypnosphi/fuse.js" "^3.0.9" + "@storybook/components" "^3.2.7" + "@storybook/react-fuzzy" "^0.4.0" + babel-runtime "^6.23.0" + deep-equal "^1.0.1" + events "^1.1.1" + global "^4.3.2" + json-stringify-safe "^5.0.1" + keycode "^2.1.8" + lodash.debounce "^4.0.8" + lodash.pick "^4.4.0" + lodash.sortby "^4.7.0" + mantra-core "^1.7.0" + podda "^1.2.2" + prop-types "^15.5.10" + qs "^6.4.0" + react-icons "^2.2.5" + react-inspector "^2.1.1" + react-komposer "^2.0.0" + react-modal "^2.2.4" + react-split-pane "^0.1.65" + react-treebeard "^2.0.3" + redux "^3.6.0" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +accept@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/accept/-/accept-1.1.0.tgz#c7b5567c99ade4ac7c937f2a9bc1c566160a30b5" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +accepts@~1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + +address@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" + +agentkeepalive@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" + +airbnb-js-shims@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.3.0.tgz#aac46d80057fb0b414f70e06d07e362fd99ee2fa" + dependencies: + array-includes "^3.0.3" + es5-shim "^4.5.9" + es6-shim "^0.35.3" + function.prototype.name "^1.0.3" + object.entries "^1.0.4" + object.getownpropertydescriptors "^2.0.3" + object.values "^1.0.4" + promise.prototype.finally "^3.0.0" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.0, ajv@^5.1.5: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +algoliasearch@^3.22.1: + version "3.24.3" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.24.3.tgz#0b5da4242baa2e4bf9359bd20c47266ec0e501f4" + dependencies: + agentkeepalive "^2.2.0" + debug "^2.6.8" + envify "^4.0.0" + es6-promise "^4.1.0" + events "^1.1.0" + foreach "^2.0.5" + global "^4.3.2" + inherits "^2.0.1" + isarray "^2.0.1" + load-script "^1.0.0" + object-keys "^1.0.11" + querystring-es3 "^0.2.1" + reduce "^1.0.1" + semver "^5.1.0" + tunnel-agent "^0.6.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ammo@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ammo/-/ammo-1.0.1.tgz#8f8add14cd49bdede3bab3a3e0ebcaf21d03de8b" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +any-promise@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + +archive-type@^3.0.0, archive-type@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" + dependencies: + file-type "^3.1.0" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-slice@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +ast-types@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" + +async-each-series@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + +async@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.2.1, async@^1.3.0, async@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1, async@^2.1.2, async@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +autocomplete.js@^0.28.0: + version "0.28.3" + resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.28.3.tgz#b90dc01688613ab16488bbb6f5314fd2a365ec4b" + dependencies: + immediate "^3.2.3" + +autoprefixer@^6.0.2, autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.2.tgz#fbeaf07d48fd878e0682bf7cbeeade728adb2b18" + dependencies: + browserslist "^2.1.5" + caniuse-lite "^1.0.30000697" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.6" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +b64@2.x.x: + version "2.0.1" + resolved "https://registry.yarnpkg.com/b64/-/b64-2.0.1.tgz#d08c10719719ff1fe1b532ae49269409ce149ce9" + dependencies: + hoek "2.x.x" + +babel-cli@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.11.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.24.1, babel-core@^6.25.0, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-evaluate-path@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-flip-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb" + +babel-helper-mark-eval-scopes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-remove-or-void@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-to-multiple-sequence-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^0.2.16" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-loader@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-add-module-exports@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.0.2.tgz#adb5bc8f48a89311540395ae9f0cc3ed4b10bb2e" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-minify-builtins@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-constant-folding@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-dead-code-elimination@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3" + dependencies: + babel-helper-evaluate-path "^0.2.0" + babel-helper-mark-eval-scopes "^0.2.0" + babel-helper-remove-or-void "^0.2.0" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-minify-guarded-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab" + dependencies: + babel-helper-flip-expressions "^0.2.0" + +babel-plugin-minify-infinity@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03" + +babel-plugin-minify-mangle-names@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529" + dependencies: + babel-helper-mark-eval-scopes "^0.2.0" + +babel-plugin-minify-numeric-literals@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1" + +babel-plugin-minify-replace@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0" + +babel-plugin-minify-simplify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0" + dependencies: + babel-helper-flip-expressions "^0.2.0" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.2.0" + +babel-plugin-minify-type-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-react-docgen@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.7.0.tgz#87e72d3d54b182a30706b740bb4d116f59aadc80" + dependencies: + babel-types "^6.24.1" + lodash "4.x.x" + react-docgen "^2.15.0" + +babel-plugin-react-transform@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" + dependencies: + lodash "^4.6.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +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.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" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +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, 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" + +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.18.0: + 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.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" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-amd-system-wrapper@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-amd-system-wrapper/-/babel-plugin-transform-amd-system-wrapper-0.3.7.tgz#521c782d35644491c979ea683e8a5e1caff0ba42" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-cjs-system-wrapper@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-cjs-system-wrapper/-/babel-plugin-transform-cjs-system-wrapper-0.6.2.tgz#bd7494775289424ff493b6ed455de495bd71ba1d" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-class-properties@6.24.1, babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-do-expressions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" + dependencies: + babel-plugin-syntax-do-expressions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1, babel-plugin-transform-es2015-modules-systemjs@^6.6.5: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-function-bind@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" + dependencies: + babel-plugin-syntax-function-bind "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-global-system-wrapper@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-global-system-wrapper/-/babel-plugin-transform-global-system-wrapper-0.3.4.tgz#948dd7d29fc21447e39bd3447f2debc7f2f73aac" + dependencies: + babel-template "^6.9.0" + +babel-plugin-transform-inline-consecutive-adds@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" + +babel-plugin-transform-member-expression-literals@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.5.tgz#e06ae305cf48d819822e93a70d79269f04d89eec" + +babel-plugin-transform-merge-sibling-variables@^6.8.6: + version "6.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.6.tgz#6d21efa5ee4981f71657fae716f9594bb2622aef" + +babel-plugin-transform-minify-booleans@^6.8.3: + version "6.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.3.tgz#5906ed776d3718250519abf1bace44b0b613ddf9" + +babel-plugin-transform-object-assign@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-property-literals@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.5.tgz#67ed5930b34805443452c8b9690c7ebe1e206c40" + dependencies: + esutils "^2.0.2" + +babel-plugin-transform-react-constant-elements@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + dependencies: + regenerator-transform "0.9.11" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-regexp-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" + +babel-plugin-transform-remove-console@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.5.tgz#fde9d2d3d725530b0fadd8d31078402410386810" + +babel-plugin-transform-remove-debugger@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.5.tgz#809584d412bf918f071fdf41e1fdb15ea89cdcd5" + +babel-plugin-transform-remove-undefined@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-transform-runtime@6.23.0, babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-simplify-comparison-operators@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.5.tgz#a838786baf40cc33a93b95ae09e05591227e43bf" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-system-register@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz#9dff40390c2763ac518f0b2ad7c5ea4f65a5be25" + +babel-plugin-transform-undefined-to-void@^6.8.3: + version "6.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.3.tgz#fc52707f6ee1ddc71bb91b0d314fbefdeef9beb4" + +babel-polyfill@^6.23.0, babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.5.2.tgz#cd4ae90a6e94b709f97374b33e5f8b983556adef" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-env@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-minify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc" + dependencies: + babel-plugin-minify-builtins "^0.2.0" + babel-plugin-minify-constant-folding "^0.2.0" + babel-plugin-minify-dead-code-elimination "^0.2.0" + babel-plugin-minify-flip-comparisons "^0.2.0" + babel-plugin-minify-guarded-expressions "^0.2.0" + babel-plugin-minify-infinity "^0.2.0" + babel-plugin-minify-mangle-names "^0.2.0" + babel-plugin-minify-numeric-literals "^0.2.0" + babel-plugin-minify-replace "^0.2.0" + babel-plugin-minify-simplify "^0.2.0" + babel-plugin-minify-type-constructors "^0.2.0" + babel-plugin-transform-inline-consecutive-adds "^0.2.0" + babel-plugin-transform-member-expression-literals "^6.8.5" + babel-plugin-transform-merge-sibling-variables "^6.8.6" + babel-plugin-transform-minify-booleans "^6.8.3" + babel-plugin-transform-property-literals "^6.8.5" + babel-plugin-transform-regexp-constructors "^0.2.0" + babel-plugin-transform-remove-console "^6.8.5" + babel-plugin-transform-remove-debugger "^6.8.5" + babel-plugin-transform-remove-undefined "^0.2.0" + babel-plugin-transform-simplify-comparison-operators "^6.8.5" + babel-plugin-transform-undefined-to-void "^6.8.3" + lodash.isplainobject "^4.0.6" + +babel-preset-react-app@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.0.2.tgz#d062fca5dce68ed9c2615f2fecbc08861720f8e5" + dependencies: + babel-plugin-dynamic-import-node "1.0.2" + babel-plugin-syntax-dynamic-import "6.18.0" + babel-plugin-transform-class-properties "6.24.1" + babel-plugin-transform-object-rest-spread "6.23.0" + babel-plugin-transform-react-constant-elements "6.23.0" + babel-plugin-transform-react-jsx "6.24.1" + babel-plugin-transform-react-jsx-self "6.22.0" + babel-plugin-transform-react-jsx-source "6.22.0" + babel-plugin-transform-regenerator "6.24.1" + babel-plugin-transform-runtime "6.23.0" + babel-preset-env "1.5.2" + babel-preset-react "6.24.1" + +babel-preset-react-hmre@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz#d216e60cb5b8d4c873e19ed0f54eaff1437bc492" + dependencies: + babel-plugin-react-transform "^2.0.2" + react-transform-catch-errors "^1.0.2" + react-transform-hmr "^1.0.3" + redbox-react "^1.2.2" + +babel-preset-react@6.24.1, babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-preset-stage-0@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" + dependencies: + babel-plugin-transform-do-expressions "^6.22.0" + babel-plugin-transform-function-bind "^6.22.0" + babel-preset-stage-1 "^6.24.1" + +babel-preset-stage-1@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + dependencies: + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" + +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@6.x.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.5.0, babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.25.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.17.3, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +babylon@~5.8.3: + version "5.8.38" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd" + +balanced-match@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + +balanced-match@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.2.1.tgz#7bc658b4bed61eee424ad74f75f5c3e2c4df3cc7" + +balanced-match@^0.4.1, balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + +batch-processor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +bin-build@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc" + dependencies: + archive-type "^3.0.1" + decompress "^3.0.0" + download "^4.1.2" + exec-series "^1.0.0" + rimraf "^2.2.6" + tempfile "^1.0.0" + url-regex "^3.0.0" + +bin-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" + dependencies: + executable "^1.0.0" + +bin-version-check@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" + dependencies: + bin-version "^1.0.0" + minimist "^1.1.0" + semver "^4.0.3" + semver-truncate "^1.0.0" + +bin-version@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e" + dependencies: + find-versions "^1.0.0" + +bin-wrapper@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb" + dependencies: + bin-check "^2.0.0" + bin-version-check "^2.1.0" + download "^4.0.0" + each-async "^1.1.1" + lazy-req "^1.0.0" + os-filter-obj "^1.0.0" + +binary-extensions@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + +bl@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + dependencies: + readable-stream "^2.0.5" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.0.5, bluebird@^3.3.4: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +boom@2.x.x, boom@^2.5.x, boom@^2.7.2: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +bootstrap@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71" + +bowser@^1.0.0, bowser@^1.6.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.2.tgz#b94cc6925ba6b5e07c421a58e601ce4611264572" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brcast@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browserify-aes@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" + dependencies: + inherits "^2.0.1" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.0.0, browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.1.2, browserslist@^2.1.5: + version "2.3.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c" + dependencies: + caniuse-lite "^1.0.30000715" + electron-to-chromium "^1.3.18" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-peek-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-peek-stream/-/buffer-peek-stream-1.0.1.tgz#53b47570a1347787c5bad4ca2ca3021f9d8b3cfd" + +buffer-to-vinyl@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" + dependencies: + file-type "^3.1.0" + readable-stream "^2.0.2" + uuid "^2.0.1" + vinyl "^1.0.0" + +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0, buffer@^4.9.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +call@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/call/-/call-2.0.2.tgz#9c9831abd0769486fdee83a41149b829b32d06c0" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-api@^1.5.2, caniuse-api@^1.5.3: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000717" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000717.tgz#27ddf5feccdd338c99a62c9788c2694f99f67ed7" + +caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000715: + version "1.0.30000717" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000717.tgz#4539b126af787c1d4851944de22b2bd8780d3612" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +case-sensitive-paths-webpack-plugin@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +catbox-memory@1.x.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-1.1.2.tgz#33c9183a32b31945ee8a484d0e3c3cbb82eaec1a" + dependencies: + hoek "2.x.x" + +catbox@^4.2.x: + version "4.3.0" + resolved "https://registry.yarnpkg.com/catbox/-/catbox-4.3.0.tgz#222377bd67f1291ac0e25d00002d065a9df7f39a" + dependencies: + boom "2.x.x" + hoek "2.x.x" + joi "6.x.x" + +caw@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" + dependencies: + get-proxy "^1.0.1" + is-obj "^1.0.0" + object-assign "^3.0.0" + tunnel-agent "^0.4.0" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chain-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chokidar@^1.0.0, chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +chroma-js@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-0.7.2.tgz#d8373f97cda7310e447e1dd21974efb239e3117d" + +chroma-js@^0.7.2: + version "0.7.8" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-0.7.8.tgz#4765881b3cc368a571677917e81b5cd3ff041d40" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjsx-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cjsx-loader/-/cjsx-loader-3.0.0.tgz#06dca52af2af649a8c0539c17990f633adc6dd8f" + dependencies: + coffee-react-transform "^4.0.0" + loader-utils "0.2.x" + +clap@^1.0.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.0.tgz#59c90fe3e137104746ff19469a27a634ff68c857" + dependencies: + chalk "^1.1.3" + +classnames@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +coffee-loader@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/coffee-loader/-/coffee-loader-0.7.3.tgz#fadbc6efd6fc7ecc88c5b3046a2c292066bcb54a" + dependencies: + loader-utils "^1.0.2" + +coffee-react-transform@^3.0.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/coffee-react-transform/-/coffee-react-transform-3.3.0.tgz#f1f90fa22de8d767fca2793e3b70f0f7d7a2e467" + +coffee-react-transform@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/coffee-react-transform/-/coffee-react-transform-4.0.0.tgz#731a79fd445a56e93926c72e983eff937f7c6fde" + +coffee-script@^1.12.6, coffee-script@^1.9.1: + version "1.12.7" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" + +color-convert@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-pairs-picker@^1.3.5: + version "1.3.6" + resolved "https://registry.yarnpkg.com/color-pairs-picker/-/color-pairs-picker-1.3.6.tgz#a911409531932c6ebaee4574b87c30104ac9c3d3" + dependencies: + chroma-js "0.7.2" + is-object "^1.0.1" + object-assign "^2.0.0" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/color/-/color-0.10.1.tgz#c04188df82a209ddebccecdacd3ec320f193739f" + dependencies: + color-convert "^0.5.3" + color-string "^0.3.0" + +color@^0.11.0, color@^0.11.3, color@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@1.1.2, colors@^1.0.3, colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@2.9.0, commander@2.9.x: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.11.0, commander@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +common-tags@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + dependencies: + babel-runtime "^6.18.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compass-vertical-rhythm@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/compass-vertical-rhythm/-/compass-vertical-rhythm-1.3.1.tgz#6047ffd8b20b2dcba93698e90a34570662893488" + dependencies: + convert-css-length "^1.0.1" + object-assign "^4.1.0" + parse-unit "^1.0.1" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6, concat-stream@^1.4.7: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +console-polyfill@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/console-polyfill/-/console-polyfill-0.1.2.tgz#96cfed51caf78189f699572e6f18271dc37c0e30" + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +content@1.x.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content/-/content-1.0.2.tgz#cb7edf32afef17c48acfdbd21ff98c23315ae824" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +convert-css-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/convert-css-length/-/convert-css-length-1.0.1.tgz#f3ecec664f2e873a0570e6afdd3e1ae4f92444b7" + dependencies: + console-polyfill "^0.1.2" + parse-unit "^1.0.1" + +convert-source-map@^1.1.1, convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0, core-js@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + 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" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-class@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" + dependencies: + browserify-aes "0.4.0" + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +crypto-browserify@^3.11.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +css-color-function@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.0.tgz#72c767baf978f01b8a8a94f42f17ba5d22a776fc" + dependencies: + balanced-match "0.1.0" + color "^0.11.0" + debug "~0.7.4" + rgb "~0.1.0" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-in-js-utils@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215" + dependencies: + hyphenate-style-name "^1.0.2" + +css-loader@^0.28.1, css-loader@^0.28.4: + version "0.28.5" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.5.tgz#dd02bb91b94545710212ef7f6aaa66663113d754" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +data-uri-to-buffer@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz#46e13ab9da8e309745c8d01ce547213ebdb2fe3f" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@2.0.0, dateformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + +dateutil@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dateutil/-/dateutil-0.1.0.tgz#f4c02429e03f927c1c9e1e21bbe2b37833477eb0" + +debug@2.6.8, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@~0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decompress-tar@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" + dependencies: + is-tar "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-tarbz2@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" + dependencies: + is-bzip2 "^1.0.0" + object-assign "^2.0.0" + seek-bzip "^1.0.3" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-targz@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" + dependencies: + is-gzip "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-unzip@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" + dependencies: + is-zip "^1.0.0" + read-all-stream "^3.0.0" + stat-mode "^0.2.0" + strip-dirs "^1.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + yauzl "^2.2.1" + +decompress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" + dependencies: + buffer-to-vinyl "^1.0.0" + concat-stream "^1.4.6" + decompress-tar "^3.0.0" + decompress-tarbz2 "^3.0.0" + decompress-targz "^3.0.0" + decompress-unzip "^3.0.0" + stream-combiner2 "^1.1.1" + vinyl-assign "^1.0.1" + vinyl-fs "^2.2.0" + +deep-equal@^1.0.0, deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@1.1.1, depd@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-port@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.2.1.tgz#a2c0a048aa9df2b703fc54bb4436ce2118f09b5a" + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +docsearch.js@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.4.1.tgz#c59a21f77c23420a83d6535dcab5180d1dbfb219" + dependencies: + algoliasearch "^3.22.1" + autocomplete.js "^0.28.0" + hogan.js "^3.0.2" + to-factory "^1.0.0" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-helpers@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-2.4.0.tgz#9bb4b245f637367b1fa670274272aa28fe06c367" + +dom-helpers@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +download@^4.0.0, download@^4.1.2: + version "4.4.3" + resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" + dependencies: + caw "^1.0.1" + concat-stream "^1.4.7" + each-async "^1.0.0" + filenamify "^1.0.1" + got "^5.0.0" + gulp-decompress "^1.2.0" + gulp-rename "^1.2.0" + is-url "^1.2.0" + object-assign "^4.0.1" + read-all-stream "^3.0.0" + readable-stream "^2.0.2" + stream-combiner2 "^1.1.1" + vinyl "^1.0.0" + vinyl-fs "^2.2.0" + ware "^1.2.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.4, duplexer2@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexify@^3.2.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-async@^1.0.0, each-async@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" + dependencies: + onetime "^1.0.0" + set-immediate-shim "^1.0.0" + +easy-css-transform-builder@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/easy-css-transform-builder/-/easy-css-transform-builder-0.0.2.tgz#a541667a7919e17f67d82b11d3cb55fdd5433022" + dependencies: + invariant "^2.2.2" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.18: + version "1.3.18" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" + +element-resize-detector@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.1.12.tgz#8b3fd6eedda17f9c00b360a0ea2df9927ae80ba2" + dependencies: + batch-processor "^1.0.0" + +element-resize-event@^2.0.0: + version "2.0.9" + resolved "https://registry.yarnpkg.com/element-resize-event/-/element-resize-event-2.0.9.tgz#2f5e1581a296eb5275210c141bc56342e218f876" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +envify@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e" + dependencies: + esprima "^4.0.0" + through "~2.3.4" + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + +errno@^0.1.1, errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" + dependencies: + stackframe "^0.3.1" + +es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.29" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.29.tgz#768eb2dfc4957bcf35fa0568f193ab71ede53fd8" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es5-shim@^4.5.9: + version "4.5.9" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.9.tgz#2a1e2b9e583ff5fed0c20a3ee2cbf3f75230a5c0" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-shim@^0.35.3: + version "0.35.3" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-template-strings@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-template-strings/-/es6-template-strings-2.0.1.tgz#b166c6a62562f478bb7775f6ca96103a599b4b2c" + dependencies: + es5-ext "^0.10.12" + esniff "^1.1" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esniff@^1.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-1.1.0.tgz#c66849229f91464dede2e0d40201ed6abf65f2ac" + dependencies: + d "1" + es5-ext "^0.10.12" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" + +ev-emitter@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" + +eval@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.2.tgz#9f7103284c105a66df4030b2b3273165837013da" + dependencies: + require-like ">= 0.1.1" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +events@^1.0.0, events@^1.1.0, events@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-buffer@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" + dependencies: + execa "^0.7.0" + p-finally "^1.0.0" + pify "^3.0.0" + rimraf "^2.5.4" + tempfile "^2.0.0" + +exec-series@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a" + dependencies: + async-each-series "^1.1.0" + object-assign "^4.1.0" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +executable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" + dependencies: + meow "^3.1.0" + +exenv@^1.2.0, exenv@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.0, expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +express@^4.15.3: + version "4.15.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.8" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + finalhandler "~1.0.4" + fresh "0.5.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.5" + qs "6.5.0" + range-parser "~1.2.0" + send "0.15.4" + serve-static "1.12.4" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.0" + vary "~1.1.1" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +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@^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: + async "^1.5.0" + loader-utils "^0.2.3" + webpack-sources "^0.1.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-memoize@^2.2.7: + version "2.2.8" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.2.8.tgz#d7f899f31d037b12d9db4281912f9018575720b1" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +fbjs@^0.8.12, fbjs@^0.8.9: + version "0.8.14" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-loader@*: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.0.0.tgz#08accf9631a0875e4ab7f209fc4db338604b3190" + dependencies: + loader-utils "^1.0.2" + +file-loader@^0.11.1, file-loader@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + +file-type@^4.1.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +filename-reserved-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" + +filenamify@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" + dependencies: + filename-reserved-regex "^1.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" + dependencies: + debug "2.6.8" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + 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-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +find-versions@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62" + dependencies: + array-uniq "^1.0.0" + get-stdin "^4.0.1" + meow "^3.5.0" + semver-regex "^1.0.0" + +findup-sync@^0.4.2: + 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" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +fined@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +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.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" + +front-matter@^2.1.0, front-matter@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb" + dependencies: + js-yaml "^3.4.6" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +function.prototype.name@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + is-callable "^1.1.3" + +fuse.js@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.0.5.tgz#b58d85878802321de94461654947b93af1086727" + +gatsby@0.12.48: + version "0.12.48" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-0.12.48.tgz#262395673ed7111da68cbd874602f8e4a8db2756" + dependencies: + async "^1.2.1" + babel-core "^6.25.0" + babel-loader "^6.4.1" + babel-plugin-add-module-exports "^0.2.1" + babel-plugin-transform-object-assign "^6.8.0" + babel-preset-es2015 "^6.24.1" + babel-preset-react "^6.24.1" + babel-preset-react-hmre "^1.1.1" + babel-preset-stage-0 "^6.24.1" + babel-traverse "^6.25.0" + babylon "^6.17.3" + boom "^2.7.2" + chalk "^1.1.3" + cjsx-loader "^3.0.0" + coffee-loader "^0.7.3" + coffee-script "^1.12.6" + commander "^2.9.0" + css-loader "^0.28.4" + debug "^2.6.8" + detect-port "^1.2.1" + extract-text-webpack-plugin "^1.0.1" + file-loader "^0.11.2" + front-matter "^2.1.0" + fs-extra "^0.30.0" + glob "^7.1.2" + global "^4.3.2" + hapi "^8.5.1" + hapi-webpack-plugin "^1.3.0" + highlight.js "^9.10.0" + history "^2.1.2" + html-frontmatter "^1.6.0" + image-webpack-loader "^2.0.0" + invariant "^2.2.1" + json-loader "^0.5.2" + json5 "^0.5.0" + less "^2.7.1" + less-loader "^2.2.0" + loader-utils "^0.2.15" + lodash "^4.15.0" + markdown-it "^7.0.1" + markdown-it-replace-link "^1.0.1" + moment "^2.18.1" + negotiator "^0.6.1" + node-cjsx "^1.0.0" + node-libs-browser "^2.0.0" + node-sass "^4.5.3" + null-loader "^0.1.1" + object-assign "^4.1.0" + opn "^4.0.2" + parse-filepath "^1.0.1" + postcss-browser-reporter "^0.5.0" + postcss-cssnext "^2.11.0" + postcss-import "^8.1.2" + postcss-loader "^0.13.0" + postcss-reporter "^1.4.1" + prop-types "^15.5.10" + raw-loader "^0.5.1" + react "^15.6.1" + react-document-title "^2.0.3" + react-dom "^15.6.1" + react-hot-loader "^1.3.0" + react-router "^2.6.1" + react-router-scroll "^0.3.1" + sass-loader "^4.0.0" + slash "^1.0.0" + static-site-generator-webpack-plugin "^2.1.0" + style-loader "^0.16.1" + toml "^2.3.2" + toml-loader "^1.0.0" + tracer "^0.8.9" + ts-loader "^1.2.2" + url-loader "^0.5.9" + webpack "^1.13.2" + webpack-configurator "^0.3.0" + webpack-hot-middleware "^2.17.1" + webpack-require "0.0.16" + yaml-loader "^0.4.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-proxy@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" + dependencies: + rc "^1.1.2" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +gh-pages@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.0.0.tgz#4a46f4c25439f7a2b7e6835504d4a49e949f04ca" + dependencies: + async "2.1.4" + base64url "^2.0.0" + commander "2.9.0" + fs-extra "^3.0.1" + globby "^6.1.0" + graceful-fs "4.1.11" + rimraf "^2.5.4" + +gifsicle@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-3.0.4.tgz#f45cb5ed10165b665dc929e0e9328b6c821dfa3b" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +glamor@^2.20.40: + version "2.20.40" + resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05" + dependencies: + fbjs "^0.8.12" + inline-style-prefixer "^3.0.6" + object-assign "^4.1.1" + prop-types "^15.5.10" + through "^2.3.8" + +glamorous@^4.1.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.4.0.tgz#626b03adcbab259bc97921de4378262f82887e25" + dependencies: + brcast "^3.0.0" + fast-memoize "^2.2.7" + html-tag-names "^1.1.1" + is-function "^1.0.1" + is-plain-object "^2.0.4" + react-html-attributes "^1.3.0" + svg-tag-names "^1.1.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob@5.0.x, glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +global@^4.3.0, global@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + dependencies: + glob "~7.1.1" + lodash "~4.17.4" + minimatch "~3.0.2" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +graceful-fs@4.1.11, graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +gray-percentage@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gray-percentage/-/gray-percentage-2.0.0.tgz#b72a274d1b1379104a0050b63b207dc53fe56f99" + +gulp-decompress@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" + dependencies: + archive-type "^3.0.0" + decompress "^3.0.0" + gulp-util "^3.0.1" + readable-stream "^2.0.2" + +gulp-rename@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-util@^3.0.1: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +h2o2@4.x.x: + version "4.0.2" + resolved "https://registry.yarnpkg.com/h2o2/-/h2o2-4.0.2.tgz#87cb960dc0f5b495964fa928253e6cf13ba22486" + dependencies: + boom "2.x.x" + hoek "2.x.x" + joi "6.x.x" + wreck "6.x.x" + +hapi-webpack-plugin@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/hapi-webpack-plugin/-/hapi-webpack-plugin-1.3.0.tgz#8fe7c1b25d804eaeb326ef1b618845b87196679f" + dependencies: + webpack "^1.12.9" + webpack-dev-middleware "^1.4.0" + webpack-hot-middleware "^2.6.0" + +hapi@^8.5.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-8.8.1.tgz#c7066fe9322e41b9e0e08315fd79f2d9985fa2ea" + dependencies: + accept "1.x.x" + ammo "1.x.x" + boom "^2.5.x" + call "2.x.x" + catbox "^4.2.x" + catbox-memory "1.x.x" + cryptiles "2.x.x" + h2o2 "4.x.x" + heavy "3.x.x" + hoek "^2.14.x" + inert "2.x.x" + iron "2.x.x" + items "1.x.x" + joi "6.x.x" + kilt "^1.1.x" + mimos "2.x.x" + peekaboo "1.x.x" + qs "4.x.x" + shot "1.x.x" + statehood "2.x.x" + subtext "1.x.x" + topo "1.x.x" + vision "2.x.x" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +heavy@3.x.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/heavy/-/heavy-3.0.1.tgz#f2867e6e3515bf83ab1a8bb1e73e5d28e85ab3cd" + dependencies: + boom "2.x.x" + hoek "2.x.x" + joi "6.x.x" + +highlight.js@^9.10.0, highlight.js@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" + +history@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/history/-/history-2.1.2.tgz#4aa2de897a0e4867e4539843be6ecdb2986bfdec" + dependencies: + deep-equal "^1.0.0" + invariant "^2.0.0" + query-string "^3.0.0" + warning "^2.0.0" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x, hoek@^2.14.x, hoek@^2.9.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hogan.js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" + dependencies: + mkdirp "0.3.0" + nopt "1.0.10" + +hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: + 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@^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" + +homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +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-element-attributes@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-1.3.0.tgz#f06ebdfce22de979db82020265cac541fb17d4fc" + +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-frontmatter@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/html-frontmatter/-/html-frontmatter-1.6.1.tgz#2da13f948fe1acfa055d9e683320e4f48ddd660d" + dependencies: + dateutil "^0.1.0" + +html-tag-names@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.2.tgz#f65168964c5a9c82675efda882875dcb2a875c22" + +http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +hyphenate-style-name@^1.0.1, hyphenate-style-name@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" + +iconv-lite@~0.4.13: + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + +image-webpack-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/image-webpack-loader/-/image-webpack-loader-2.0.0.tgz#d6bed8aa7db2cabcd90cd13932df191ab185b5e4" + dependencies: + file-loader "*" + imagemin "^5.2.2" + imagemin-gifsicle "^5.0.0" + imagemin-jpegtran "^5.0.0" + imagemin-optipng "^5.1.0" + imagemin-pngquant "^5.0.0" + imagemin-svgo "^5.1.0" + loader-utils "^0.2.15" + +imagemin-gifsicle@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/imagemin-gifsicle/-/imagemin-gifsicle-5.2.0.tgz#3781524c457612ef04916af34241a2b42bfcb40a" + dependencies: + exec-buffer "^3.0.0" + gifsicle "^3.0.0" + is-gif "^1.0.0" + +imagemin-jpegtran@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/imagemin-jpegtran/-/imagemin-jpegtran-5.0.2.tgz#e6882263b8f7916fddb800640cf75d2e970d2ad6" + dependencies: + exec-buffer "^3.0.0" + is-jpg "^1.0.0" + jpegtran-bin "^3.0.0" + +imagemin-optipng@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz#d22da412c09f5ff00a4339960b98a88b1dbe8695" + dependencies: + exec-buffer "^3.0.0" + is-png "^1.0.0" + optipng-bin "^3.0.0" + +imagemin-pngquant@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-5.0.1.tgz#d8a329da553afa226b11ce62debe0b7e37b439e6" + dependencies: + exec-buffer "^3.0.0" + is-png "^1.0.0" + pngquant-bin "^3.0.0" + +imagemin-svgo@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-5.2.2.tgz#501699f5789730a57922b8736ea15c53f7b55838" + dependencies: + is-svg "^2.0.0" + svgo "^0.7.0" + +imagemin@^5.2.2: + version "5.3.1" + resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-5.3.1.tgz#f19c2eee1e71ba6c6558c515f9fc96680189a6d4" + dependencies: + file-type "^4.1.0" + globby "^6.1.0" + make-dir "^1.0.0" + p-pipe "^1.1.0" + pify "^2.3.0" + replace-ext "^1.0.0" + +imagesloaded@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.3.tgz#94b82a069e532c9da112a4ea3960e58424a42be4" + dependencies: + ev-emitter "^1.0.0" + +immediate@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + +immutable@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +in-publish@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inert@2.x.x: + version "2.1.6" + resolved "https://registry.yarnpkg.com/inert/-/inert-2.1.6.tgz#8f1d74bfeca59a098bd3ee0dc17b648b7ef1e3da" + dependencies: + ammo "1.x.x" + boom "2.x.x" + hoek "2.x.x" + items "1.x.x" + joi "6.x.x" + lru-cache "2.6.x" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inline-style-prefixer@^2.0.4, inline-style-prefixer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" + dependencies: + bowser "^1.0.0" + hyphenate-style-name "^1.0.1" + +inline-style-prefixer@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.7.tgz#0ccc92e5902fe6e0d28d975c4258443f880615f8" + dependencies: + bowser "^1.6.0" + css-in-js-utils "^1.0.3" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +invariant@2.x.x, invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.1, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + +ipaddr.js@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" + +iron@2.x.x: + version "2.1.3" + resolved "https://registry.yarnpkg.com/iron/-/iron-2.1.3.tgz#71b8f357d806aae03a90a745b9aaaffec7e2dde4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-absolute@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-absolute@^0.2.3: + 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.2.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-bzip2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dom@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +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.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-gif@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-1.0.0.tgz#a6d2ae98893007bffa97a1d8c01d63205832097e" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + +is-jpg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.0.tgz#2959c17e73430db38264da75b90dd54f2d86da1c" + +is-natural-number@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-png@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-tar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + +is-url@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + +is-zip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isarray@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.2.tgz#5aa99638daf2248b10b9598b763a045688ece3ee" + +isemail@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isnumeric@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/isnumeric/-/isnumeric-0.2.0.tgz#a2347ba360de19e33d0ffd590fddf7755cbf2e64" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +items@1.x.x, items@^1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/items/-/items-1.1.1.tgz#435b5dd21bca28b3cfd25bb5c6b278b715010fd9" + +joi@6.x.x: + version "6.10.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" + dependencies: + hoek "2.x.x" + isemail "1.x.x" + moment "2.x.x" + topo "1.x.x" + +jpegtran-bin@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz#f60ecf4ae999c0bdad2e9fbcdf2b6f0981e7a29b" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +js-base64@^2.1.8, js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.4.6, js-yaml@^3.5.2: + version "3.9.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.2, json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jspm-github@^0.14.11: + version "0.14.13" + resolved "https://registry.yarnpkg.com/jspm-github/-/jspm-github-0.14.13.tgz#326e5217d3639b21609293b01e7e18775dd3dcc7" + dependencies: + bluebird "^3.0.5" + expand-tilde "^1.2.0" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + netrc "^0.1.3" + request "^2.74.0" + rimraf "^2.5.4" + semver "^5.0.1" + tar-fs "^1.13.0" + which "^1.0.9" + +jspm-npm@^0.30.3: + version "0.30.3" + resolved "https://registry.yarnpkg.com/jspm-npm/-/jspm-npm-0.30.3.tgz#753ea17b383a69e17d4f4f78b7ea50fbfcbe830d" + dependencies: + bluebird "^3.0.5" + buffer-peek-stream "^1.0.1" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + readdirp "^2.0.0" + request "^2.58.0" + semver "^5.0.1" + tar-fs "^1.13.0" + traceur "0.0.105" + which "^1.1.1" + +jspm-registry@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/jspm-registry/-/jspm-registry-0.4.4.tgz#d53166035a87cdce585d62baa397568546996d70" + dependencies: + graceful-fs "^4.1.3" + rimraf "^2.3.2" + rsvp "^3.0.18" + semver "^4.3.3" + +jspm@^0.17.0-beta.13: + version "0.17.0-beta.44" + resolved "https://registry.yarnpkg.com/jspm/-/jspm-0.17.0-beta.44.tgz#c2319697b5e2614fff24c2598f7617ba1a1fe6fb" + dependencies: + bluebird "^3.0.5" + chalk "^1.1.1" + core-js "^1.2.6" + glob "^6.0.1" + graceful-fs "^4.1.2" + jspm-github "^0.14.11" + jspm-npm "^0.30.3" + jspm-registry "^0.4.1" + liftoff "^2.2.0" + minimatch "^3.0.0" + mkdirp "~0.5.1" + ncp "^2.0.0" + proper-lockfile "^1.1.2" + request "^2.67.0" + rimraf "^2.4.4" + sane "^1.3.3" + semver "^5.1.0" + systemjs "0.20.18" + systemjs-builder "0.16.10" + traceur "0.0.105" + uglify-js "^2.6.1" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keycode@^2.1.8: + version "2.1.9" + resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa" + +kilt@^1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/kilt/-/kilt-1.1.1.tgz#77b4a6163ca7fa5b2137a88c17334216ec23d5db" + dependencies: + hoek "2.x.x" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +less-loader@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528" + dependencies: + loader-utils "^0.2.5" + +less@^2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.72.0" + source-map "^0.5.3" + +liftoff@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +linkify-it@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f" + dependencies: + uc.micro "^1.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-script@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5, loader-utils@^0.2.6: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash-es@^4.2.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isnumber@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + +lodash.isplainobject@^4.0.4, lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.keys@^3.0.0, lodash.keys@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.mergewith@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.2.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@3.10.1, lodash@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@4.x.x, lodash@^4.0.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.6.1, lodash@~4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +logalot@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +longest@^1.0.0, longest@^1.0.1: + version "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, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@2.6.x: + version "2.6.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +mantra-core@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/mantra-core/-/mantra-core-1.7.0.tgz#a8c83e8cee83ef6a7383131519fe8031ad546386" + dependencies: + babel-runtime "6.x.x" + react-komposer "^1.9.0" + react-simple-di "^1.2.0" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +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-anchor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-4.0.0.tgz#e87fb5543e01965adf71506c6bf7b0491841b7e3" + dependencies: + string "^3.3.3" + +markdown-it-replace-link@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/markdown-it-replace-link/-/markdown-it-replace-link-1.0.1.tgz#1ecf9da82939ccbbbe010ab1b2a32f1ef28fba42" + +markdown-it@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-7.0.1.tgz#f12d8b88a93e64254348dfd183bd70bf60567a42" + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.1" + +markdown-it@^8.3.1: + version "8.4.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d" + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.3" + +marked@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +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" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.1.0, meow@^3.3.0, meow@^3.5.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.x.x, mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" + +mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7: + version "2.1.16" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" + dependencies: + mime-db "~1.29.0" + +mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@1.3.x, mime@^1.2.11, mime@^1.3.4: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +mimos@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mimos/-/mimos-2.0.2.tgz#c3241717e75b95992be787ac7dd6db1a9b539b1e" + dependencies: + hoek "2.x.x" + mime-db "1.x.x" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mobx@^2.3.4: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-2.7.0.tgz#cf3d82d18c0ca7f458d8f2a240817b3dc7e54a01" + +modularscale@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/modularscale/-/modularscale-1.0.2.tgz#4a8f13af32a5e5214fc6e2cfc529064abfd7d877" + dependencies: + lodash.isnumber "^3.0.0" + +moment@2.x.x, moment@^2.18.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +nan@^2.3.0, nan@^2.3.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +ncp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + +negotiator@0.6.1, negotiator@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +netrc@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" + +nigel@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nigel/-/nigel-1.0.1.tgz#463989af881278fbaa1d3cc93823dbd17b4360a1" + dependencies: + hoek "2.x.x" + vise "1.x.x" + +node-cjsx@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-cjsx/-/node-cjsx-1.0.0.tgz#53db948c0eed2a1fef2a32137d8b429f6bce8dd8" + dependencies: + coffee-react-transform "^3.0.1" + coffee-script "^1.9.1" + +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + dependencies: + minimatch "^3.0.2" + +node-fetch@^1.0.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-gyp@^3.3.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-libs-browser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "3.3.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.36: + version "0.6.36" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-sass@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "^2.79.0" + sass-graph "^2.1.1" + stdout-stream "^1.4.0" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +nopt@1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +null-loader@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-0.1.1.tgz#17be9abfcd3ff0e1512f6fc4afcb1f5039378fae" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.11, object-keys@^1.0.8, object-keys@~1.0.0: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.entries@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onecolor@~2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-2.4.2.tgz#a53ec3ff171c3446016dd5210d1a1b544bf7d874" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +opn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optipng-bin@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-3.1.4.tgz#95d34f2c488704f6fd70606bfea0c659f1d95d84" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-filter-obj@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0, osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-pipe@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0, parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parse-unit@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-unit/-/parse-unit-1.0.1.tgz#7e1bb6d5bef3874c28e392526a2541170291eecf" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + +pbkdf2@^3.0.3: + version "3.0.13" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +peekaboo@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/peekaboo/-/peekaboo-1.0.0.tgz#c0db2926ad654d2ca01f7ca650ab4591a764fc42" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.1.4.tgz#360b642f073ff8c2a693b3c38d7ccbc17b53183b" + +pez@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pez/-/pez-1.0.0.tgz#844318a5ce7092eeddffa295e18079ac779fa018" + dependencies: + b64 "2.x.x" + boom "2.x.x" + content "1.x.x" + hoek "2.x.x" + nigel "1.x.x" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pixrem@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-3.0.2.tgz#30d1bafb4c3bdce8e9bb4bd56a13985619320c34" + dependencies: + browserslist "^1.0.0" + postcss "^5.0.0" + reduce-css-calc "^1.2.7" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkg-resolve@^0.1.7: + version "0.1.14" + resolved "https://registry.yarnpkg.com/pkg-resolve/-/pkg-resolve-0.1.14.tgz#329b2e76ccbb372e22e6a3a41cb30ab0457836ba" + dependencies: + jspm "^0.17.0-beta.13" + resolve "^1.1.7" + +pleeease-filters@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-3.0.1.tgz#4dfe0e8f1046613517c64b728bc80608a7ebf22f" + dependencies: + onecolor "~2.4.0" + postcss "^5.0.4" + +pngquant-bin@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-3.1.1.tgz#d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +podda@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/podda/-/podda-1.2.2.tgz#15b0edbd334ade145813343f5ecf9c10a71cf500" + dependencies: + babel-runtime "^6.11.6" + immutable "^3.8.1" + +postcss-apply@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.3.0.tgz#a2f37c5bdfa881e4c15f4f245ec0cd96dd2e70d5" + dependencies: + balanced-match "^0.4.1" + postcss "^5.0.21" + +postcss-attribute-case-insensitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz#ceb73777e106167eb233f1938c9bd9f2e697308d" + dependencies: + postcss "^5.1.1" + postcss-selector-parser "^2.2.0" + +postcss-browser-reporter@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/postcss-browser-reporter/-/postcss-browser-reporter-0.5.0.tgz#ae069dd086d57388d196e1dac39cb8d7626feb48" + dependencies: + postcss "^5.0.4" + +postcss-calc@^5.0.0, postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-color-function@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-2.0.1.tgz#9ad226f550e8a7c7f8b8a77860545b6dd7f55241" + dependencies: + css-color-function "^1.2.0" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + postcss-value-parser "^3.3.0" + +postcss-color-gray@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-3.0.1.tgz#74432ede66dd83b1d1363565c68b376e18ff6770" + dependencies: + color "^0.11.3" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + reduce-function-call "^1.0.1" + +postcss-color-hex-alpha@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz#44fd6ecade66028648c881cb6504cdcbfdc6cd09" + dependencies: + color "^0.10.1" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + +postcss-color-hsl@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-color-hsl/-/postcss-color-hsl-1.0.5.tgz#f53bb1c348310ce307ad89e3181a864738b5e687" + dependencies: + postcss "^5.2.0" + postcss-value-parser "^3.3.0" + units-css "^0.4.0" + +postcss-color-hwb@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-hwb/-/postcss-color-hwb-2.0.1.tgz#d63afaf9b70cb595f900a29c9fe57bf2a32fabec" + dependencies: + color "^0.11.4" + postcss "^5.0.4" + postcss-message-helpers "^2.0.0" + reduce-function-call "^1.0.1" + +postcss-color-rebeccapurple@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.1.tgz#74c6444e7cbb7d85613b5f7286df7a491608451c" + dependencies: + color "^0.11.4" + postcss "^5.0.4" + +postcss-color-rgb@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-1.1.4.tgz#f29243e22e8e8c13434474092372d4ce605be8bc" + dependencies: + postcss "^5.2.0" + postcss-value-parser "^3.3.0" + +postcss-color-rgba-fallback@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz#6d29491be5990a93173d47e7c76f5810b09402ba" + dependencies: + postcss "^5.0.0" + postcss-value-parser "^3.0.2" + rgb-hex "^1.0.0" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-cssnext@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/postcss-cssnext/-/postcss-cssnext-2.11.0.tgz#31e68f001e409604da703b66de14b8b8c8c9f2b1" + dependencies: + autoprefixer "^6.0.2" + caniuse-api "^1.5.3" + chalk "^1.1.1" + pixrem "^3.0.0" + pleeease-filters "^3.0.0" + postcss "^5.0.4" + postcss-apply "^0.3.0" + postcss-attribute-case-insensitive "^1.0.1" + postcss-calc "^5.0.0" + postcss-color-function "^2.0.0" + postcss-color-gray "^3.0.0" + postcss-color-hex-alpha "^2.0.0" + postcss-color-hsl "^1.0.5" + postcss-color-hwb "^2.0.0" + postcss-color-rebeccapurple "^2.0.0" + postcss-color-rgb "^1.1.4" + postcss-color-rgba-fallback "^2.0.0" + postcss-custom-media "^5.0.0" + postcss-custom-properties "^5.0.0" + postcss-custom-selectors "^3.0.0" + postcss-font-family-system-ui "^1.0.1" + postcss-font-variant "^2.0.0" + postcss-image-set-polyfill "^0.3.3" + postcss-initial "^1.3.1" + postcss-media-minmax "^2.1.0" + postcss-nesting "^2.0.5" + postcss-pseudo-class-any-link "^1.0.0" + postcss-pseudoelements "^3.0.0" + postcss-replace-overflow-wrap "^1.0.0" + postcss-selector-matches "^2.0.0" + postcss-selector-not "^2.0.0" + +postcss-custom-media@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz#138d25a184bf2eb54de12d55a6c01c30a9d8bd81" + dependencies: + postcss "^5.0.0" + +postcss-custom-properties@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz#9719d78f2da9cf9f53810aebc23d4656130aceb1" + dependencies: + balanced-match "^0.4.2" + postcss "^5.0.0" + +postcss-custom-selectors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz#8f81249f5ed07a8d0917cf6a39fe5b056b7f96ac" + dependencies: + balanced-match "^0.2.0" + postcss "^5.0.0" + postcss-selector-matches "^2.0.0" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-flexbugs-fixes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51" + dependencies: + postcss "^6.0.1" + +postcss-font-family-system-ui@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-1.0.2.tgz#3e1a5e3fb7e31e5e9e71439ccb0e8014556927c7" + dependencies: + lodash "^4.17.4" + postcss "^5.2.12" + postcss-value-parser "^3.3.0" + +postcss-font-variant@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-2.0.1.tgz#7ca29103f59fa02ca3ace2ca22b2f756853d4ef8" + dependencies: + postcss "^5.0.4" + +postcss-image-set-polyfill@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181" + dependencies: + postcss "^6.0.1" + postcss-media-query-parser "^0.2.3" + +postcss-import@^8.1.2: + version "8.2.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-8.2.0.tgz#f92fd2454e21ef4efb1e75c00c47ac03f4d1397c" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + promise-each "^2.2.0" + read-cache "^1.0.0" + resolve "^1.1.7" + optionalDependencies: + pkg-resolve "^0.1.7" + +postcss-initial@^1.3.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-1.5.3.tgz#20c3e91c96822ddb1bed49508db96d56bac377d0" + dependencies: + lodash.template "^4.2.4" + postcss "^5.0.19" + +postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-0.13.0.tgz#72fdaf0d29444df77d3751ce4e69dc40bc99ed85" + dependencies: + loader-utils "^0.2.15" + postcss "^5.2.0" + +postcss-loader@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.6.tgz#8c7e0055a3df1889abc6bad52dd45b2f41bbc6fc" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.2" + postcss-load-config "^1.2.0" + schema-utils "^0.3.0" + +postcss-media-minmax@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz#444c5cf8926ab5e4fd8a2509e9297e751649cdf8" + dependencies: + postcss "^5.0.4" + +postcss-media-query-parser@^0.2.3: + 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" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + 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.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-nesting@^2.0.5: + version "2.3.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-2.3.1.tgz#94a6b6a4ef707fbec20a87fee5c957759b4e01cf" + dependencies: + postcss "^5.0.19" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-pseudo-class-any-link@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz#903239196401d335fe73ac756186fa62e693af26" + dependencies: + postcss "^5.0.3" + postcss-selector-parser "^1.1.4" + +postcss-pseudoelements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz#6c682177c7900ba053b6df17f8c590284c7b8bbc" + dependencies: + postcss "^5.0.4" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-replace-overflow-wrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz#f0a03b31eab9636a6936bfd210e2aef1b434a643" + dependencies: + postcss "^5.0.16" + +postcss-reporter@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-1.4.1.tgz#c136f0a5b161915f379dd3765c61075f7e7b9af2" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-selector-matches@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz#fa0f43be57b68e77aa4cd11807023492a131027f" + dependencies: + balanced-match "^0.4.2" + postcss "^5.0.0" + +postcss-selector-not@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz#c73ad21a3f75234bee7fee269e154fd6a869798d" + dependencies: + balanced-match "^0.2.0" + postcss "^5.0.0" + +postcss-selector-parser@^1.1.4: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + 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.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" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +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.19, postcss@^5.0.2, 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.1, postcss@^5.2.0, postcss@^5.2.12, postcss@^5.2.16: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.6: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.9.tgz#54819766784a51c65b1ec4d54c2f93765438c35a" + dependencies: + chalk "^2.1.0" + source-map "^0.5.6" + supports-color "^4.2.1" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.7, private@~0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +promise-each@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60" + dependencies: + any-promise "^0.1.0" + +promise.prototype.finally@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.0.0.tgz#afb1710ff2068562966f6d006d12c3107c7a4f39" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + function-bind "^1.1.0" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@15.5.8: + version "15.5.8" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" + dependencies: + fbjs "^0.8.9" + +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.5.9: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + +proper-lockfile@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-1.2.0.tgz#ceff5dd89d3e5f10fb75e1e8e76bc75801a59c34" + dependencies: + err-code "^1.0.0" + extend "^3.0.0" + graceful-fs "^4.1.2" + retry "^0.10.0" + +proxy-addr@~1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.4.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +pump@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +qs@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" + +qs@6.5.0, qs@^6.4.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-3.0.3.tgz#ae2e14b4d05071d4e9b9eb4873c35b0dcd42e638" + dependencies: + strict-uri-encode "^1.0.0" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0, querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +radium@^0.19.0: + version "0.19.4" + resolved "https://registry.yarnpkg.com/radium/-/radium-0.19.4.tgz#56aa49fde6181d2f5e1fa57b4710ffd0c23de820" + dependencies: + array-find "^1.0.0" + exenv "^1.2.1" + inline-style-prefixer "^2.0.5" + prop-types "^15.5.8" + +raf@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/raf/-/raf-2.0.4.tgz#4993e453ea5275bf6ef07a163bdfe9a23233b623" + dependencies: + performance-now "~0.1.3" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-loader@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + +rc@^1.1.2, rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-component-width-mixin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-component-width-mixin/-/react-component-width-mixin-2.0.0.tgz#9612806299ccf3de2304f8d40fb02e7c14d2a131" + dependencies: + element-resize-event "^2.0.0" + +react-deep-force-update@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz#bcd31478027b64b3339f108921ab520b4313dc2c" + +react-docgen@^2.15.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.17.0.tgz#b0f3e85af955714e1067593c1043cb82611a93d1" + dependencies: + async "^2.1.4" + babel-runtime "^6.9.2" + babylon "~5.8.3" + commander "^2.9.0" + doctrine "^2.0.0" + node-dir "^0.1.10" + recast "^0.12.6" + +react-document-title@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/react-document-title/-/react-document-title-2.0.3.tgz#bbf922a0d71412fc948245e4283b2412df70f2b9" + dependencies: + prop-types "^15.5.6" + react-side-effect "^1.0.2" + +react-dom-factories@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.1.tgz#c50692ac5ff1adb39d86dfe6dbe3485dacf58455" + +react-dom@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react-helmet@^5.0.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-5.1.3.tgz#cd40626593a29eecf684b6d38d711f44c48188af" + dependencies: + deep-equal "^1.0.1" + object-assign "^4.1.1" + prop-types "^15.5.4" + react-side-effect "^1.1.0" + +react-hot-api@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/react-hot-api/-/react-hot-api-0.4.7.tgz#a7e22a56d252e11abd9366b61264cf4492c58171" + +react-hot-loader@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-1.3.1.tgz#c95647ae78b73dfceff6ec71ffcb04182ff6daf9" + dependencies: + react-hot-api "^0.4.5" + source-map "^0.4.4" + +react-html-attributes@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/react-html-attributes/-/react-html-attributes-1.4.1.tgz#97b5ec710da68833598c8be6f89ac436216840a5" + dependencies: + html-element-attributes "^1.0.0" + +react-icon-base@2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.0.7.tgz#0bd18736bd6ce79ca6d69ce8387a07fb8d4ceffe" + dependencies: + prop-types "15.5.8" + +react-icons@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-2.2.5.tgz#f942501c21a4cc0456ce2bbee5032c93f6051dcf" + dependencies: + react-icon-base "2.0.7" + +react-inspector@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.1.4.tgz#2123fab74f68ae3136fbd02392fadb764326d04d" + dependencies: + babel-runtime "^6.23.0" + is-dom "^1.0.9" + +react-komposer@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/react-komposer/-/react-komposer-1.13.1.tgz#4b8ac4bcc71323bd7413dcab95c831197f50eed0" + dependencies: + babel-runtime "6.x.x" + hoist-non-react-statics "1.x.x" + invariant "2.x.x" + mobx "^2.3.4" + shallowequal "0.2.x" + +react-komposer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-komposer/-/react-komposer-2.0.0.tgz#b964738014a9b4aee494a83c0b5b833d66072a90" + dependencies: + babel-runtime "^6.11.6" + hoist-non-react-statics "^1.2.0" + lodash.pick "^4.4.0" + react-stubber "^1.0.0" + shallowequal "^0.2.2" + +react-modal@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-2.2.4.tgz#a32483c3555bd7677f09bca65d82f51da3abcbc0" + dependencies: + exenv "^1.2.0" + prop-types "^15.5.10" + react-dom-factories "^1.0.0" + +react-motion@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.1.0.tgz#c6742fe6d15c22699ed4fc61bdede9a1cfab7acc" + +react-page-width@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-page-width/-/react-page-width-1.0.1.tgz#264e5bffe3cd2a7d7a9ee9bb800df6333aaac990" + dependencies: + raf "^2.0.4" + +react-proxy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" + dependencies: + lodash "^4.6.1" + react-deep-force-update "^1.0.0" + +react-responsive-grid@^0.3.3: + version "0.3.4" + resolved "https://registry.yarnpkg.com/react-responsive-grid/-/react-responsive-grid-0.3.4.tgz#c94fda1469f36a41e3fc23f63bb6e50f5e866523" + dependencies: + object-assign "^4.0.1" + react-component-width-mixin "^2.0.0" + react-page-width "^1.0.1" + +react-router-scroll@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/react-router-scroll/-/react-router-scroll-0.3.3.tgz#e57200fd863e728fce8e90be933f5315990fc0e6" + dependencies: + history "^2.1.2" + scroll-behavior "^0.8.0" + warning "^3.0.0" + +react-router@^2.6.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-2.8.1.tgz#73e9491f6ceb316d0f779829081863e378ee4ed7" + dependencies: + history "^2.1.2" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.1" + loose-envify "^1.2.0" + warning "^3.0.0" + +react-side-effect@^1.0.2, react-side-effect@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.3.tgz#512c25abe0dec172834c4001ec5c51e04d41bc5c" + dependencies: + exenv "^1.2.1" + shallowequal "^1.0.1" + +react-simple-di@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-simple-di/-/react-simple-di-1.2.0.tgz#dde0e5bf689f391ef2ab02c9043b213fe239c6d0" + dependencies: + babel-runtime "6.x.x" + hoist-non-react-statics "1.x.x" + +react-sizeme@^2.2.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-2.3.4.tgz#dd662ff43d65e7bd37992a2bb86e7d7df8a67836" + dependencies: + element-resize-detector "^1.1.12" + invariant "^2.2.2" + lodash "^4.17.4" + +react-split-pane@^0.1.65: + version "0.1.66" + resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.66.tgz#369085dd07ec1237bda123e73813dcc7dc6502c1" + dependencies: + inline-style-prefixer "^3.0.6" + prop-types "^15.5.10" + react-style-proptype "^3.0.0" + +react-stack-grid@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/react-stack-grid/-/react-stack-grid-0.2.2.tgz#a9f0ba846bb7ffa5dc6464a36b75006e900ca785" + dependencies: + easy-css-transform-builder "^0.0.2" + exenv "^1.2.1" + imagesloaded "^4.1.1" + inline-style-prefixer "^2.0.4" + invariant "^2.2.2" + prop-types "^15.5.10" + react-sizeme "^2.2.0" + react-transition-group "^1.1.3" + shallowequal "^1.0.1" + +react-stubber@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-stubber/-/react-stubber-1.0.0.tgz#41ee2cac72d4d4fd70a63896da98e13739b84628" + dependencies: + babel-runtime "^6.5.0" + +react-style-proptype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.0.0.tgz#89e0b646f266c656abb0f0dd8202dbd5036c31e6" + dependencies: + prop-types "^15.5.4" + +react-transform-catch-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz#1b4d4a76e97271896fc16fe3086c793ec88a9eeb" + +react-transform-hmr@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" + dependencies: + global "^4.3.0" + react-proxy "^1.1.7" + +react-transition-group@^1.1.2, react-transition-group@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f" + dependencies: + chain-function "^1.0.0" + dom-helpers "^3.2.0" + loose-envify "^1.3.1" + prop-types "^15.5.6" + warning "^3.0.0" + +react-treebeard@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/react-treebeard/-/react-treebeard-2.0.3.tgz#cd644209c1be2fe2be3ae4bca8350ed6abf293d6" + dependencies: + babel-runtime "^6.23.0" + deep-equal "^1.0.1" + prop-types "^15.5.8" + radium "^0.19.0" + shallowequal "^0.2.2" + velocity-react "^1.3.1" + +react-typography@^0.15.0: + version "0.15.10" + resolved "https://registry.yarnpkg.com/react-typography/-/react-typography-0.15.10.tgz#1ece7bbd856735bd2ada4f6c40be508e994655a8" + +react@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + dependencies: + pify "^2.3.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +recast@^0.12.6: + version "0.12.6" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.6.tgz#4b0fb82feb1d10b3bd62d34943426d9b3ed30d4c" + dependencies: + ast-types "0.9.11" + core-js "^2.4.1" + esprima "~4.0.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redbox-react@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.5.0.tgz#04dab11557d26651bf3562a67c22ace56c5d3967" + dependencies: + error-stack-parser "^1.3.6" + object-assign "^4.0.1" + prop-types "^15.5.4" + sourcemapped-stacktrace "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +reduce@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.1.tgz#14fa2e5ff1fc560703a020cbb5fbaab691565804" + dependencies: + object-keys "~1.0.0" + +redux@^3.6.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regenerator-transform@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + 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" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +request@2, request@^2.58.0, request@^2.67.0, request@^2.72.0, request@^2.74.0, request@^2.79.0, request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve@^1.1.6, resolve@^1.1.7: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + +rgb-hex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-1.0.0.tgz#bfaf8cd9cd9164b5a26d71eb4f15a0965324b3c1" + +rgb@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +rollup@^0.36.3: + version "0.36.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.36.4.tgz#a224494c5386c1d73d38f7bb86f69f5eb011a3d2" + dependencies: + source-map-support "^0.4.0" + +rsvp@^3.0.13, rsvp@^3.0.18: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + +safe-buffer@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sane@^1.3.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.7.0.tgz#b3579bccb45c94cf20355cc81124990dfd346e30" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sass-graph@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^7.0.0" + +sass-loader@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-4.1.1.tgz#79ef9468cf0bf646c29529e1f2cba6bd6e51c7bc" + dependencies: + async "^2.0.1" + loader-utils "^0.2.15" + object-assign "^4.1.0" + +sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +scroll-behavior@^0.8.0: + version "0.8.2" + resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.8.2.tgz#ace13e40b001d8d4d007aec0e7fb668cf9043546" + dependencies: + dom-helpers "^2.4.0" + invariant "^2.2.1" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +seek-bzip@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + dependencies: + commander "~2.8.1" + +semver-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" + +semver-truncate@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +semver@^4.0.3, semver@^4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" + dependencies: + debug "2.6.8" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + fresh "0.5.0" + http-errors "~1.6.2" + mime "1.3.4" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-favicon@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.3.tgz#5986b17b0502642b641c21f818b1acce32025d23" + dependencies: + etag "~1.8.0" + fresh "0.5.0" + ms "2.0.0" + parseurl "~1.3.1" + safe-buffer "5.0.1" + +serve-static@1.12.4: + version "1.12.4" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.15.4" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +shallowequal@0.2.x, shallowequal@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" + dependencies: + lodash.keys "^3.1.2" + +shallowequal@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.0.2.tgz#1561dbdefb8c01408100319085764da3fcf83f8f" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +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.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shot@1.x.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/shot/-/shot-1.7.0.tgz#f2329d7ef33afcf03d44ce41abae8148ae170532" + dependencies: + hoek "2.x.x" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +sitemap@^1.12.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-1.13.0.tgz#569cbe2180202926a62a266cd3de09c9ceb43f83" + dependencies: + underscore "^1.7.0" + url-join "^1.1.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +source-map-support@^0.4.0, source-map-support@^0.4.15: + version "0.4.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" + dependencies: + source-map "^0.5.6" + +source-map-support@~0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" + dependencies: + source-map "0.1.32" + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + dependencies: + amdefine ">=0.0.4" + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +sourcemapped-stacktrace@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.7.tgz#17e05374ff78b71a9d89ad3975a49f22725ba935" + dependencies: + source-map "0.5.6" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stackframe@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +statehood@2.x.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/statehood/-/statehood-2.1.1.tgz#01f170b66c5e925aaf679a9d322ba59186fc0009" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + iron "2.x.x" + items "1.x.x" + joi "6.x.x" + +static-site-generator-webpack-plugin@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-2.1.1.tgz#96df57c67bc1143cecf0c592938b5fe6693c1cef" + dependencies: + bluebird "^3.0.5" + eval "^0.1.0" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stdout-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-http@^2.3.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.padstart@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/string/-/string-3.3.3.tgz#5ea211cd92d228e184294990a6cc97b366a77cb0" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-dirs@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" + dependencies: + chalk "^1.0.0" + get-stdin "^4.0.1" + is-absolute "^0.1.5" + is-natural-number "^2.0.0" + minimist "^1.1.0" + sum-up "^1.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +strip-outer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8" + dependencies: + escape-string-regexp "^1.0.2" + +style-loader@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10" + dependencies: + loader-utils "^1.0.2" + +style-loader@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.17.0.tgz#e8254bccdb7af74bd58274e36107b4d5ab4df310" + dependencies: + loader-utils "^1.0.2" + +subtext@1.x.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/subtext/-/subtext-1.1.1.tgz#0c91825ae65d517855593d831e33ef75a284156b" + dependencies: + boom "2.x.x" + content "1.x.x" + hoek "2.x.x" + pez "1.x.x" + qs "4.x.x" + wreck "6.x.x" + +sum-up@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + dependencies: + chalk "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + dependencies: + has-flag "^2.0.0" + +svg-tag-names@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-1.1.1.tgz#9641b29ef71025ee094c7043f7cdde7d99fbd50a" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +symbol-observable@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +systemjs-builder@0.16.10: + version "0.16.10" + resolved "https://registry.yarnpkg.com/systemjs-builder/-/systemjs-builder-0.16.10.tgz#5e1becb5ed371ebf9712823a4f7ff54716085c92" + dependencies: + babel-core "^6.24.1" + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-amd-system-wrapper "^0.3.7" + babel-plugin-transform-cjs-system-wrapper "^0.6.2" + babel-plugin-transform-es2015-modules-systemjs "^6.6.5" + babel-plugin-transform-global-system-wrapper "^0.3.4" + babel-plugin-transform-system-register "^0.0.1" + bluebird "^3.3.4" + data-uri-to-buffer "0.0.4" + es6-template-strings "^2.0.0" + glob "^7.0.3" + mkdirp "^0.5.1" + rollup "^0.36.3" + source-map "^0.5.3" + systemjs "^0.19.46" + traceur "0.0.105" + uglify-js "^2.6.1" + +systemjs@0.20.18: + version "0.20.18" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.20.18.tgz#2dfd55a970cf8a04fa53c998c00d8226a83b1db0" + +systemjs@^0.19.46: + version "0.19.47" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.19.47.tgz#c8c93937180f3f5481c769cd2720763fb4a31c6f" + dependencies: + when "^3.7.5" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-fs@^1.13.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20" + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar-stream@^1.1.1, tar-stream@^1.1.2: + version "1.5.4" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tar@^2.0.0, tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + +tempfile@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +timers-browserify@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + dependencies: + setimmediate "^1.0.4" + +tinytim@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/tinytim/-/tinytim-0.1.1.tgz#c968a1e5559ad9553224ef7627bab34e3caef8a8" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-factory@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +toml-loader@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toml-loader/-/toml-loader-1.0.0.tgz#05249b9294b623601148260caa480b22a653a19a" + dependencies: + toml "^2.2.2" + +toml@^2.2.2, toml@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.2.tgz#5eded5ca42887924949fd06eb0e955656001e834" + +topo@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" + dependencies: + hoek "2.x.x" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +tracer@^0.8.9: + version "0.8.11" + resolved "https://registry.yarnpkg.com/tracer/-/tracer-0.8.11.tgz#5941c67404410d86665b75bba68bb1c9d2c3cacd" + dependencies: + colors "1.1.2" + dateformat "2.0.0" + tinytim "0.1.1" + +traceur@0.0.105: + version "0.0.105" + resolved "https://registry.yarnpkg.com/traceur/-/traceur-0.0.105.tgz#5cf9dee83d6b77861c3d6c44d53859aed7ab0479" + dependencies: + commander "2.9.x" + glob "5.0.x" + rsvp "^3.0.13" + semver "^4.3.3" + source-map-support "~0.2.8" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + dependencies: + escape-string-regexp "^1.0.2" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +ts-loader@^1.2.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-1.3.3.tgz#30c6203e1e66b841a88701ed8858f1725d94b026" + dependencies: + colors "^1.0.3" + enhanced-resolve "^3.0.0" + loader-utils "^0.2.6" + object-assign "^4.1.0" + semver "^5.0.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typography-normalize@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/typography-normalize/-/typography-normalize-0.14.0.tgz#1d77c1fe2aaf4a51b3673c4c85c85a65a2d4b573" + +typography-plugin-code@^0.15.9: + version "0.15.11" + resolved "https://registry.yarnpkg.com/typography-plugin-code/-/typography-plugin-code-0.15.11.tgz#3d559b82e587fbbe783e6ffde5572f3684111445" + dependencies: + gray-percentage "^2.0.0" + lodash "^4.13.1" + +typography@^0.15.8: + version "0.15.12" + resolved "https://registry.yarnpkg.com/typography/-/typography-0.15.12.tgz#333189035f85e585c0a5ac72669dd508e394a73e" + dependencies: + compass-vertical-rhythm "^1.3.0" + decamelize "^1.2.0" + gray-percentage "^2.0.0" + lodash "^4.13.1" + modularscale "^1.0.2" + object-assign "^4.1.0" + typography-normalize "^0.14.0" + +ua-parser-js@^0.7.9: + version "0.7.14" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" + +uc.micro@^1.0.1, uc.micro@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" + +uglify-js@^2.6.1, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@~2.7.3: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +underscore.string@^3.2.2: + version "3.3.4" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" + dependencies: + sprintf-js "^1.0.3" + util-deprecate "^1.0.2" + +underscore@^1.7.0: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +units-css@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/units-css/-/units-css-0.4.0.tgz#d6228653a51983d7c16ff28f8b9dc3b1ffed3a07" + dependencies: + isnumeric "^0.2.0" + viewport-dimensions "^0.2.0" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +url-join@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" + +url-loader@^0.5.8, url-loader@^0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + dependencies: + ip-regex "^1.0.1" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + 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" + +util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" + +velocity-animate@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.0.tgz#fc8771d8dfe1136ff02a707e10fbb0957c4b030f" + +velocity-react@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.3.3.tgz#d6d47276cfc8be2a75623879b20140ac58c1b82b" + dependencies: + lodash "^3.10.1" + prop-types "^15.5.8" + react-transition-group "^1.1.2" + velocity-animate "^1.4.0" + +vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +viewport-dimensions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz#de740747db5387fd1725f5175e91bac76afdf36c" + +vinyl-assign@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" + dependencies: + object-assign "^4.0.1" + readable-stream "^2.0.0" + +vinyl-fs@^2.2.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vise@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vise/-/vise-1.0.0.tgz#28345be4de5a341e15fd2816fd9ea3e7303e8df3" + dependencies: + hoek "2.x.x" + +vision@2.x.x: + version "2.0.1" + resolved "https://registry.yarnpkg.com/vision/-/vision-2.0.1.tgz#d012255ba6ee426d0696a34e1df332fec55e673c" + dependencies: + boom "2.x.x" + hoek "^2.9.x" + items "^1.1.x" + joi "6.x.x" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +ware@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" + dependencies: + wrap-fn "^0.1.0" + +warning@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901" + dependencies: + loose-envify "^1.0.0" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watch@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +webpack-configurator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/webpack-configurator/-/webpack-configurator-0.3.1.tgz#d16802afa674101a0cbfa6fc344d415c9649540b" + dependencies: + lodash "3.10.1" + +webpack-core@~0.6.9: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + +webpack-dev-middleware@^1.10.2, webpack-dev-middleware@^1.4.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-hot-middleware@^2.17.1, webpack-hot-middleware@^2.18.0, webpack-hot-middleware@^2.6.0: + version "2.18.2" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz#84dee643f037c3d59c9de142548430371aa8d3b2" + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-require@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/webpack-require/-/webpack-require-0.0.16.tgz#df04a799bbd96e58e05abd66b4db77f16f75d184" + dependencies: + invariant "^2.1.0" + memory-fs "^0.2.0" + object-assign "^3.0.0" + path-is-absolute "^1.0.0" + source-map "^0.4.4" + webpack "^1.11.0" + +webpack-sources@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" + dependencies: + source-list-map "~0.1.7" + source-map "~0.5.3" + +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@^1.11.0, webpack@^1.12.9, webpack@^1.13.2, webpack@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.7.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.9" + +"webpack@^2.5.1 || ^3.0.0": + version "3.5.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +when@^3.7.5: + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.0.9, which@^1.1.1, which@^1.2.12, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-fn@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" + dependencies: + co "3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +wreck@6.x.x: + version "6.3.0" + resolved "https://registry.yarnpkg.com/wreck/-/wreck-6.3.0.tgz#a1369769f07bbb62d6a378336a7871fc773c740b" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yaml-loader@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/yaml-loader/-/yaml-loader-0.4.0.tgz#4aae447d13c1aa73a989d8a2a5309b0b1a3ca353" + dependencies: + js-yaml "^3.5.2" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000000..4b5ccd54f0a4 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,12103 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@hypnosphi/fuse.js@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@hypnosphi/fuse.js/-/fuse.js-3.0.9.tgz#ea99f6121b4a8f065b4c71f85595db2714498807" + +"@kadira/storybook-database-cloud@*": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@kadira/storybook-database-cloud/-/storybook-database-cloud-2.3.2.tgz#28864d7d0a1e17e7aa864ef4d87f69a5c52e7a35" + dependencies: + graphqlify "^1.0.0" + uuid "^2.0.3" + whatwg-fetch "^1.0.0" + +"@kadira/storybook-deployer@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@kadira/storybook-deployer/-/storybook-deployer-1.2.0.tgz#1708f5cb37fa08ab4173b1bd99df6f4717dfae12" + dependencies: + git-url-parse "^6.0.2" + shelljs "^0.7.0" + +"@storybook/react-fuzzy@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@storybook/react-fuzzy/-/react-fuzzy-0.4.0.tgz#2961e8a1f6c1afcce97e9e9a14d1dfe9d9061087" + dependencies: + babel-runtime "^6.23.0" + classnames "^2.2.5" + fuse.js "^3.0.1" + prop-types "^15.5.9" + +"@timer/detect-port@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@timer/detect-port/-/detect-port-1.1.3.tgz#1383abd67f9a5d683df5276f8a92d60bdf9abb90" + dependencies: + address "^1.0.1" + debug "^2.6.0" + +"@types/mz@0.0.31": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/mz/-/mz-0.0.31.tgz#a4d80c082fefe71e40a7c0f07d1e6555bbbc7b52" + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^8.0.0": + version "8.0.25" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.25.tgz#66ecaf4df93f5281b48427ee96fbcdfc4f0cdce1" + +"@types/node@^7.0.12": + version "7.0.43" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" + +"@types/react@>=15": + version "16.0.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.5.tgz#d713cf67cc211dea20463d2a0b66005c22070c4b" + +"@types/react@^15.0.21", "@types/react@^15.0.22": + version "15.6.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.2.tgz#2c8495aa853cb37591d0046e9afe544fb837c612" + +JSONStream@^1.0.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +absolute-path@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" + +accepts@~1.2.12, accepts@~1.2.13: + version "1.2.13" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea" + dependencies: + mime-types "~2.1.6" + negotiator "0.5.3" + +accepts@~1.3.0, accepts@~1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn-globals@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3, acorn@^4.0.4: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + +address@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" + +address@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" + +address@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" + +agent-base@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +airbnb-js-shims@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.3.0.tgz#aac46d80057fb0b414f70e06d07e362fd99ee2fa" + dependencies: + array-includes "^3.0.3" + es5-shim "^4.5.9" + es6-shim "^0.35.3" + function.prototype.name "^1.0.3" + object.entries "^1.0.4" + object.getownpropertydescriptors "^2.0.3" + object.values "^1.0.4" + promise.prototype.finally "^3.0.0" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + +ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.11.2, ajv@^4.7.0, ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +alter@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/alter/-/alter-0.2.0.tgz#c7588808617572034aae62480af26b1d4d1cb3cd" + dependencies: + stable "~0.1.3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +anser@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.3.0.tgz#65b42f01119edb5a2fc8ea6f0892274cbcbec6b1" + +anser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.1.tgz#c3641863a962cebef941ea2c8706f2cb4f0716bd" + +ansi-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" + dependencies: + string-width "^1.0.1" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +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-escapes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-regex@^2.0.0, ansi-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.0.0, ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +ansi@^0.3.0, ansi@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +app-root-path@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +argv@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + +aria-query@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.5.0.tgz#85e3152cd8cc5bab18dbed61cd9c4fce54fa79c3" + dependencies: + ast-types-flow "0.0.7" + +aria-query@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24" + dependencies: + ast-types-flow "0.0.7" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-iterate@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.1.tgz#865bf7f8af39d6b0982c60902914ac76bc0108f6" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +art@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/art/-/art-0.10.1.tgz#38541883e399225c5e193ff246e8f157cf7b2146" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assertion-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + +ast-traverse@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6" + +ast-types-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + +ast-types@0.8.12: + version "0.8.12" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" + +ast-types@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" + +ast-types@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +async@^1.4.0, async@^1.5.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1, async@^2.1.2, async@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +autoprefixer@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.0.tgz#ae4913adc221fa6ca5ad3a6f8039f6a5c06b3877" + dependencies: + browserslist "^2.1.2" + caniuse-lite "^1.0.30000669" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.1" + postcss-value-parser "^3.2.3" + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.2.tgz#fbeaf07d48fd878e0682bf7cbeeade728adb2b18" + dependencies: + browserslist "^2.1.5" + caniuse-lite "^1.0.30000697" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.6" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +axobject-query@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" + dependencies: + ast-types-flow "0.0.7" + +babel-cli@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.24.1" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-core@^5: + version "5.8.38" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558" + dependencies: + babel-plugin-constant-folding "^1.0.1" + babel-plugin-dead-code-elimination "^1.0.2" + babel-plugin-eval "^1.0.1" + babel-plugin-inline-environment-variables "^1.0.1" + babel-plugin-jscript "^1.0.4" + babel-plugin-member-expression-literals "^1.0.1" + babel-plugin-property-literals "^1.0.1" + babel-plugin-proto-to-assign "^1.0.3" + babel-plugin-react-constant-elements "^1.0.3" + babel-plugin-react-display-name "^1.0.3" + babel-plugin-remove-console "^1.0.1" + babel-plugin-remove-debugger "^1.0.1" + babel-plugin-runtime "^1.0.7" + babel-plugin-undeclared-variables-check "^1.0.2" + babel-plugin-undefined-to-void "^1.1.6" + babylon "^5.8.38" + bluebird "^2.9.33" + chalk "^1.0.0" + convert-source-map "^1.1.0" + core-js "^1.0.0" + debug "^2.1.1" + detect-indent "^3.0.0" + esutils "^2.0.0" + fs-readdir-recursive "^0.1.0" + globals "^6.4.0" + home-or-tmp "^1.0.0" + is-integer "^1.0.4" + js-tokens "1.0.1" + json5 "^0.4.0" + lodash "^3.10.0" + minimatch "^2.0.3" + output-file-sync "^1.1.0" + path-exists "^1.0.0" + path-is-absolute "^1.0.0" + private "^0.1.6" + regenerator "0.8.40" + regexpu "^1.3.0" + repeating "^1.1.2" + resolve "^1.1.6" + shebang-regex "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + source-map-support "^0.2.10" + to-fast-properties "^1.0.0" + trim-right "^1.0.0" + try-resolve "^1.0.0" + +babel-core@^6.0.0, babel-core@^6.21.0, babel-core@^6.25.0, babel-core@^6.26.0, babel-core@^6.7.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-eslint@7.2.3, babel-eslint@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-generator@^6.18.0, babel-generator@^6.21.0, babel-generator@^6.24.1, babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-evaluate-path@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-flip-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb" + +babel-helper-mark-eval-scopes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-remove-or-void@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-to-multiple-sequence-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@20.0.3, babel-jest@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671" + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^4.0.0" + babel-preset-jest "^20.0.3" + +babel-loader@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-loader@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0, babel-plugin-check-es2015-constants@^6.5.0, babel-plugin-check-es2015-constants@^6.7.2, babel-plugin-check-es2015-constants@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-constant-folding@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz#8361d364c98e449c3692bdba51eff0844290aa8e" + +babel-plugin-dead-code-elimination@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz#5f7c451274dcd7cccdbfbb3e0b85dd28121f0f65" + +babel-plugin-dynamic-import-node@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.0.2.tgz#adb5bc8f48a89311540395ae9f0cc3ed4b10bb2e" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-eval@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz#a2faed25ce6be69ade4bfec263f70169195950da" + +babel-plugin-external-helpers@^6.18.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-inline-environment-variables@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz#1f58ce91207ad6a826a8bf645fafe68ff5fe3ffe" + +babel-plugin-istanbul@^4.0.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz#18dde84bf3ce329fddf3f4103fae921456d8e587" + dependencies: + find-up "^2.1.0" + istanbul-lib-instrument "^1.7.2" + test-exclude "^4.1.1" + +babel-plugin-jest-hoist@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" + +babel-plugin-jscript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz#8f342c38276e87a47d5fa0a8bd3d5eb6ccad8fcc" + +babel-plugin-member-expression-literals@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz#cc5edb0faa8dc927170e74d6d1c02440021624d3" + +babel-plugin-minify-builtins@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-constant-folding@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-minify-dead-code-elimination@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3" + dependencies: + babel-helper-evaluate-path "^0.2.0" + babel-helper-mark-eval-scopes "^0.2.0" + babel-helper-remove-or-void "^0.2.0" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-minify-guarded-expressions@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab" + dependencies: + babel-helper-flip-expressions "^0.2.0" + +babel-plugin-minify-infinity@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03" + +babel-plugin-minify-mangle-names@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529" + dependencies: + babel-helper-mark-eval-scopes "^0.2.0" + +babel-plugin-minify-numeric-literals@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1" + +babel-plugin-minify-replace@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0" + +babel-plugin-minify-simplify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0" + dependencies: + babel-helper-flip-expressions "^0.2.0" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.2.0" + +babel-plugin-minify-type-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17" + dependencies: + babel-helper-is-void-0 "^0.2.0" + +babel-plugin-property-literals@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz#0252301900192980b1c118efea48ce93aab83336" + +babel-plugin-proto-to-assign@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz#c49e7afd02f577bc4da05ea2df002250cf7cd123" + dependencies: + lodash "^3.9.3" + +babel-plugin-react-constant-elements@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz#946736e8378429cbc349dcff62f51c143b34e35a" + +babel-plugin-react-display-name@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz#754fe38926e8424a4e7b15ab6ea6139dee0514fc" + +babel-plugin-react-docgen@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.7.0.tgz#87e72d3d54b182a30706b740bb4d116f59aadc80" + dependencies: + babel-types "^6.24.1" + lodash "4.x.x" + react-docgen "^2.15.0" + +babel-plugin-react-transform@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" + dependencies: + lodash "^4.6.1" + +babel-plugin-remove-console@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz#d8f24556c3a05005d42aaaafd27787f53ff013a7" + +babel-plugin-remove-debugger@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz#fd2ea3cd61a428ad1f3b9c89882ff4293e8c14c7" + +babel-plugin-runtime@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz#bf7c7d966dd56ecd5c17fa1cb253c9acb7e54aaf" + +babel-plugin-syntax-async-functions@^6.13.0, babel-plugin-syntax-async-functions@^6.5.0, babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +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.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.5.0, babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +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, 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" + +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.18.0, babel-plugin-syntax-flow@^6.5.0, babel-plugin-syntax-flow@^6.8.0: + 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.5.0, babel-plugin-syntax-jsx@^6.8.0: + 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.5.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.20.0, babel-plugin-syntax-trailing-function-commas@^6.22.0, babel-plugin-syntax-trailing-function-commas@^6.5.0, babel-plugin-syntax-trailing-function-commas@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" + dependencies: + babel-helper-remap-async-to-generator "^6.16.0" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.0.0" + +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-class-properties@6.24.1, babel-plugin-transform-class-properties@^6.24.1, babel-plugin-transform-class-properties@^6.5.0, babel-plugin-transform-class-properties@^6.6.0, babel-plugin-transform-class-properties@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-do-expressions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" + dependencies: + babel-plugin-syntax-do-expressions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0, babel-plugin-transform-es2015-arrow-functions@^6.5.0, babel-plugin-transform-es2015-arrow-functions@^6.5.2, babel-plugin-transform-es2015-arrow-functions@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0, babel-plugin-transform-es2015-block-scoped-functions@^6.6.5, babel-plugin-transform-es2015-block-scoped-functions@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1, babel-plugin-transform-es2015-block-scoping@^6.5.0, babel-plugin-transform-es2015-block-scoping@^6.7.1, babel-plugin-transform-es2015-block-scoping@^6.8.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.5.0, babel-plugin-transform-es2015-classes@^6.6.5, babel-plugin-transform-es2015-classes@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1, babel-plugin-transform-es2015-computed-properties@^6.5.0, babel-plugin-transform-es2015-computed-properties@^6.6.5, babel-plugin-transform-es2015-computed-properties@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@6.x, babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0, babel-plugin-transform-es2015-destructuring@^6.5.0, babel-plugin-transform-es2015-destructuring@^6.6.5, babel-plugin-transform-es2015-destructuring@^6.8.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0, babel-plugin-transform-es2015-for-of@^6.5.0, babel-plugin-transform-es2015-for-of@^6.6.0, babel-plugin-transform-es2015-for-of@^6.8.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@6.x, babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1, babel-plugin-transform-es2015-function-name@^6.5.0, babel-plugin-transform-es2015-function-name@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0, babel-plugin-transform-es2015-literals@^6.5.0, babel-plugin-transform-es2015-literals@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@6.x, babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.5.0, babel-plugin-transform-es2015-modules-commonjs@^6.7.0, babel-plugin-transform-es2015-modules-commonjs@^6.8.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1, babel-plugin-transform-es2015-object-super@^6.6.5, babel-plugin-transform-es2015-object-super@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@6.x, babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1, babel-plugin-transform-es2015-parameters@^6.5.0, babel-plugin-transform-es2015-parameters@^6.7.0, babel-plugin-transform-es2015-parameters@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@6.x, babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1, babel-plugin-transform-es2015-shorthand-properties@^6.5.0, babel-plugin-transform-es2015-shorthand-properties@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@6.x, babel-plugin-transform-es2015-spread@^6.22.0, babel-plugin-transform-es2015-spread@^6.5.0, babel-plugin-transform-es2015-spread@^6.6.5, babel-plugin-transform-es2015-spread@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@6.x, babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0, babel-plugin-transform-es2015-template-literals@^6.5.0, babel-plugin-transform-es2015-template-literals@^6.6.5, babel-plugin-transform-es2015-template-literals@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@6.x, babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-es3-member-expression-literals@^6.5.0, babel-plugin-transform-es3-member-expression-literals@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz#733d3444f3ecc41bef8ed1a6a4e09657b8969ebb" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es3-property-literals@^6.5.0, babel-plugin-transform-es3-property-literals@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz#b2078d5842e22abf40f73e8cde9cd3711abd5758" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.21.0, babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-strip-types@^6.5.0, babel-plugin-transform-flow-strip-types@^6.7.0, babel-plugin-transform-flow-strip-types@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-function-bind@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" + dependencies: + babel-plugin-syntax-function-bind "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-inline-consecutive-adds@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" + +babel-plugin-transform-md-import-to-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-md-import-to-string/-/babel-plugin-transform-md-import-to-string-1.0.6.tgz#f57bf84bb14988cd2a9b8d8262114fa021587e70" + +babel-plugin-transform-member-expression-literals@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.5.tgz#e06ae305cf48d819822e93a70d79269f04d89eec" + +babel-plugin-transform-merge-sibling-variables@^6.8.6: + version "6.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.6.tgz#6d21efa5ee4981f71657fae716f9594bb2622aef" + +babel-plugin-transform-minify-booleans@^6.8.3: + version "6.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.3.tgz#5906ed776d3718250519abf1bace44b0b613ddf9" + +babel-plugin-transform-object-assign@^6.5.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.20.2, babel-plugin-transform-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.23.0, babel-plugin-transform-object-rest-spread@^6.5.0, babel-plugin-transform-object-rest-spread@^6.6.5, babel-plugin-transform-object-rest-spread@^6.8.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-property-literals@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.5.tgz#67ed5930b34805443452c8b9690c7ebe1e206c40" + dependencies: + esutils "^2.0.2" + +babel-plugin-transform-react-constant-elements@6.23.0, babel-plugin-transform-react-constant-elements@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0, babel-plugin-transform-react-display-name@^6.5.0, babel-plugin-transform-react-display-name@^6.8.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0, babel-plugin-transform-react-jsx-source@^6.5.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1, babel-plugin-transform-react-jsx@^6.5.0, babel-plugin-transform-react-jsx@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + dependencies: + regenerator-transform "0.9.11" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1, babel-plugin-transform-regenerator@^6.5.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-regexp-constructors@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" + +babel-plugin-transform-remove-console@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.5.tgz#fde9d2d3d725530b0fadd8d31078402410386810" + +babel-plugin-transform-remove-debugger@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.5.tgz#809584d412bf918f071fdf41e1fdb15ea89cdcd5" + +babel-plugin-transform-remove-undefined@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1" + dependencies: + babel-helper-evaluate-path "^0.2.0" + +babel-plugin-transform-runtime@6.23.0, babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-simplify-comparison-operators@^6.8.5: + version "6.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.5.tgz#a838786baf40cc33a93b95ae09e05591227e43bf" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-undefined-to-void@^6.8.3: + version "6.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.3.tgz#fc52707f6ee1ddc71bb91b0d314fbefdeef9beb4" + +babel-plugin-undeclared-variables-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz#5cf1aa539d813ff64e99641290af620965f65dee" + dependencies: + leven "^1.0.2" + +babel-plugin-undefined-to-void@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz#7f578ef8b78dfae6003385d8417a61eda06e2f81" + +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-polyfill@^6.20.0, babel-polyfill@^6.23.0, babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.5.2.tgz#cd4ae90a6e94b709f97374b33e5f8b983556adef" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-env@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015-node@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz#60b23157024b0cfebf3a63554cb05ee035b4e55f" + dependencies: + babel-plugin-transform-es2015-destructuring "6.x" + babel-plugin-transform-es2015-function-name "6.x" + babel-plugin-transform-es2015-modules-commonjs "6.x" + babel-plugin-transform-es2015-parameters "6.x" + babel-plugin-transform-es2015-shorthand-properties "6.x" + babel-plugin-transform-es2015-spread "6.x" + babel-plugin-transform-es2015-sticky-regex "6.x" + babel-plugin-transform-es2015-unicode-regex "6.x" + semver "5.x" + +babel-preset-es2015@^6.9.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-fbjs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-1.0.0.tgz#c972e5c9b301d4ec9e7971f4aec3e14ac017a8b0" + dependencies: + babel-plugin-check-es2015-constants "^6.7.2" + babel-plugin-syntax-flow "^6.5.0" + babel-plugin-syntax-object-rest-spread "^6.5.0" + babel-plugin-syntax-trailing-function-commas "^6.5.0" + babel-plugin-transform-class-properties "^6.6.0" + babel-plugin-transform-es2015-arrow-functions "^6.5.2" + babel-plugin-transform-es2015-block-scoped-functions "^6.6.5" + babel-plugin-transform-es2015-block-scoping "^6.7.1" + babel-plugin-transform-es2015-classes "^6.6.5" + babel-plugin-transform-es2015-computed-properties "^6.6.5" + babel-plugin-transform-es2015-destructuring "^6.6.5" + babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-literals "^6.5.0" + babel-plugin-transform-es2015-modules-commonjs "^6.7.0" + babel-plugin-transform-es2015-object-super "^6.6.5" + babel-plugin-transform-es2015-parameters "^6.7.0" + babel-plugin-transform-es2015-shorthand-properties "^6.5.0" + babel-plugin-transform-es2015-spread "^6.6.5" + babel-plugin-transform-es2015-template-literals "^6.6.5" + babel-plugin-transform-es3-member-expression-literals "^6.5.0" + babel-plugin-transform-es3-property-literals "^6.5.0" + babel-plugin-transform-flow-strip-types "^6.7.0" + babel-plugin-transform-object-rest-spread "^6.6.5" + object-assign "^4.0.1" + +babel-preset-fbjs@^2.1.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-2.1.4.tgz#22f358e6654073acf61e47a052a777d7bccf03af" + dependencies: + babel-plugin-check-es2015-constants "^6.8.0" + babel-plugin-syntax-class-properties "^6.8.0" + babel-plugin-syntax-flow "^6.8.0" + babel-plugin-syntax-jsx "^6.8.0" + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-plugin-syntax-trailing-function-commas "^6.8.0" + babel-plugin-transform-class-properties "^6.8.0" + babel-plugin-transform-es2015-arrow-functions "^6.8.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.8.0" + babel-plugin-transform-es2015-block-scoping "^6.8.0" + babel-plugin-transform-es2015-classes "^6.8.0" + babel-plugin-transform-es2015-computed-properties "^6.8.0" + babel-plugin-transform-es2015-destructuring "^6.8.0" + babel-plugin-transform-es2015-for-of "^6.8.0" + babel-plugin-transform-es2015-function-name "^6.8.0" + babel-plugin-transform-es2015-literals "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.8.0" + babel-plugin-transform-es2015-object-super "^6.8.0" + babel-plugin-transform-es2015-parameters "^6.8.0" + babel-plugin-transform-es2015-shorthand-properties "^6.8.0" + babel-plugin-transform-es2015-spread "^6.8.0" + babel-plugin-transform-es2015-template-literals "^6.8.0" + babel-plugin-transform-es3-member-expression-literals "^6.8.0" + babel-plugin-transform-es3-property-literals "^6.8.0" + babel-plugin-transform-flow-strip-types "^6.8.0" + babel-plugin-transform-object-rest-spread "^6.8.0" + babel-plugin-transform-react-display-name "^6.8.0" + babel-plugin-transform-react-jsx "^6.8.0" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-jest@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a" + dependencies: + babel-plugin-jest-hoist "^20.0.3" + +babel-preset-minify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc" + dependencies: + babel-plugin-minify-builtins "^0.2.0" + babel-plugin-minify-constant-folding "^0.2.0" + babel-plugin-minify-dead-code-elimination "^0.2.0" + babel-plugin-minify-flip-comparisons "^0.2.0" + babel-plugin-minify-guarded-expressions "^0.2.0" + babel-plugin-minify-infinity "^0.2.0" + babel-plugin-minify-mangle-names "^0.2.0" + babel-plugin-minify-numeric-literals "^0.2.0" + babel-plugin-minify-replace "^0.2.0" + babel-plugin-minify-simplify "^0.2.0" + babel-plugin-minify-type-constructors "^0.2.0" + babel-plugin-transform-inline-consecutive-adds "^0.2.0" + babel-plugin-transform-member-expression-literals "^6.8.5" + babel-plugin-transform-merge-sibling-variables "^6.8.6" + babel-plugin-transform-minify-booleans "^6.8.3" + babel-plugin-transform-property-literals "^6.8.5" + babel-plugin-transform-regexp-constructors "^0.2.0" + babel-plugin-transform-remove-console "^6.8.5" + babel-plugin-transform-remove-debugger "^6.8.5" + babel-plugin-transform-remove-undefined "^0.2.0" + babel-plugin-transform-simplify-comparison-operators "^6.8.5" + babel-plugin-transform-undefined-to-void "^6.8.3" + lodash.isplainobject "^4.0.6" + +babel-preset-react-app@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.0.2.tgz#d062fca5dce68ed9c2615f2fecbc08861720f8e5" + dependencies: + babel-plugin-dynamic-import-node "1.0.2" + babel-plugin-syntax-dynamic-import "6.18.0" + babel-plugin-transform-class-properties "6.24.1" + babel-plugin-transform-object-rest-spread "6.23.0" + babel-plugin-transform-react-constant-elements "6.23.0" + babel-plugin-transform-react-jsx "6.24.1" + babel-plugin-transform-react-jsx-self "6.22.0" + babel-plugin-transform-react-jsx-source "6.22.0" + babel-plugin-transform-regenerator "6.24.1" + babel-plugin-transform-runtime "6.23.0" + babel-preset-env "1.5.2" + babel-preset-react "6.24.1" + +babel-preset-react-native@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-1.9.2.tgz#b22addd2e355ff3b39671b79be807e52dfa145f2" + dependencies: + babel-plugin-check-es2015-constants "^6.5.0" + babel-plugin-react-transform "2.0.2" + babel-plugin-syntax-async-functions "^6.5.0" + babel-plugin-syntax-class-properties "^6.5.0" + babel-plugin-syntax-flow "^6.5.0" + babel-plugin-syntax-jsx "^6.5.0" + babel-plugin-syntax-trailing-function-commas "^6.5.0" + babel-plugin-transform-class-properties "^6.5.0" + babel-plugin-transform-es2015-arrow-functions "^6.5.0" + babel-plugin-transform-es2015-block-scoping "^6.5.0" + babel-plugin-transform-es2015-classes "^6.5.0" + babel-plugin-transform-es2015-computed-properties "^6.5.0" + babel-plugin-transform-es2015-destructuring "^6.5.0" + babel-plugin-transform-es2015-for-of "^6.5.0" + babel-plugin-transform-es2015-function-name "^6.5.0" + babel-plugin-transform-es2015-literals "^6.5.0" + babel-plugin-transform-es2015-modules-commonjs "^6.5.0" + babel-plugin-transform-es2015-parameters "^6.5.0" + babel-plugin-transform-es2015-shorthand-properties "^6.5.0" + babel-plugin-transform-es2015-spread "^6.5.0" + babel-plugin-transform-es2015-template-literals "^6.5.0" + babel-plugin-transform-flow-strip-types "^6.5.0" + babel-plugin-transform-object-assign "^6.5.0" + babel-plugin-transform-object-rest-spread "^6.5.0" + babel-plugin-transform-react-display-name "^6.5.0" + babel-plugin-transform-react-jsx "^6.5.0" + babel-plugin-transform-react-jsx-source "^6.5.0" + babel-plugin-transform-regenerator "^6.5.0" + react-transform-hmr "^1.0.4" + +babel-preset-react@6.24.1, babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-preset-stage-0@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" + dependencies: + babel-plugin-transform-do-expressions "^6.22.0" + babel-plugin-transform-function-bind "^6.22.0" + babel-preset-stage-1 "^6.24.1" + +babel-preset-stage-1@^6.24.1, babel-preset-stage-1@^6.5.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + dependencies: + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" + +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.18.0, babel-register@^6.24.1, babel-register@^6.26.0, babel-register@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-runtime@6.x.x, babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.5.0, babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-standalone@^6.24.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-standalone/-/babel-standalone-6.26.0.tgz#15fb3d35f2c456695815ebf1ed96fe7f015b6886" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.21.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.21.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^5.8.38, babylon@~5.8.3: + version "5.8.38" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd" + +babylon@^6.11.0, babylon@^6.14.1, babylon@^6.17.0, babylon@^6.17.3, babylon@^6.17.4, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +bail@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.2.tgz#f7d6c1731630a9f9f0d4d35ed1f962e2074a1764" + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + +base64-js@^1.0.2, base64-js@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +base64-url@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-url/-/base64-url-1.2.1.tgz#199fd661702a0e7b7dcae6e0698bb089c52f6d78" + +base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + +basic-auth-connect@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122" + +basic-auth@~1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.0.4.tgz#030935b01de7c9b94a824b29f3fccb750d3a5290" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^2.9.33: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bluebird@^3.0.5, bluebird@^3.1.1, bluebird@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@~1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.13.3.tgz#c08cf330c3358e151016a05746f13f029c97fa97" + dependencies: + bytes "2.1.0" + content-type "~1.0.1" + debug "~2.2.0" + depd "~1.0.1" + http-errors "~1.3.1" + iconv-lite "0.4.11" + on-finished "~2.3.0" + qs "4.0.0" + raw-body "~2.1.2" + type-is "~1.6.6" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +bowser@^1.0.0, bowser@^1.6.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.2.tgz#b94cc6925ba6b5e07c421a58e601ce4611264572" + +boxen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" + dependencies: + ansi-align "^1.1.0" + camelcase "^2.1.0" + chalk "^1.1.1" + cli-boxes "^1.0.0" + filled-array "^1.0.0" + object-assign "^4.0.1" + repeating "^2.0.0" + string-width "^1.0.1" + widest-line "^1.0.0" + +boxen@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^1.0.0" + +bplist-creator@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.4.tgz#4ac0496782e127a85c1d2026a4f5eb22a7aff991" + dependencies: + stream-buffers "~0.2.3" + +bplist-parser@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.0.6.tgz#38da3471817df9d44ab3892e27707bbbd75a11b9" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brcast@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd" + +breakable@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-resolve@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.1.2, browserslist@^2.1.5: + version "2.3.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c" + dependencies: + caniuse-lite "^1.0.30000715" + electron-to-chromium "^1.3.18" + +bser@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" + dependencies: + node-int64 "^0.4.0" + +bser@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.3.tgz#d63da19ee17330a0e260d2a34422b21a89520317" + dependencies: + node-int64 "^0.4.0" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +bytes@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.1.0.tgz#ac93c410e2ffc9cc7cf4b464b38289067f5e47b4" + +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + +bytes@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2, camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0, camelcase@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000717" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000717.tgz#27ddf5feccdd338c99a62c9788c2694f99f67ed7" + +caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000715: + version "1.0.30000717" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000717.tgz#4539b126af787c1d4851944de22b2bd8780d3612" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +case-sensitive-paths-webpack-plugin@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.0.0.tgz#60142d7d0beabdb35676ef0aeace3027da0578ba" + +case-sensitive-paths-webpack-plugin@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +ccount@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.2.tgz#53b6a2f815bb77b9c2871f7b9a72c3a25f1d8e89" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chain-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc" + +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +character-entities-html4@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.1.tgz#359a2a4a0f7e29d3dc2ac99bdbe21ee39438ea50" + +character-entities-legacy@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.1.tgz#f40779df1a101872bb510a3d295e1fccf147202f" + +character-entities@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.1.tgz#f76871be5ef66ddb7f8f8e3478ecc374c27d6dca" + +character-reference-invalid@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz#942835f750e4ec61a308e60c2ef8cc1011202efc" + +checkup@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/checkup/-/checkup-1.3.0.tgz#d3800276fea5d0f247ffc951be78c8b02f8e0d76" + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +child-process-promise@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" + dependencies: + cross-spawn "^4.0.2" + node-version "^1.0.0" + promise-polyfill "^6.0.1" + +chokidar@^1.4.3, chokidar@^1.5.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.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, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +clap@^1.0.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.0.tgz#59c90fe3e137104746ff19469a27a634ff68c857" + dependencies: + chalk "^1.1.3" + +classnames@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + +clean-css@4.1.x: + version "4.1.7" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032" + dependencies: + source-map "0.5.x" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^1.0.1, cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-width@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cli@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + dependencies: + exit "0.1.2" + glob "^7.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +cmd-shim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codecov@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-2.3.0.tgz#ad25a2c6e0442d13740d9d4ddbb9a3e2714330f4" + dependencies: + argv "0.0.2" + request "2.81.0" + urlgrey "0.4.4" + +codemirror-graphql@^0.5.7: + version "0.5.9" + resolved "https://registry.yarnpkg.com/codemirror-graphql/-/codemirror-graphql-0.5.9.tgz#b5ca2a84bd0deae7660c726f7feba15149bac8fd" + +codemirror@^5.15.2: + version "5.29.0" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.29.0.tgz#e68de1350e2f0ce804a3930576d0ae318736e967" + +collapse-white-space@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@^1.1.2, colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +command-join@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" + +commander@2.11.x, commander@^2.11.0, commander@^2.5.0, commander@^2.9.0, commander@~2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +common-tags@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + dependencies: + babel-runtime "^6.18.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +commoner@~0.10.3: + version "0.10.8" + resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5" + dependencies: + commander "^2.5.0" + detective "^4.3.1" + glob "^5.0.15" + graceful-fs "^4.1.2" + iconv-lite "^0.4.5" + mkdirp "^0.5.0" + private "^0.1.6" + q "^1.1.2" + recast "^0.11.17" + +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +compressible@~2.0.10, compressible@~2.0.5: + version "2.0.11" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" + dependencies: + mime-db ">= 1.29.0 < 2" + +compression@^1.5.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" + dependencies: + accepts "~1.3.3" + bytes "2.5.0" + compressible "~2.0.10" + debug "2.6.8" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.1" + +compression@~1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.5.2.tgz#b03b8d86e6f8ad29683cba8df91ddc6ffc77b395" + dependencies: + accepts "~1.2.12" + bytes "2.1.0" + compressible "~2.0.5" + debug "~2.2.0" + on-headers "~1.0.0" + vary "~1.0.1" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.10, concat-stream@^1.5.1, concat-stream@^1.5.2, concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@~1.1.5: + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +configstore@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" + dependencies: + dot-prop "^3.0.0" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +configstore@^3.0.0, configstore@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-history-api-fallback@1.3.0, connect-history-api-fallback@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +connect-timeout@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/connect-timeout/-/connect-timeout-1.6.2.tgz#de9a5ec61e33a12b6edaab7b5f062e98c599b88e" + dependencies: + debug "~2.2.0" + http-errors "~1.3.1" + ms "0.7.1" + on-headers "~1.0.0" + +connect@^2.8.3: + version "2.30.2" + resolved "https://registry.yarnpkg.com/connect/-/connect-2.30.2.tgz#8da9bcbe8a054d3d318d74dfec903b5c39a1b609" + dependencies: + basic-auth-connect "1.0.0" + body-parser "~1.13.3" + bytes "2.1.0" + compression "~1.5.2" + connect-timeout "~1.6.2" + content-type "~1.0.1" + cookie "0.1.3" + cookie-parser "~1.3.5" + cookie-signature "1.0.6" + csurf "~1.8.3" + debug "~2.2.0" + depd "~1.0.1" + errorhandler "~1.4.2" + express-session "~1.11.3" + finalhandler "0.4.0" + fresh "0.3.0" + http-errors "~1.3.1" + method-override "~2.3.5" + morgan "~1.6.1" + multiparty "3.3.2" + on-headers "~1.0.0" + parseurl "~1.3.0" + pause "0.1.0" + qs "4.0.0" + response-time "~2.3.1" + serve-favicon "~2.3.0" + serve-index "~1.7.2" + serve-static "~1.10.0" + type-is "~1.6.6" + utils-merge "1.0.0" + vhost "~3.0.1" + +console-browserify@1.1.x, console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +consolidate@^0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +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.1, content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +conventional-changelog-angular@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.4.0.tgz#118b9f7d41a3d99500bfb6bea1f3525e055e8b9b" + dependencies: + compare-func "^1.3.1" + github-url-from-git "^1.4.0" + q "^1.4.1" + read-pkg-up "^2.0.0" + +conventional-changelog-atom@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.1.tgz#d40a9b297961b53c745e5d1718fd1a3379f6a92f" + dependencies: + q "^1.4.1" + +conventional-changelog-cli@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.2.tgz#33abf2b5720a9b094df38e81741ccb502e1a4125" + dependencies: + add-stream "^1.0.0" + conventional-changelog "^1.1.4" + lodash "^4.1.0" + meow "^3.7.0" + tempfile "^1.1.1" + +conventional-changelog-codemirror@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.1.0.tgz#7577a591dbf9b538e7a150a7ee62f65a2872b334" + dependencies: + q "^1.4.1" + +conventional-changelog-core@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.0.tgz#de5dfbc091847656508d4a389e35c9a1bc49e7f4" + dependencies: + conventional-changelog-writer "^1.1.0" + conventional-commits-parser "^1.0.0" + dateformat "^1.0.12" + get-pkg-repo "^1.0.0" + git-raw-commits "^1.2.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^1.2.0" + lodash "^4.0.0" + normalize-package-data "^2.3.5" + q "^1.4.1" + read-pkg "^1.1.0" + read-pkg-up "^1.0.1" + through2 "^2.0.0" + +conventional-changelog-ember@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.6.tgz#8b7355419f5127493c4c562473ab2fc792f1c2b6" + dependencies: + q "^1.4.1" + +conventional-changelog-eslint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.1.0.tgz#a52411e999e0501ce500b856b0a643d0330907e2" + dependencies: + q "^1.4.1" + +conventional-changelog-express@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.1.0.tgz#55c6c841c811962036c037bdbd964a54ae310fce" + dependencies: + q "^1.4.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + dependencies: + q "^1.4.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.1.0.tgz#00cab8e9a3317487abd94c4d84671342918d2a07" + dependencies: + compare-func "^1.3.1" + q "^1.4.1" + +conventional-changelog-writer@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-1.4.1.tgz#3f4cb4d003ebb56989d30d345893b52a43639c8e" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^1.0.0" + dateformat "^1.0.11" + handlebars "^4.0.2" + json-stringify-safe "^5.0.1" + lodash "^4.0.0" + meow "^3.3.0" + semver "^5.0.1" + split "^1.0.0" + through2 "^2.0.0" + +conventional-changelog@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.4.tgz#108bc750c2a317e200e2f9b413caaa1f8c7efa3b" + dependencies: + conventional-changelog-angular "^1.3.4" + conventional-changelog-atom "^0.1.0" + conventional-changelog-codemirror "^0.1.0" + conventional-changelog-core "^1.9.0" + conventional-changelog-ember "^0.2.6" + conventional-changelog-eslint "^0.1.0" + conventional-changelog-express "^0.1.0" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^0.1.0" + +conventional-commits-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz#6fc2a659372bc3f2339cf9ffff7e1b0344b93039" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-1.3.0.tgz#e327b53194e1a7ad5dc63479ee9099a52b024865" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-commits-parser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.0.0.tgz#71d01910cb0a99aeb20c144e50f81f4df3178447" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.0.1.tgz#56b8ae553a8a1152fa069e767599e1f6948bd36c" + dependencies: + concat-stream "^1.4.10" + conventional-commits-filter "^1.0.0" + conventional-commits-parser "^2.0.0" + git-raw-commits "^1.2.0" + git-semver-tags "^1.2.1" + meow "^3.3.0" + object-assign "^4.0.1" + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +cookie-parser@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.3.5.tgz#9d755570fb5d17890771227a02314d9be7cf8356" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.3.tgz#e734a5c1417fce472d5aef82c381cabb64d1a435" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" + dependencies: + graceful-fs "^4.1.2" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.0.1" + os-homedir "^1.0.1" + parse-json "^2.2.0" + pinkie-promise "^2.0.0" + require-from-string "^1.1.0" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + 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" + +crc@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.3.0.tgz#fa622e1bc388bf257309082d6b65200ce67090ba" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0, create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-class@^15.5.x, create-react-class@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-env@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-3.2.4.tgz#9e0585f277864ed421ce756f81a980ff0d698aba" + dependencies: + cross-spawn "^5.1.0" + is-windows "^1.0.0" + +cross-spawn@4.0.2, cross-spawn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +csrf@~3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.0.6.tgz#b61120ddceeafc91e76ed5313bb5c0b2667b710a" + dependencies: + rndm "1.2.0" + tsscmp "1.0.5" + uid-safe "2.1.4" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-in-js-utils@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215" + dependencies: + hyphenate-style-name "^1.0.2" + +css-loader@0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.1.tgz#220325599f8f00452d9ceb4c3ca6c8a66798642d" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^0.1.7" + +css-loader@^0.28.1: + version "0.28.5" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.5.tgz#dd02bb91b94545710212ef7f6aaa66663113d754" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-select@^1.1.0, css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + +"cssstyle@>= 0.2.37 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + +csurf@~1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/csurf/-/csurf-1.8.3.tgz#23f2a13bf1d8fce1d0c996588394442cba86a56a" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + csrf "~3.0.0" + http-errors "~1.3.1" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +damerau-levenshtein@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" + +danger@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/danger/-/danger-1.2.0.tgz#45012a191af890c8bb3879a2f3bdf0ef406e0cef" + dependencies: + babel-polyfill "^6.20.0" + chalk "^2.0.0" + commander "^2.9.0" + debug "^2.6.0" + github "^9.2.0" + jest-config "^20.0.0" + jest-environment-node "^20.0.0" + jest-runtime "^20.0.0" + jsome "^2.3.25" + jsonpointer "^4.0.1" + lodash.find "^4.6.0" + lodash.includes "^4.3.0" + lodash.isobject "^2.4.1" + lodash.keys "^4.0.8" + node-fetch "^1.6.3" + parse-diff "^0.4.0" + parse-link-header "^1.0.1" + rfc6902 "^1.3.0" + voca "^1.2.0" + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + dependencies: + number-is-nan "^1.0.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-fns@^1.27.2: + version "1.28.5" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^1.0.11, dateformat@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + +debug@2, debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + +deep-equal-ident@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal-ident/-/deep-equal-ident-1.1.1.tgz#06f4b89e53710cd6cea4a7781c7a956642de8dc9" + dependencies: + lodash.isequal "^3.0" + +deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +defs@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/defs/-/defs-1.1.1.tgz#b22609f2c7a11ba7a3db116805c139b1caffa9d2" + dependencies: + alter "~0.2.0" + ast-traverse "~0.1.1" + breakable "~1.0.0" + esprima-fb "~15001.1001.0-dev-harmony-fb" + simple-fmt "~0.1.0" + simple-is "~0.2.0" + stringmap "~0.2.2" + stringset "~0.2.1" + tryor "~0.1.2" + yargs "~3.27.0" + +del@^2.0.2, del@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + +depd@1.1.1, depd@~1.1.0, depd@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-0.2.0.tgz#042914498979ac2d9f3c73e4ff3e6877d3bc92b6" + dependencies: + get-stdin "^0.1.0" + minimist "^0.1.0" + +detect-indent@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-3.0.1.tgz#9dc5e5ddbceef8325764b9451b02bc6d54084f75" + dependencies: + get-stdin "^4.0.1" + minimist "^1.1.0" + repeating "^1.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +detect-port-alt@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.3.tgz#a4d2f061d757a034ecf37c514260a98750f2b131" + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detective@^4.3.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1" + dependencies: + acorn "^4.0.3" + defined "^1.0.0" + +diff@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz#a8a26bec7646438963fc86e06f8f8b16d6c8bf7a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + 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" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-helpers@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a" + +dom-serializer@0, dom-serializer@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +dom-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" + dependencies: + urijs "^1.16.1" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + dependencies: + domelementtype "1" + +domhandler@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5, domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + +dts-bundle@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dts-bundle/-/dts-bundle-0.2.0.tgz#e165e494b00f81a3b6eb64385cbf6d1b486b7a99" + dependencies: + detect-indent "^0.2.0" + glob "^4.0.2" + mkdirp "^0.5.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +editorconfig@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" + dependencies: + bluebird "^3.0.5" + commander "^2.9.0" + lru-cache "^3.2.0" + semver "^5.1.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.18: + version "1.3.18" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + +emoji-regex@^6.1.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +enzyme-matchers@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-3.8.0.tgz#e2e0a3e0b9d76d9ef31acbf5ff6602c9d56ed03b" + dependencies: + deep-equal-ident "^1.1.1" + +enzyme-to-json@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-1.5.1.tgz#e34f4d126bb3f4696ce3800b51f9ed83df708799" + dependencies: + lodash.filter "^4.6.0" + lodash.isnil "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.omitby "^4.5.0" + lodash.range "^3.2.0" + object-values "^1.0.0" + object.entries "^1.0.3" + +enzyme@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6" + dependencies: + cheerio "^0.22.0" + function.prototype.name "^1.0.0" + is-subset "^0.1.1" + lodash "^4.17.4" + object-is "^1.0.1" + object.assign "^4.0.4" + object.entries "^1.0.4" + object.values "^1.0.4" + prop-types "^15.5.10" + uuid "^3.0.1" + +errno@^0.1.3, errno@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +errorhandler@~1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.4.3.tgz#b7b70ed8f359e9db88092f2d20c0f831420ad83f" + dependencies: + accepts "~1.3.0" + escape-html "~1.0.3" + +es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.29" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.29.tgz#768eb2dfc4957bcf35fa0568f193ab71ede53fd8" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es5-shim@^4.5.9: + version "4.5.9" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.9.tgz#2a1e2b9e583ff5fed0c20a3ee2cbf3f75230a5c0" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^3.0.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + +es6-promise@^4.0.5: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-shim@^0.35.3: + version "0.35.3" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.2.tgz#d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-airbnb-base@^11.3.0: + version "11.3.2" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a" + dependencies: + eslint-restricted-globals "^0.1.1" + +eslint-config-airbnb@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz#fd432965a906e30139001ba830f58f73aeddae8e" + dependencies: + eslint-config-airbnb-base "^11.3.0" + +eslint-config-prettier@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.3.0.tgz#b75b1eabea0c8b97b34403647ee25db349b9d8a0" + dependencies: + get-stdin "^5.0.1" + +eslint-config-react-app@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-1.0.5.tgz#98337597bc01cc22991fcbdda07451f3b4511718" + +eslint-import-resolver-node@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" + dependencies: + debug "^2.2.0" + object-assign "^4.0.1" + resolve "^1.1.6" + +eslint-import-resolver-node@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" + dependencies: + debug "^2.6.8" + resolve "^1.2.0" + +eslint-loader@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.7.1.tgz#50b158dd6272dcefb97e984254837f81a5802ce0" + dependencies: + find-cache-dir "^0.1.1" + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.0.0, eslint-module-utils@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-flowtype@2.33.0: + version "2.33.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.33.0.tgz#b2783814ed2ddcf729953b8f65ff73c90cabee4b" + dependencies: + lodash "^4.15.0" + +eslint-plugin-import@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.2.0" + doctrine "1.5.0" + eslint-import-resolver-node "^0.2.0" + eslint-module-utils "^2.0.0" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + pkg-up "^1.0.0" + +eslint-plugin-import@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-jest@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-20.0.3.tgz#ec15eba6ac0ab44a67ebf6e02672ca9d7e7cba29" + +eslint-plugin-json@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz#9ba73bb0be99d50093e889f5b968463d2a30efae" + dependencies: + jshint "^2.8.0" + +eslint-plugin-jsx-a11y@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.0.1.tgz#48e678891fec9fe1e53ef53adc2f7d05fee6640c" + dependencies: + aria-query "^0.5.0" + array-includes "^3.0.3" + ast-types-flow "0.0.7" + axobject-query "^0.1.0" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^1.4.0" + +eslint-plugin-jsx-a11y@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz#659277a758b036c305a7e4a13057c301cd3be73f" + dependencies: + aria-query "^0.7.0" + array-includes "^3.0.3" + ast-types-flow "0.0.7" + axobject-query "^0.1.0" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^1.4.0" + +eslint-plugin-prettier@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.2.0.tgz#f2837ad063903d73c621e7188fb3d41486434088" + dependencies: + fast-diff "^1.1.1" + jest-docblock "^20.0.1" + +eslint-plugin-react@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.0.1.tgz#e78107e1e559c6e2b17786bb67c2e2a010ad0d2f" + dependencies: + doctrine "^2.0.0" + has "^1.0.1" + jsx-ast-utils "^1.3.4" + +eslint-plugin-react@^7.1.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.3.0.tgz#ca9368da36f733fbdc05718ae4e91f778f38e344" + dependencies: + doctrine "^2.0.0" + has "^1.0.1" + jsx-ast-utils "^2.0.0" + prop-types "^15.5.10" + +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@3.19.0, eslint@^3.16.1: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + 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.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +eslint@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.5.0.tgz#bb75d3b8bde97fb5e13efcd539744677feb019c3" + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^2.6.8" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^4.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.4.0, espree@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" + dependencies: + acorn "^5.1.1" + acorn-jsx "^3.0.0" + +esprima-fb@~15001.1001.0-dev-harmony-fb: + version "15001.1001.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" + +esprima@^2.6.0, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0, esprima@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +etag@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +event-target-shim@^1.0.5: + version "1.1.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-1.1.1.tgz#a86e5ee6bdaa16054475da797ccddf0c55698491" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + +events@^1.0.0, events@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execon@^1.2.0: + version "1.2.9" + resolved "https://registry.yarnpkg.com/execon/-/execon-1.2.9.tgz#6db11333dcc824f1f13e7317fed0d94a2f26491f" + +exenv@^1.2.0, exenv@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +exit@0.1.2, exit@0.1.x: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +express-session@~1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.11.3.tgz#5cc98f3f5ff84ed835f91cbf0aabd0c7107400af" + dependencies: + cookie "0.1.3" + cookie-signature "1.0.6" + crc "3.3.0" + debug "~2.2.0" + depd "~1.0.1" + on-headers "~1.0.0" + parseurl "~1.3.0" + uid-safe "~2.0.0" + utils-merge "1.0.0" + +express@^4.13.3, express@^4.15.3: + version "4.15.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.8" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + finalhandler "~1.0.4" + fresh "0.5.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.5" + qs "6.5.0" + range-parser "~1.2.0" + send "0.15.4" + serve-static "1.12.4" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.0" + vary "~1.1.1" + +extend@3, extend@^3.0.0, extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.1, external-editor@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" + dependencies: + iconv-lite "^0.4.17" + jschardet "^1.4.2" + tmp "^0.0.31" + +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@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.0.tgz#69315b885f876dbf96d3819f6a9f1cca7aebf159" + dependencies: + ajv "^4.11.2" + async "^2.1.2" + loader-utils "^1.0.2" + webpack-sources "^0.1.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-diff@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.1.tgz#0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fast-memoize@^2.2.7: + version "2.2.8" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.2.8.tgz#d7f899f31d037b12d9db4281912f9018575720b1" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +fault@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.1.tgz#de8d350dfd48be24b5dc1b02867e0871b9135092" + dependencies: + format "^0.2.2" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^1.8.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" + dependencies: + bser "1.0.2" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +fbjs-scripts@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.7.1.tgz#4f115e218e243e3addbf0eddaac1e3c62f703fac" + dependencies: + babel-core "^6.7.2" + babel-preset-fbjs "^1.0.0" + core-js "^1.0.0" + cross-spawn "^3.0.1" + gulp-util "^3.0.4" + object-assign "^4.0.1" + semver "^5.1.0" + through2 "^2.0.0" + +fbjs@^0.8.12, fbjs@^0.8.4, fbjs@^0.8.9, fbjs@~0.8.9: + version "0.8.14" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +figures@^1.3.5, figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.1.tgz#6b328ee1234a729e4e47d36375dd6d35c0e1db84" + dependencies: + loader-utils "^1.0.2" + +file-loader@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122" + +filesize@3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +filled-array@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" + +finalhandler@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.0.tgz#965a52d9e8d05d2b857548541fb89b53a2497d9b" + dependencies: + debug "~2.2.0" + escape-html "1.0.2" + on-finished "~2.3.0" + unpipe "~1.0.0" + +finalhandler@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" + dependencies: + debug "2.6.8" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + 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-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +flow-parser@^0.*: + version "0.53.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.53.1.tgz#6bc96b6d01a69571bea2e9ca53f4ff318d98b43f" + +fn-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + +follow-redirects@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-0.0.7.tgz#34b90bab2a911aa347571da90f22bd36ecd8a919" + dependencies: + debug "^2.2.0" + stream-consume "^0.1.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +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.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +format-json@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/format-json/-/format-json-1.0.3.tgz#268e3d3e169792ff49bb5b030f22c87ca1c2cd9f" + +format@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-extra@3.0.1, fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^0.26.2: + version "0.26.7" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.0, fs-extra@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-readdir-recursive@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +function.prototype.name@^1.0.0, function.prototype.name@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + is-callable "^1.1.3" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +fuse.js@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.0.5.tgz#b58d85878802321de94461654947b93af1086727" + +gauge@~1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93" + dependencies: + ansi "^0.3.0" + has-unicode "^2.0.0" + lodash.pad "^4.1.0" + lodash.padend "^4.1.0" + lodash.padstart "^4.1.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + +get-stdin@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-0.1.0.tgz#5998af24aafc802d15c82c685657eeb8b10d4a91" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +gh-pages@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.0.0.tgz#4a46f4c25439f7a2b7e6835504d4a49e949f04ca" + dependencies: + async "2.1.4" + base64url "^2.0.0" + commander "2.9.0" + fs-extra "^3.0.1" + globby "^6.1.0" + graceful-fs "4.1.11" + rimraf "^2.5.4" + +git-raw-commits@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.2.0.tgz#0f3a8bfd99ae0f2d8b9224d58892975e9a52d03c" + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^1.2.0, git-semver-tags@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.1.tgz#6ccd2a52e735b736748dc762444fcd9588e27490" + dependencies: + meow "^3.3.0" + semver "^5.0.1" + +git-up@^2.0.0: + version "2.0.8" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-2.0.8.tgz#24be049c9f0b193481d2df4e016a16530a5f4ef4" + dependencies: + is-ssh "^1.3.0" + parse-url "^1.3.0" + +git-url-parse@^6.0.2, git-url-parse@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-6.2.2.tgz#be49024e14b8487553436b4572b8b439532fa871" + dependencies: + git-up "^2.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + dependencies: + ini "^1.3.2" + +github-release-from-changelog@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/github-release-from-changelog/-/github-release-from-changelog-1.2.1.tgz#0221a309d14514294ffbc4c53d9f260c0c9a313e" + dependencies: + grizzly "^2.0.0" + minimist "^1.2.0" + +github-slugger@^1.0.0, github-slugger@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.1.3.tgz#314a6e759a18c2b0cc5760d512ccbab549c549a7" + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + +github-url-from-git@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0" + +github@^9.0.0, github@^9.2.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/github/-/github-9.3.1.tgz#6a3c5a9cc2a1cd0b5d097a47baefb9d11caef89e" + dependencies: + follow-redirects "0.0.7" + https-proxy-agent "^1.0.0" + mime "^1.2.11" + netrc "^0.1.4" + +glamor@^2.20.40: + version "2.20.40" + resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05" + dependencies: + fbjs "^0.8.12" + inline-style-prefixer "^3.0.6" + object-assign "^4.1.1" + prop-types "^15.5.10" + through "^2.3.8" + +glamorous@^4.1.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.4.0.tgz#626b03adcbab259bc97921de4378262f82887e25" + dependencies: + brcast "^3.0.0" + fast-memoize "^2.2.7" + html-tag-names "^1.1.1" + is-function "^1.0.1" + is-plain-object "^2.0.4" + react-html-attributes "^1.3.0" + svg-tag-names "^1.1.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^4.0.2: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@1.0.0, global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global@^4.3.0, global@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f" + +globals@^9.14.0, globals@^9.17.0, globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +got@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" + dependencies: + duplexify "^3.2.0" + infinity-agent "^2.0.0" + is-redirect "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + nested-error-stacks "^1.0.0" + object-assign "^3.0.0" + prepend-http "^1.0.0" + read-all-stream "^3.0.0" + timed-out "^2.0.0" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +graphiql@^0.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-0.7.8.tgz#b8765d542ff6c3d51e67325a262c32dfc0f4becb" + dependencies: + codemirror "^5.15.2" + codemirror-graphql "^0.5.7" + marked "^0.3.5" + +graphql@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.7.2.tgz#cc894a32823399b8a0cb012b9e9ecad35cd00f72" + dependencies: + iterall "1.0.2" + +graphqlify@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/graphqlify/-/graphqlify-1.1.0.tgz#1d1d81e37b209fc09742fe48da3ac4763e20ddc7" + +grizzly@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/grizzly/-/grizzly-2.1.3.tgz#8ead92804b1ede275d56e0a34148bcea3dedd8a3" + dependencies: + checkup "^1.3.0" + debug "^2.2.0" + execon "^1.2.0" + github "^9.0.0" + minimist "^1.2.0" + os-homedir "^1.0.0" + readjson "^1.1.0" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +gulp-util@^3.0.4: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +gzip-size@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + dependencies: + duplexer "^0.1.1" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@^4.0.2, handlebars@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +he@1.1.x, he@^1.1.0, he@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: + 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" + dependencies: + os-tmpdir "^1.0.1" + user-home "^1.1.1" + +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" + +homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +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-element-attributes@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-1.3.0.tgz#f06ebdfce22de979db82020265cac541fb17d4fc" + +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.1, html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-minifier@^3.2.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.3.tgz#4a275e3b1a16639abb79b4c11191ff0d0fcf1ab9" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.11.x" + he "1.1.x" + ncname "1.0.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.0.x" + +html-tag-names@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.2.tgz#f65168964c5a9c82675efda882875dcb2a875c22" + +html-webpack-plugin@2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@3.8.x: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +htmlparser2@^3.9.1: + 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" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942" + dependencies: + inherits "~2.0.1" + statuses "1" + +http-errors@~1.6.1, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +https-proxy-agent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +husky@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" + dependencies: + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0" + +hyphenate-style-name@^1.0.1, hyphenate-style-name@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" + +iconv-lite@0.4.11: + version "0.4.11" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade" + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +iconv-lite@^0.4.17, iconv-lite@^0.4.5, iconv-lite@~0.4.13: + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore-by-default@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +ignore@^3.2.0, ignore@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + +image-size@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.3.5.tgz#83240eab2fb5b00b04aab8c74b0471e9cba7ad8c" + +immutable@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2" + +immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +infinity-agent@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inline-style-prefixer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" + dependencies: + bowser "^1.0.0" + hyphenate-style-name "^1.0.1" + +inline-style-prefixer@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.7.tgz#0ccc92e5902fe6e0d28d975c4258443f880615f8" + dependencies: + bowser "^1.6.0" + css-in-js-utils "^1.0.3" + +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175" + dependencies: + ansi-escapes "^2.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.11.4.tgz#81e3374e8361beaff2d97016206d359d0b32fa4d" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^1.0.1" + figures "^1.3.5" + lodash "^3.3.1" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^3.0.6, inquirer@^3.1.0, inquirer@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.2.tgz#c2aaede1507cc54d826818737742d621bef2e823" + dependencies: + ansi-escapes "^2.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +insert-css@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-1.1.0.tgz#4a3f7a3e783877381bb8471a6452d1d27315db9e" + +internal-ip@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +invariant@2.x.x, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +ipaddr.js@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" + +irregular-plurals@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.3.0.tgz#7af06931bdf74be33dcf585a13e06fccc16caecf" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-alphabetical@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.1.tgz#c77079cc91d4efac775be1034bf2d243f95e6f08" + +is-alphanumeric@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" + +is-alphanumerical@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz#dfb4aa4d1085e33bdb61c2dee9c80e9c6c19f53b" + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.4, is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.10: + 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-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-decimal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.1.tgz#f5fb6a94996ad9e8e3761fbfbd091f1fca8c4e82" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dom@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-empty@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +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.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-hexadecimal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz#6e084bbc92061fbb0971ec58b6ce6d404e24da69" + +is-hidden@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-hidden/-/is-hidden-1.1.1.tgz#82ee6a93aeef3fb007ad5b9457c0584d45329f38" + +is-integer@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-integer/-/is-integer-1.0.7.tgz#6bde81aacddf78b659b6629d629cadc51a886d5c" + dependencies: + is-finite "^1.0.0" + +is-my-json-valid@^2.10.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-root@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" + +is-ssh@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.0.tgz#ebea1169a2614da392a63740366c3ce049d8dff6" + dependencies: + protocols "^1.1.0" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-whitespace-character@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz#9ae0176f3282b65457a1992cdb084f8a5f833e3b" + +is-windows@^1.0.0, is-windows@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +is-word-character@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.1.tgz#5a03fa1ea91ace8a6eb0c7cd770eb86d65c8befb" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isemail@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-api@^1.1.1: + version "1.1.12" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.12.tgz#92d67e9d8f9ea87349a64a70ddf5a7a8cdf97f21" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.7.5" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.1" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-hook@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.17.4" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" + dependencies: + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e" + dependencies: + handlebars "^4.0.3" + +iterall@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.0.2.tgz#41a2e96ce9eda5e61c767ee5dc312373bb046e91" + +jest-changed-files@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" + +jest-cli@^20.0.3, jest-cli@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93" + dependencies: + ansi-escapes "^1.4.0" + callsites "^2.0.0" + chalk "^1.1.3" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + istanbul-api "^1.1.1" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-instrument "^1.4.2" + istanbul-lib-source-maps "^1.1.0" + jest-changed-files "^20.0.3" + jest-config "^20.0.4" + jest-docblock "^20.0.3" + jest-environment-jsdom "^20.0.3" + jest-haste-map "^20.0.4" + jest-jasmine2 "^20.0.4" + jest-message-util "^20.0.3" + jest-regex-util "^20.0.3" + jest-resolve-dependencies "^20.0.3" + jest-runtime "^20.0.4" + jest-snapshot "^20.0.3" + jest-util "^20.0.3" + micromatch "^2.3.11" + node-notifier "^5.0.2" + pify "^2.3.0" + slash "^1.0.0" + string-length "^1.0.1" + throat "^3.0.0" + which "^1.2.12" + worker-farm "^1.3.1" + yargs "^7.0.2" + +jest-config@^20.0.0, jest-config@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea" + dependencies: + chalk "^1.1.3" + glob "^7.1.1" + jest-environment-jsdom "^20.0.3" + jest-environment-node "^20.0.3" + jest-jasmine2 "^20.0.4" + jest-matcher-utils "^20.0.3" + jest-regex-util "^20.0.3" + jest-resolve "^20.0.4" + jest-validate "^20.0.3" + pretty-format "^20.0.3" + +jest-diff@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" + dependencies: + chalk "^1.1.3" + diff "^3.2.0" + jest-matcher-utils "^20.0.3" + pretty-format "^20.0.3" + +jest-docblock@^20.0.1, jest-docblock@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" + +jest-environment-jsdom@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99" + dependencies: + jest-mock "^20.0.3" + jest-util "^20.0.3" + jsdom "^9.12.0" + +jest-environment-node@^20.0.0, jest-environment-node@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403" + dependencies: + jest-mock "^20.0.3" + jest-util "^20.0.3" + +jest-enzyme@^3.6.1: + version "3.8.0" + resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-3.8.0.tgz#94d46346fb10eea245cc10fd3e0d3034e353bcdd" + dependencies: + "@types/react" "^15.0.22" + enzyme-matchers "^3.8.0" + enzyme-to-json "^1.5.0" + +jest-haste-map@19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.0.tgz#adde00b62b1fe04432a104b3254fc5004514b55e" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.6" + micromatch "^2.3.11" + sane "~1.5.0" + worker-farm "^1.3.1" + +jest-haste-map@^20.0.4: + version "20.0.5" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + jest-docblock "^20.0.3" + micromatch "^2.3.11" + sane "~1.6.0" + worker-farm "^1.3.1" + +jest-jasmine2@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1" + dependencies: + chalk "^1.1.3" + graceful-fs "^4.1.11" + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-matchers "^20.0.3" + jest-message-util "^20.0.3" + jest-snapshot "^20.0.3" + once "^1.4.0" + p-map "^1.1.1" + +jest-matcher-utils@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" + dependencies: + chalk "^1.1.3" + pretty-format "^20.0.3" + +jest-matchers@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" + dependencies: + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-message-util "^20.0.3" + jest-regex-util "^20.0.3" + +jest-message-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" + dependencies: + chalk "^1.1.3" + micromatch "^2.3.11" + slash "^1.0.0" + +jest-mock@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" + +jest-regex-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" + +jest-resolve-dependencies@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a" + dependencies: + jest-regex-util "^20.0.3" + +jest-resolve@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5" + dependencies: + browser-resolve "^1.11.2" + is-builtin-module "^1.0.0" + resolve "^1.3.2" + +jest-runtime@^20.0.0, jest-runtime@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8" + dependencies: + babel-core "^6.0.0" + babel-jest "^20.0.3" + babel-plugin-istanbul "^4.0.0" + chalk "^1.1.3" + convert-source-map "^1.4.0" + graceful-fs "^4.1.11" + jest-config "^20.0.4" + jest-haste-map "^20.0.4" + jest-regex-util "^20.0.3" + jest-resolve "^20.0.4" + jest-util "^20.0.3" + json-stable-stringify "^1.0.1" + micromatch "^2.3.11" + strip-bom "3.0.0" + yargs "^7.0.2" + +jest-snapshot@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566" + dependencies: + chalk "^1.1.3" + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-util "^20.0.3" + natural-compare "^1.4.0" + pretty-format "^20.0.3" + +jest-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" + dependencies: + chalk "^1.1.3" + graceful-fs "^4.1.11" + jest-message-util "^20.0.3" + jest-mock "^20.0.3" + jest-validate "^20.0.3" + leven "^2.1.0" + mkdirp "^0.5.1" + +jest-validate@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab" + dependencies: + chalk "^1.1.3" + jest-matcher-utils "^20.0.3" + leven "^2.1.0" + pretty-format "^20.0.3" + +jest@20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.3.tgz#e4fd054c4f1170a116a00761da4cfdb73f1cdc33" + dependencies: + jest-cli "^20.0.3" + +jest@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac" + dependencies: + jest-cli "^20.0.4" + +joi@^6.6.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" + dependencies: + hoek "2.x.x" + isemail "1.x.x" + moment "2.x.x" + topo "1.x.x" + +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-beautify@^1.6.3: + version "1.6.14" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.14.tgz#d3b8f7322d02b9277d58bd238264c327e58044cd" + dependencies: + config-chain "~1.1.5" + editorconfig "^0.13.2" + mkdirp "~0.5.0" + nopt "~3.0.1" + +js-tokens@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.1.tgz#cc435a5c8b94ad15acb7983140fc80182c89aeae" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jschardet@^1.4.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9" + +jscodeshift@^0.3.30: + version "0.3.32" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.3.32.tgz#dece5eb602f16340d8d954c7f96ac907c502eabb" + dependencies: + async "^1.5.0" + babel-core "^5" + babel-plugin-transform-flow-strip-types "^6.8.0" + babel-preset-es2015 "^6.9.0" + babel-preset-stage-1 "^6.5.0" + babel-register "^6.9.0" + babylon "^6.17.3" + colors "^1.1.2" + flow-parser "^0.*" + lodash "^4.13.1" + micromatch "^2.3.7" + node-dir "0.1.8" + nomnom "^1.8.1" + recast "^0.12.5" + temp "^0.8.1" + write-file-atomic "^1.2.0" + +jsdom@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" + dependencies: + abab "^1.0.3" + acorn "^4.0.4" + acorn-globals "^3.1.0" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + nwmatcher ">= 1.3.9 < 2.0.0" + parse5 "^1.5.1" + request "^2.79.0" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.2" + webidl-conversions "^4.0.0" + whatwg-encoding "^1.0.1" + whatwg-url "^4.3.0" + xml-name-validator "^2.0.1" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +jshint@^2.8.0: + version "2.9.5" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.5.tgz#1e7252915ce681b40827ee14248c46d34e9aa62c" + dependencies: + cli "~1.0.0" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "3.7.x" + minimatch "~3.0.2" + shelljs "0.3.x" + strip-json-comments "1.0.x" + +jsome@^2.3.25: + version "2.3.26" + resolved "https://registry.yarnpkg.com/jsome/-/jsome-2.3.26.tgz#8cb4438924d2c9dd5294c90adf03f35414fb3ca9" + dependencies: + chalk "^1.1.3" + json-stringify-safe "^5.0.1" + yargs "^4.8.0" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +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, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + +jsonpointer@^4.0.0, jsonpointer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^1.3.4, jsx-ast-utils@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" + +jsx-ast-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.0.tgz#ec06a3d60cf307e5e119dac7bad81e89f096f0f8" + dependencies: + array-includes "^3.0.3" + +keycode@^2.1.8: + version "2.1.9" + resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +latest-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" + dependencies: + package-json "^1.0.0" + +latest-version@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" + dependencies: + package-json "^2.0.0" + +latest-version@^3.0.0, latest-version@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +left-pad@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" + +lerna@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.1.0.tgz#22da4c9cb09f7733a7e87ba8f34779a509c172ea" + dependencies: + async "^1.5.0" + chalk "^2.1.0" + cmd-shim "^2.0.2" + columnify "^1.5.4" + command-join "^2.0.0" + conventional-changelog-cli "^1.3.2" + conventional-recommended-bump "^1.0.1" + dedent "^0.7.0" + execa "^0.8.0" + find-up "^2.1.0" + fs-extra "^4.0.1" + get-port "^3.2.0" + glob "^7.1.2" + globby "^6.1.0" + graceful-fs "^4.1.11" + inquirer "^3.2.2" + is-ci "^1.0.10" + load-json-file "^3.0.0" + lodash "^4.17.4" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-finally "^1.0.0" + path-exists "^3.0.0" + read-cmd-shim "^1.0.1" + read-pkg "^2.0.0" + rimraf "^2.6.1" + safe-buffer "^5.1.1" + semver "^5.4.1" + signal-exit "^3.0.2" + strong-log-transformer "^1.0.6" + temp-write "^3.3.0" + write-file-atomic "^2.3.0" + write-json-file "^2.2.0" + write-pkg "^3.1.0" + yargs "^8.0.2" + +leven@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/leven/-/leven-1.0.2.tgz#9144b6eebca5f1d0680169f1a6770dcea60b75c3" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lint-staged@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.4.tgz#9ca6968b30dfbfe81365b7a763cd4f4992896553" + dependencies: + app-root-path "^2.0.0" + cosmiconfig "^1.1.0" + execa "^0.8.0" + listr "^0.12.0" + lodash.chunk "^4.2.0" + minimatch "^3.0.0" + npm-which "^3.0.1" + p-map "^1.1.1" + staged-git-files "0.0.4" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + +listr-update-renderer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +listr@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + figures "^1.7.0" + indent-string "^2.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.2.0" + listr-verbose-renderer "^0.4.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + ora "^0.2.3" + p-map "^1.1.1" + rxjs "^5.0.0-beta.11" + stream-to-observable "^0.1.0" + strip-ansi "^3.0.1" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-3.0.0.tgz#7eb3735d983a7ed2262ade4ff769af5369c5c440" + dependencies: + graceful-fs "^4.1.2" + parse-json "^3.0.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-plugin@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-2.2.1.tgz#384def2b47be6edd65db0f18f368fd749b463edd" + dependencies: + npm-prefix "^1.2.0" + resolve-from "^2.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash-es@^4.2.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._baseisequal@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + dependencies: + lodash.isarray "^3.0.0" + lodash.istypedarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.filter@^4.4.0, lodash.filter@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-3.0.4.tgz#1c35eb3b6ef0cd1ff51743e3ea3cf7fdffdacb64" + dependencies: + lodash._baseisequal "^3.0.0" + lodash._bindcallback "^3.0.0" + +lodash.isnil@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c" + +lodash.isobject@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.istypedarray@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + +lodash.keys@^3.0.0, lodash.keys@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.keys@^4.0.8: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.merge@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash.omitby@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791" + +lodash.pad@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" + +lodash.padend@^4.1.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + +lodash.padstart@^4.1.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + +lodash.pick@^4.2.1, lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.range@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.4.0, lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.template@^4.0.2, lodash.template@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@3.7.x: + version "3.7.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" + +lodash@4.x.x, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@^3.10.0, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.6.0, lodash@^3.9.3: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log-update@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + +loglevel@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" + +longest-streak@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.1.tgz#42d291b5411e40365c00e63193497e2247316e35" + +longest@^1.0.1: + version "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.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" + dependencies: + pseudomap "^1.0.1" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +mantra-core@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/mantra-core/-/mantra-core-1.7.0.tgz#a8c83e8cee83ef6a7383131519fe8031ad546386" + dependencies: + babel-runtime "6.x.x" + react-komposer "^1.9.0" + react-simple-di "^1.2.0" + +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" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +markdown-escapes@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.1.tgz#1994df2d3af4811de59a6714934c2b2292734518" + +markdown-extensions@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.0.tgz#fba0f1a2ebb4f4123d25b7a93bc35792c11f504e" + +markdown-table@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.1.tgz#4b3dd3a133d1518b8ef0dbc709bf2a1b4824bc8c" + +marked@^0.3.5, marked@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" + +marksy@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/marksy/-/marksy-2.0.1.tgz#019eb9c13ff37120ce4dddeb7774aba152b5d7e0" + dependencies: + babel-standalone "^6.24.0" + he "^1.1.1" + marked "^0.3.6" + +material-colors@^1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.5.tgz#5292593e6754cb1bcc2b98030e4e0d6a3afc9ea1" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mdast-comment-marker@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.0.2.tgz#1ddf0ef811fb52439017c8d2c0b922035f2ba74a" + +mdast-util-compact@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.1.tgz#cdb5f84e2b6a2d3114df33bd05d9cb32e3c4083a" + dependencies: + unist-util-modify-children "^1.0.0" + unist-util-visit "^1.1.0" + +mdast-util-heading-style@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.3.tgz#efb390dbc8aa016c3cf577a034900db27ee7247c" + +mdast-util-to-string@^1.0.0, mdast-util-to-string@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.4.tgz#5c455c878c9355f0c1e7f3e8b719cf583691acfb" + +mdast-util-toc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-toc/-/mdast-util-toc-2.0.1.tgz#b1d2cb23bfb01f812fa7b55bffe8b0a8bedf6f21" + dependencies: + github-slugger "^1.1.1" + mdast-util-to-string "^1.0.2" + unist-util-visit "^1.1.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-dirs@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/merge-dirs/-/merge-dirs-0.2.1.tgz#21e648b2c6b0261712509e4df36c2424773160c9" + dependencies: + inquirer "^0.11.0" + minimist "^1.2.0" + node-fs "~0.1.7" + path "^0.12.7" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +method-override@~2.3.5: + version "2.3.9" + resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.9.tgz#bd151f2ce34cf01a76ca400ab95c012b102d8f71" + dependencies: + debug "2.6.8" + methods "~1.1.2" + parseurl "~1.3.1" + vary "~1.1.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" + +mime-db@~1.23.0: + version "1.23.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" + +mime-types@2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" + dependencies: + mime-db "~1.23.0" + +mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9: + version "2.1.16" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" + dependencies: + mime-db "~1.29.0" + +mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@1.3.x, mime@^1.2.11, mime@^1.3.4: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^2.0.1, minimatch@^2.0.3: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mkdirp-promise@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mobx@^2.3.4: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-2.7.0.tgz#cf3d82d18c0ca7f458d8f2a240817b3dc7e54a01" + +mock-fs@^4.3.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.4.1.tgz#f285fa025b42a4031faf75b66f632b21e7056683" + +modify-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + +moment@2.x.x, moment@^2.18.1, moment@^2.6.0: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +morgan@~1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.6.1.tgz#5fd818398c6819cba28a7cd6664f292fe1c0bbf2" + dependencies: + basic-auth "~1.0.3" + debug "~2.2.0" + depd "~1.0.1" + on-finished "~2.3.0" + on-headers "~1.0.0" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + dependencies: + dns-packet "^1.0.1" + thunky "^0.1.0" + +multiparty@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-3.3.2.tgz#35de6804dc19643e5249f3d3e3bdc6c8ce301d3f" + dependencies: + readable-stream "~1.1.9" + stream-counter "~0.2.0" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mz@^2.4.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.6.0.tgz#c8b8521d958df0a4f2768025db69c719ee4ef1ce" + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncname@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +negotiator@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nested-error-stacks@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" + dependencies: + inherits "~2.0.1" + +netrc@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" + +no-case@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + dependencies: + lower-case "^1.1.1" + +node-dir@0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" + +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + dependencies: + minimatch "^3.0.2" + +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@^1.0.1, node-fetch@^1.3.3, node-fetch@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.6.33: + version "0.6.33" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" + +node-fs@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/node-fs/-/node-fs-0.1.7.tgz#32323cccb46c9fbf0fc11812d45021cc31d325bb" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-notifier@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" + dependencies: + growly "^1.3.0" + semver "^5.3.0" + shellwords "^0.1.0" + which "^1.2.12" + +node-pre-gyp@^0.6.29, node-pre-gyp@^0.6.36: + version "0.6.36" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +node-uuid@1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +node-version@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.1.0.tgz#f437d7ba407e65e2c4eaef8887b1718ba523d4f0" + +nodemon@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" + dependencies: + chokidar "^1.4.3" + debug "^2.2.0" + es6-promise "^3.0.2" + ignore-by-default "^1.0.0" + lodash.defaults "^3.1.2" + minimatch "^3.0.0" + ps-tree "^1.0.1" + touch "1.0.0" + undefsafe "0.0.3" + update-notifier "0.5.0" + +nomnom@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +nopt@~3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-path@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" + dependencies: + which "^1.2.10" + +npm-prefix@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/npm-prefix/-/npm-prefix-1.2.0.tgz#e619455f7074ba54cc66d6d0d37dd9f1be6bcbc0" + dependencies: + rc "^1.1.0" + shellsubstitute "^1.1.0" + untildify "^2.1.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npm-which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + dependencies: + commander "^2.9.0" + npm-path "^2.0.2" + which "^1.2.10" + +npmlog@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692" + dependencies: + ansi "~0.3.1" + are-we-there-yet "~1.1.2" + gauge "~1.2.5" + +npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +"nwmatcher@>= 1.3.9 < 2.0.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.1.tgz#7ae9b07b0ea804db7e25f05cb5fe4097d4e4949f" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-hash@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c" + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + +object-keys@^1.0.10, object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105" + +object.assign@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.0" + object-keys "^1.0.10" + +object.entries@^1.0.3, object.entries@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.0, on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opencollective@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" + dependencies: + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.0.0.tgz#f8870d7cd969b218030cb6ce5a1285e795931df3" + dependencies: + is-wsl "^1.1.0" + +opn@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" + dependencies: + is-wsl "^1.1.0" + +opn@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a" + dependencies: + object-assign "^4.0.1" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +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: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +ora@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + +original@>=0.0.5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.0, osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.0, output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + +package-json@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" + dependencies: + got "^3.2.0" + registry-url "^3.0.0" + +package-json@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" + dependencies: + got "^5.0.0" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-diff@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/parse-diff/-/parse-diff-0.4.0.tgz#9ce35bcce8fc0b7c58f46d71113394fc0b4982dd" + +parse-entities@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.1.1.tgz#8112d88471319f27abae4d64964b122fe4e1b890" + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-github-repo-url@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.0.tgz#286c53e2c9962e0641649ee3ac9508fca4dd959c" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0, parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-3.0.0.tgz#fa6f47b18e23826ead32f263e744d0e1e847fb13" + dependencies: + error-ex "^1.3.1" + +parse-link-header@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-1.0.1.tgz#bedfe0d2118aeb84be75e7b025419ec8a61140a7" + dependencies: + xtend "~4.0.1" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parse-url@^1.3.0: + version "1.3.11" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-1.3.11.tgz#57c15428ab8a892b1f43869645c711d0e144b554" + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + +parse5@^2.0.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-2.2.3.tgz#0c4fc41c1000c5e6b93d48b03f8083837834e9f6" + +parseurl@~1.3.0, parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +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: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-to-regexp@^1.0.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path@^0.12.7: + version "0.12.7" + resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + dependencies: + process "^0.11.1" + util "^0.10.3" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +pause@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.1.0.tgz#ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74" + +pbkdf2@^3.0.3: + version "3.0.13" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pegjs@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.9.0.tgz#f6aefa2e3ce56169208e52179dfe41f89141a369" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkg-up@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + dependencies: + find-up "^1.0.0" + +plist@1.2.0, plist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-1.2.0.tgz#084b5093ddc92506e259f874b8d9b1afb8c79593" + dependencies: + base64-js "0.0.8" + util-deprecate "1.0.2" + xmlbuilder "4.0.0" + xmldom "0.1.x" + +plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +pluralize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" + +podda@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/podda/-/podda-1.2.2.tgz#15b0edbd334ade145813343f5ecf9c10a71cf500" + dependencies: + babel-runtime "^6.11.6" + immutable "^3.8.1" + +portfinder@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-flexbugs-fixes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.0.0.tgz#7b31cb6c27d0417a35a67914c295f83c403c7ed4" + dependencies: + postcss "^6.0.1" + +postcss-flexbugs-fixes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51" + dependencies: + postcss "^6.0.1" + +postcss-load-config@^1.1.0, postcss-load-config@^1.2.0, postcss-load-config@^1.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.5.tgz#c19d3e8b83eb1ac316f5621ef4c0ef5b3d1b8b3a" + dependencies: + loader-utils "^1.x" + postcss "^6.x" + postcss-load-config "^1.x" + schema-utils "^0.x" + +postcss-loader@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.6.tgz#8c7e0055a3df1889abc6bad52dd45b2f41bbc6fc" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.2" + postcss-load-config "^1.2.0" + schema-utils "^0.3.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + 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.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + 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.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" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.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.2, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.6, postcss@^6.x: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.9.tgz#54819766784a51c65b1ec4d54c2f93765438c35a" + dependencies: + chalk "^2.1.0" + source-map "^0.5.6" + supports-color "^4.2.1" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.3.tgz#59dadc683345ec6b88f88b94ed4ae7e1da394bfe" + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" + dependencies: + ansi-regex "^2.1.1" + ansi-styles "^3.0.0" + +private@^0.1.6, private@^0.1.7, private@~0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0, process@^0.11.1: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +promise-polyfill@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.0.2.tgz#d9c86d3dc4dc2df9016e88946defd69b49b41162" + +promise.prototype.finally@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.0.0.tgz#afb1710ff2068562966f6d006d12c3107c7a4f39" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + function-bind "^1.1.0" + +promise@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@15.5.8: + version "15.5.8" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" + dependencies: + fbjs "^0.8.9" + +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.5" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.5.tgz#21de1f441c4ef7094408ed9f1c94f7a114b87557" + +proxy-addr@~1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.4.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +ps-tree@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.1, pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2, q@^1.4.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +qs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" + +qs@6.5.0, qs@^6.4.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + +radium@^0.19.0: + version "0.19.4" + resolved "https://registry.yarnpkg.com/radium/-/radium-0.19.4.tgz#56aa49fde6181d2f5e1fa57b4710ffd0c23de820" + dependencies: + array-find "^1.0.0" + exenv "^1.2.1" + inline-style-prefixer "^2.0.5" + prop-types "^15.5.8" + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +range-parser@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" + +raw-body@~2.1.2: + version "2.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.13" + unpipe "1.0.0" + +raw-loader@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + +rc@^1.0.1, rc@^1.1.0, rc@^1.1.6, rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-addons-create-fragment@^15.5.3: + version "15.6.0" + resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.0.tgz#af91a22b1fb095dd01f1afba43bfd0ef589d8b20" + dependencies: + fbjs "^0.8.4" + loose-envify "^1.3.1" + object-assign "^4.1.0" + +react-addons-test-utils@^15.5.1: + version "15.6.0" + resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.6.0.tgz#062d36117fe8d18f3ba5e06eb33383b0b85ea5b9" + +react-attr-converter@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/react-attr-converter/-/react-attr-converter-0.1.1.tgz#0591f5a1146e3ab9c8e4d303d6cf966f5e6d7608" + +react-clone-referenced-element@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.0.1.tgz#2bba8c69404c5e4a944398600bcc4c941f860682" + +react-color@^2.11.4: + version "2.13.5" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.13.5.tgz#741cbfa2bfca1e86b08d13886051ea2017414043" + dependencies: + lodash "^4.0.1" + material-colors "^1.2.1" + reactcss "^1.2.0" + tinycolor2 "^1.1.2" + +react-datetime@^2.8.10: + version "2.9.0" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.9.0.tgz#9ec80060cbb8e5c5d8f98f0acebb6f4712ce449a" + dependencies: + "@types/react" ">=15" + object-assign "^3.0.0" + prop-types "^15.5.7" + react-onclickoutside "^5.9.0" + +react-deep-force-update@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz#bcd31478027b64b3339f108921ab520b4313dc2c" + +react-dev-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-1.0.3.tgz#ff52a616e1d3aad388ad76aaa888cc4e10387537" + dependencies: + "@timer/detect-port" "1.1.3" + address "1.0.1" + anser "1.3.0" + babel-code-frame "6.22.0" + chalk "1.1.3" + cross-spawn "4.0.2" + escape-string-regexp "1.0.5" + filesize "3.3.0" + gzip-size "3.0.0" + html-entities "1.2.1" + inquirer "3.0.6" + opn "5.0.0" + recursive-readdir "2.2.1" + shell-quote "1.6.1" + sockjs-client "1.1.4" + strip-ansi "3.0.1" + text-table "0.2.0" + +react-dev-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.1.1.tgz#09ae7209a81384248db56547e718e65bd3b20eb5" + dependencies: + address "1.0.2" + anser "1.4.1" + babel-code-frame "6.22.0" + chalk "1.1.3" + cross-spawn "5.1.0" + detect-port-alt "1.1.3" + escape-string-regexp "1.0.5" + filesize "3.5.10" + global-modules "1.0.0" + gzip-size "3.0.0" + html-entities "1.2.1" + inquirer "3.2.1" + is-root "1.0.0" + opn "5.1.0" + recursive-readdir "2.2.1" + shell-quote "1.6.1" + sockjs-client "1.1.4" + strip-ansi "3.0.1" + text-table "0.2.0" + +react-devtools-core@^2.0.8: + version "2.5.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-2.5.0.tgz#5ad179f88f22d205940721e38e4ecc3a2d35bf03" + dependencies: + shell-quote "^1.6.1" + ws "^2.0.3" + +react-docgen@^2.15.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.17.0.tgz#b0f3e85af955714e1067593c1043cb82611a93d1" + dependencies: + async "^2.1.4" + babel-runtime "^6.9.2" + babylon "~5.8.3" + commander "^2.9.0" + doctrine "^2.0.0" + node-dir "^0.1.10" + recast "^0.12.6" + +react-dom-factories@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.1.tgz#c50692ac5ff1adb39d86dfe6dbe3485dacf58455" + +react-dom@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react-error-overlay@^1.0.1: + version "1.0.10" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-1.0.10.tgz#da8cd1eafac41afdca2a33792b23694ef6c528f1" + dependencies: + anser "1.4.1" + babel-code-frame "6.22.0" + babel-runtime "6.23.0" + react-dev-utils "^3.1.0" + settle-promise "1.0.0" + source-map "0.5.6" + +react-html-attributes@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/react-html-attributes/-/react-html-attributes-1.4.1.tgz#97b5ec710da68833598c8be6f89ac436216840a5" + dependencies: + html-element-attributes "^1.0.0" + +react-icon-base@2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.0.7.tgz#0bd18736bd6ce79ca6d69ce8387a07fb8d4ceffe" + dependencies: + prop-types "15.5.8" + +react-icons@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-2.2.5.tgz#f942501c21a4cc0456ce2bbee5032c93f6051dcf" + dependencies: + react-icon-base "2.0.7" + +react-inspector@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.1.4.tgz#2123fab74f68ae3136fbd02392fadb764326d04d" + dependencies: + babel-runtime "^6.23.0" + is-dom "^1.0.9" + +react-komposer@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/react-komposer/-/react-komposer-1.13.1.tgz#4b8ac4bcc71323bd7413dcab95c831197f50eed0" + dependencies: + babel-runtime "6.x.x" + hoist-non-react-statics "1.x.x" + invariant "2.x.x" + mobx "^2.3.4" + shallowequal "0.2.x" + +react-komposer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-komposer/-/react-komposer-2.0.0.tgz#b964738014a9b4aee494a83c0b5b833d66072a90" + dependencies: + babel-runtime "^6.11.6" + hoist-non-react-statics "^1.2.0" + lodash.pick "^4.4.0" + react-stubber "^1.0.0" + shallowequal "^0.2.2" + +react-modal@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-2.2.4.tgz#a32483c3555bd7677f09bca65d82f51da3abcbc0" + dependencies: + exenv "^1.2.0" + prop-types "^15.5.10" + react-dom-factories "^1.0.0" + +react-native-compat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-native-compat/-/react-native-compat-1.0.0.tgz#491dbd8a0105ac061b8d0d926463ce6a3dff33bc" + dependencies: + prop-types "^15.5.10" + +react-native@^0.43.3: + version "0.43.4" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.43.4.tgz#92fb6937ab415b2e5612835a93a61845de98eb4d" + dependencies: + absolute-path "^0.0.0" + art "^0.10.0" + async "^2.0.1" + babel-core "^6.21.0" + babel-generator "^6.21.0" + babel-plugin-external-helpers "^6.18.0" + babel-plugin-syntax-trailing-function-commas "^6.20.0" + babel-plugin-transform-async-to-generator "6.16.0" + babel-plugin-transform-flow-strip-types "^6.21.0" + babel-plugin-transform-object-rest-spread "^6.20.2" + babel-polyfill "^6.20.0" + babel-preset-es2015-node "^6.1.1" + babel-preset-fbjs "^2.1.0" + babel-preset-react-native "^1.9.1" + babel-register "^6.18.0" + babel-runtime "^6.20.0" + babel-traverse "^6.21.0" + babel-types "^6.21.0" + babylon "^6.14.1" + base64-js "^1.1.2" + bser "^1.0.2" + chalk "^1.1.1" + commander "^2.9.0" + concat-stream "^1.6.0" + connect "^2.8.3" + core-js "^2.2.2" + debug "^2.2.0" + denodeify "^1.2.1" + event-target-shim "^1.0.5" + fbjs "~0.8.9" + fbjs-scripts "^0.7.0" + form-data "^2.1.1" + fs-extra "^0.26.2" + glob "^5.0.15" + graceful-fs "^4.1.3" + image-size "^0.3.5" + immutable "~3.7.6" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + jest-haste-map "19.0.0" + joi "^6.6.1" + json-stable-stringify "^1.0.1" + json5 "^0.4.0" + left-pad "^1.1.3" + lodash "^4.16.6" + mime "^1.3.4" + mime-types "2.1.11" + minimist "^1.2.0" + mkdirp "^0.5.1" + node-fetch "^1.3.3" + npmlog "^2.0.4" + opn "^3.0.2" + optimist "^0.6.1" + plist "^1.2.0" + promise "^7.1.1" + react-clone-referenced-element "^1.0.1" + react-devtools-core "^2.0.8" + react-timer-mixin "^0.13.2" + react-transform-hmr "^1.0.4" + rebound "^0.0.13" + regenerator-runtime "^0.9.5" + request "^2.79.0" + rimraf "^2.5.4" + sane "~1.4.1" + semver "^5.0.3" + shell-quote "1.6.1" + source-map "^0.5.6" + stacktrace-parser "^0.1.3" + temp "0.8.3" + throat "^3.0.0" + uglify-js "^2.6.2" + whatwg-fetch "^1.0.0" + wordwrap "^1.0.0" + worker-farm "^1.3.1" + write-file-atomic "^1.2.0" + ws "^1.1.0" + xcode "^0.8.9" + xmldoc "^0.4.0" + xpipe "^1.0.5" + yargs "^6.4.0" + +react-onclickoutside@^5.9.0: + version "5.11.1" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-5.11.1.tgz#00314e52567cf55faba94cabbacd119619070623" + dependencies: + create-react-class "^15.5.x" + +react-proxy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" + dependencies: + lodash "^4.6.1" + react-deep-force-update "^1.0.0" + +react-render-html@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/react-render-html/-/react-render-html-0.1.6.tgz#57d63acc8e4a4cd0716bc5105af5c64c392f83b1" + dependencies: + camelcase "^3.0.0" + parse5 "^2.0.2" + react-attr-converter "0.1.1" + uppercamelcase "^1.1.0" + +react-scripts@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.0.1.tgz#369e3fc8000e761b8fbbd232033e34c79902e580" + dependencies: + autoprefixer "7.1.0" + babel-core "6.24.1" + babel-eslint "7.2.3" + babel-jest "20.0.3" + babel-loader "7.0.0" + babel-preset-react-app "^3.0.0" + babel-runtime "6.23.0" + case-sensitive-paths-webpack-plugin "2.0.0" + chalk "1.1.3" + connect-history-api-fallback "1.3.0" + cross-spawn "4.0.2" + css-loader "0.28.1" + dotenv "4.0.0" + eslint "3.19.0" + eslint-config-react-app "^1.0.1" + eslint-loader "1.7.1" + eslint-plugin-flowtype "2.33.0" + eslint-plugin-import "2.2.0" + eslint-plugin-jsx-a11y "5.0.1" + eslint-plugin-react "7.0.1" + extract-text-webpack-plugin "2.1.0" + file-loader "0.11.1" + fs-extra "3.0.1" + html-webpack-plugin "2.28.0" + inquirer "3.0.6" + jest "20.0.3" + object-assign "4.1.1" + postcss-flexbugs-fixes "3.0.0" + postcss-loader "2.0.5" + promise "7.1.1" + react-dev-utils "^1.0.1" + react-error-overlay "^1.0.1" + style-loader "0.17.0" + sw-precache-webpack-plugin "0.9.1" + url-loader "0.5.8" + webpack "2.5.1" + webpack-dev-server "2.4.5" + webpack-manifest-plugin "1.1.0" + whatwg-fetch "2.0.3" + optionalDependencies: + fsevents "1.0.17" + +react-simple-di@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-simple-di/-/react-simple-di-1.2.0.tgz#dde0e5bf689f391ef2ab02c9043b213fe239c6d0" + dependencies: + babel-runtime "6.x.x" + hoist-non-react-statics "1.x.x" + +react-split-pane@^0.1.65: + version "0.1.66" + resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.66.tgz#369085dd07ec1237bda123e73813dcc7dc6502c1" + dependencies: + inline-style-prefixer "^3.0.6" + prop-types "^15.5.10" + react-style-proptype "^3.0.0" + +react-stubber@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-stubber/-/react-stubber-1.0.0.tgz#41ee2cac72d4d4fd70a63896da98e13739b84628" + dependencies: + babel-runtime "^6.5.0" + +react-style-proptype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.0.0.tgz#89e0b646f266c656abb0f0dd8202dbd5036c31e6" + dependencies: + prop-types "^15.5.4" + +react-test-renderer@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.1.tgz#026f4a5bb5552661fd2cc4bbcd0d4bc8a35ebf7e" + dependencies: + fbjs "^0.8.9" + object-assign "^4.1.0" + +react-textarea-autosize@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-4.3.2.tgz#962a52c68caceae408c18acecec29049b81e42fa" + dependencies: + prop-types "^15.5.8" + +react-timer-mixin@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.3.tgz#0da8b9f807ec07dc3e854d082c737c65605b3d22" + +react-transform-hmr@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" + dependencies: + global "^4.3.0" + react-proxy "^1.1.7" + +react-transition-group@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f" + dependencies: + chain-function "^1.0.0" + dom-helpers "^3.2.0" + loose-envify "^1.3.1" + prop-types "^15.5.6" + warning "^3.0.0" + +react-treebeard@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/react-treebeard/-/react-treebeard-2.0.3.tgz#cd644209c1be2fe2be3ae4bca8350ed6abf293d6" + dependencies: + babel-runtime "^6.23.0" + deep-equal "^1.0.1" + prop-types "^15.5.8" + radium "^0.19.0" + shallowequal "^0.2.2" + velocity-react "^1.3.1" + +react@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +reactcss@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.2.tgz#41b0ef43e01d54880357c34b11ac1531209350ef" + dependencies: + lodash "^4.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-cmd-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0, read-pkg@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@1.0: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@1.1: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readjson@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readjson/-/readjson-1.1.3.tgz#cb4c691551c6e4fee667f51c29cce2f5cea4593c" + dependencies: + try-catch "~1.0.0" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rebound@^0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/rebound/-/rebound-0.0.13.tgz#4a225254caf7da756797b19c5817bf7a7941fac1" + +recast@0.10.33: + version "0.10.33" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697" + dependencies: + ast-types "0.8.12" + esprima-fb "~15001.1001.0-dev-harmony-fb" + private "~0.1.5" + source-map "~0.5.0" + +recast@^0.10.10: + version "0.10.43" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" + dependencies: + ast-types "0.8.15" + esprima-fb "~15001.1001.0-dev-harmony-fb" + private "~0.1.5" + source-map "~0.5.0" + +recast@^0.11.17: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +recast@^0.12.5, recast@^0.12.6: + version "0.12.6" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.6.tgz#4b0fb82feb1d10b3bd62d34943426d9b3ed30d4c" + dependencies: + ast-types "0.9.11" + core-js "^2.4.1" + esprima "~4.0.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +recursive-readdir@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" + dependencies: + minimatch "3.0.3" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +redux@^3.6.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regenerator-runtime@^0.9.5: + version "0.9.6" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" + +regenerator-transform@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regenerator@0.8.40: + version "0.8.40" + resolved "https://registry.yarnpkg.com/regenerator/-/regenerator-0.8.40.tgz#a0e457c58ebdbae575c9f8cd75127e93756435d8" + dependencies: + commoner "~0.10.3" + defs "~1.1.0" + esprima-fb "~15001.1001.0-dev-harmony-fb" + private "~0.1.5" + recast "0.10.33" + through "~2.3.8" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexpu/-/regexpu-1.3.0.tgz#e534dc991a9e5846050c98de6d7dd4a55c9ea16d" + dependencies: + esprima "^2.6.0" + recast "^0.10.10" + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.0, registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +remark-cli@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-4.0.0.tgz#bb84c14ffeb6f5b658eff4dfbb77cdd7775bab73" + dependencies: + markdown-extensions "^1.1.0" + remark "^8.0.0" + unified-args "^4.0.0" + +remark-lint-code-eslint@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-code-eslint/-/remark-lint-code-eslint-2.0.0.tgz#6fb394f0863431cd7aff0da4de097812021e7d8b" + dependencies: + eslint "^3.16.1" + +remark-lint-code@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-lint-code/-/remark-lint-code-2.0.0.tgz#03e0c2e90aeedbe875a8795feacf57988b7d957c" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-visit "^1.0.0" + +remark-lint-final-newline@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-final-newline/-/remark-lint-final-newline-1.0.1.tgz#1d751a29fb752f1c09e90b52850a05d1cf6c77f1" + dependencies: + unified-lint-rule "^1.0.0" + +remark-lint-hard-break-spaces@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-1.0.2.tgz#c2f6ccb03dbeb1a6341d3e300f63a5b46b30d755" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-list-item-bullet-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-1.0.1.tgz#0aed07642fb408b820196855fa7aeb0b7594006f" + dependencies: + plur "^2.1.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-list-item-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-1.0.1.tgz#ee206b6fb432eb09ec1e32fede156affb1f68db3" + dependencies: + plur "^2.1.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-no-auto-link-without-protocol@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-1.0.1.tgz#9221985b9a1cc7c671d2769488acc9b836792a6f" + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-no-blockquote-without-marker@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-2.0.1.tgz#5b8495f5a8d4174cf91fc7248f94475553ab4d87" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + vfile-location "^2.0.1" + +remark-lint-no-duplicate-definitions@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-1.0.1.tgz#1f08139ef5dbd51d9e7445fbde4597ea292c2270" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-no-heading-content-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-1.0.1.tgz#a4269512dce9d2e100b933c3c833c94de2436cbf" + dependencies: + mdast-util-heading-style "^1.0.2" + plur "^2.1.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-no-inline-padding@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-1.0.1.tgz#13ef869daa8448fd4c381bda4ace05f2f9921141" + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^1.1.1" + +remark-lint-no-literal-urls@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-1.0.1.tgz#840f113520f8392315be75f61e548e6394c038f6" + dependencies: + mdast-util-to-string "^1.0.2" + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint-no-shortcut-reference-image@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-1.0.1.tgz#75861042fdd1b2418141a3b0f46eaa8671470379" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^1.1.1" + +remark-lint-no-shortcut-reference-link@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-1.0.2.tgz#caf7db8996aa5badab0ff3fc5ce43d65823b5d40" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^1.1.1" + +remark-lint-no-undefined-references@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-1.0.1.tgz#7f630a7fa65bb02b49b10410b52dc2bd12bafed7" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^1.1.1" + +remark-lint-no-unused-definitions@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-1.0.1.tgz#8cbd3464cce390500ec888a324ec0ea64c2a455a" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-visit "^1.1.1" + +remark-lint-ordered-list-marker-style@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-1.0.1.tgz#364ad33ebd31b141392aec41fc5eee77640155d7" + dependencies: + unified-lint-rule "^1.0.0" + unist-util-generated "^1.1.0" + unist-util-position "^3.0.0" + unist-util-visit "^1.1.1" + +remark-lint@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.1.tgz#68b10ec25d5145042f7cfa52649e20ef7bc91482" + dependencies: + remark-message-control "^4.0.0" + +remark-message-control@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-4.0.1.tgz#2913cd60b316d9f9f390aa7f34639d20cf55996d" + dependencies: + mdast-comment-marker "^1.0.0" + trim "0.0.1" + unist-util-visit "^1.0.0" + vfile-location "^2.0.0" + +remark-parse@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-4.0.0.tgz#99f1f049afac80382366e2e0d0bd55429dd45d8b" + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.0.2" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remark-preset-lint-recommended@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-3.0.1.tgz#75486577873e20f514cf66e399fcc0d872971049" + dependencies: + remark-lint "^6.0.0" + remark-lint-final-newline "^1.0.0" + remark-lint-hard-break-spaces "^1.0.0" + remark-lint-list-item-bullet-indent "^1.0.0" + remark-lint-list-item-indent "^1.0.0" + remark-lint-no-auto-link-without-protocol "^1.0.0" + remark-lint-no-blockquote-without-marker "^2.0.0" + remark-lint-no-duplicate-definitions "^1.0.0" + remark-lint-no-heading-content-indent "^1.0.0" + remark-lint-no-inline-padding "^1.0.0" + remark-lint-no-literal-urls "^1.0.0" + remark-lint-no-shortcut-reference-image "^1.0.0" + remark-lint-no-shortcut-reference-link "^1.0.0" + remark-lint-no-undefined-references "^1.0.0" + remark-lint-no-unused-definitions "^1.0.0" + remark-lint-ordered-list-marker-style "^1.0.0" + +remark-slug@^4.0.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-4.2.3.tgz#8d987d0e5e63d4a49ea37b90fe999a3dcfc81b72" + dependencies: + github-slugger "^1.0.0" + mdast-util-to-string "^1.0.0" + unist-util-visit "^1.0.0" + +remark-stringify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-4.0.0.tgz#4431884c0418f112da44991b4e356cfe37facd87" + dependencies: + ccount "^1.0.0" + is-alphanumeric "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + longest-streak "^2.0.1" + markdown-escapes "^1.0.0" + markdown-table "^1.1.0" + mdast-util-compact "^1.0.0" + parse-entities "^1.0.2" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + stringify-entities "^1.0.1" + unherit "^1.0.4" + xtend "^4.0.1" + +remark-toc@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-toc/-/remark-toc-4.0.1.tgz#ff36ff6de54ea07dd59e3f5334a4a3aac1e93185" + dependencies: + mdast-util-toc "^2.0.0" + remark-slug "^4.0.0" + +remark@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-8.0.0.tgz#287b6df2fe1190e263c1d15e486d3fa835594d6d" + dependencies: + remark-parse "^4.0.0" + remark-stringify "^4.0.0" + unified "^6.0.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^1.1.0, repeating@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" + dependencies: + is-finite "^1.0.0" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +request@2.81.0, request@^2.79.0, request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.2, require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-dir@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + +response-time@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/response-time/-/response-time-2.3.2.tgz#ffa71bab952d62f7c1d49b7434355fbc68dffc5a" + dependencies: + depd "~1.1.0" + on-headers "~1.0.1" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rfc6902@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-1.3.0.tgz#85b2c69c42dcf116082437b9829a962446b4c4a5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +rndm@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +rxjs@^5.0.0-beta.11: + version "5.4.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f" + dependencies: + symbol-observable "^1.0.1" + +safe-buffer@5.0.1, safe-buffer@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sane@~1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715" + dependencies: + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sane@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.5.0.tgz#a4adeae764d048621ecb27d5f9ecf513101939f3" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sane@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sax@^1.2.1, sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +sax@~1.1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.6.tgz#5d616be8a5e607d54e114afae55b7eaf2fcc3240" + +schema-utils@^0.3.0, schema-utils@^0.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selfsigned@^1.9.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" + dependencies: + node-forge "0.6.33" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@5.x, semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +send@0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz#765e7607c8055452bba6f0b052595350986036de" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.3.1" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.0.3" + statuses "~1.2.1" + +send@0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" + dependencies: + debug "2.6.8" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + fresh "0.5.0" + http-errors "~1.6.2" + mime "1.3.4" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-favicon@^2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.3.tgz#5986b17b0502642b641c21f818b1acce32025d23" + dependencies: + etag "~1.8.0" + fresh "0.5.0" + ms "2.0.0" + parseurl "~1.3.1" + safe-buffer "5.0.1" + +serve-favicon@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.3.2.tgz#dd419e268de012ab72b319d337f2105013f9381f" + dependencies: + etag "~1.7.0" + fresh "0.3.0" + ms "0.7.2" + parseurl "~1.3.1" + +serve-index@^1.7.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" + dependencies: + accepts "~1.3.3" + batch "0.6.1" + debug "2.6.8" + escape-html "~1.0.3" + http-errors "~1.6.1" + mime-types "~2.1.15" + parseurl "~1.3.1" + +serve-index@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.7.3.tgz#7a057fc6ee28dc63f64566e5fa57b111a86aecd2" + dependencies: + accepts "~1.2.13" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.3.1" + mime-types "~2.1.9" + parseurl "~1.3.1" + +serve-static@1.12.4: + version "1.12.4" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.15.4" + +serve-static@~1.10.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz#ce5a6ecd3101fed5ec09827dac22a9c29bfb0535" + dependencies: + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.13.2" + +serviceworker-cache-polyfill@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +settle-promise@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/settle-promise/-/settle-promise-1.0.0.tgz#697adb58b821f387ce2757c06efc9de5f0ee33d8" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +shallowequal@0.2.x, shallowequal@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" + dependencies: + lodash.keys "^3.1.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@1.6.1, shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shelljs@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" + +shelljs@^0.7.0, shelljs@^0.7.5, shelljs@^0.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellsubstitute@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shellsubstitute/-/shellsubstitute-1.2.0.tgz#e4f702a50c518b0f6fe98451890d705af29b6b70" + +shellwords@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +simple-fmt@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/simple-fmt/-/simple-fmt-0.1.0.tgz#191bf566a59e6530482cb25ab53b4a8dc85c3a6b" + +simple-is@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0" + +simple-plist@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.1.4.tgz#10eb51b47e33c556eb8ec46d5ee64d64e717db5d" + dependencies: + bplist-creator "0.0.4" + bplist-parser "0.0.6" + plist "1.2.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sliced@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sockjs-client@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5" + dependencies: + debug "^2.2.0" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.1" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.18: + version "0.3.18" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +sort-keys@^1.0.0, sort-keys@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^0.1.7, source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +source-list-map@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-support@^0.2.10: + version "0.2.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.2.10.tgz#ea5a3900a1c1cb25096a0ae8cc5c2b4b10ded3dc" + dependencies: + source-map "0.1.32" + +source-map-support@^0.4.15: + version "0.4.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" + dependencies: + source-map "^0.5.6" + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + dependencies: + amdefine ">=0.0.4" + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split2@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.1.1.tgz#7a1f551e176a90ecd3345f7246a0cfe175ef4fd0" + dependencies: + through2 "^2.0.2" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stable@~0.1.3: + version "0.1.6" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" + +stacktrace-parser@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz#01397922e5f62ecf30845522c95c4fe1d25e7d4e" + +staged-git-files@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" + +state-toggle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.0.tgz#d20f9a616bb4f0c3b98b91922d25b640aa2bc425" + +statuses@1, "statuses@>= 1.3.1 < 2", statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +statuses@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-buffers@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-0.2.6.tgz#181c08d5bb3690045f69401b9ae6a7a0cf3313fc" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-consume@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +stream-counter@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de" + dependencies: + readable-stream "~1.1.8" + +stream-http@^2.3.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-to-observable@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-length@^1.0.0, string-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + dependencies: + strip-ansi "^3.0.0" + +string-width@^1.0.0, string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.padstart@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.1.tgz#b150ec2d72ac4c1b5f324b51fb6b28c9cdff058c" + dependencies: + character-entities-html4 "^1.0.0" + character-entities-legacy "^1.0.0" + is-alphanumerical "^1.0.0" + is-hexadecimal "^1.0.0" + +stringmap@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1" + +stringset@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/stringset/-/stringset-0.2.1.tgz#ef259c4e349344377fcd1c913dd2e848c9c042b5" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom@3.0.0, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +strong-log-transformer@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz#f7fb93758a69a571140181277eea0c2eb1301fa3" + dependencies: + byline "^5.0.0" + duplexer "^0.1.1" + minimist "^0.1.0" + moment "^2.6.0" + through "^2.3.4" + +style-loader@0.17.0, style-loader@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.17.0.tgz#e8254bccdb7af74bd58274e36107b4d5ab4df310" + dependencies: + loader-utils "^1.0.2" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.1.0, supports-color@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + dependencies: + has-flag "^2.0.0" + +svg-tag-names@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-1.1.1.tgz#9641b29ef71025ee094c7043f7cdde7d99fbd50a" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +sw-precache-webpack-plugin@0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.9.1.tgz#2381ff706fbb6cabdb20a20337de8e58fb49a2a7" + dependencies: + del "^2.2.2" + sw-precache "^5.0.0" + uglify-js "^2.8.5" + +sw-precache@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.0.tgz#eb6225ce580ceaae148194578a0ad01ab7ea199c" + dependencies: + dom-urls "^1.1.0" + es6-promise "^4.0.5" + glob "^7.1.1" + lodash.defaults "^4.2.0" + lodash.template "^4.4.0" + meow "^3.7.0" + mkdirp "^0.5.1" + pretty-bytes "^4.0.2" + sw-toolbox "^3.4.0" + update-notifier "^1.0.3" + +sw-toolbox@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" + dependencies: + path-to-regexp "^1.0.1" + serviceworker-cache-polyfill "^4.0.0" + +symbol-observable@^1.0.1, symbol-observable@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +symbol-tree@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +symlink-dir@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/symlink-dir/-/symlink-dir-1.1.0.tgz#13a747574f1b83a3eeb02f401358365178637482" + dependencies: + "@types/mz" "0.0.31" + "@types/node" "^8.0.0" + graceful-fs "^4.1.11" + is-windows "^1.0.0" + mkdirp-promise "^5.0.0" + mz "^2.4.0" + +table@^3.7.8: + 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 "^2.0.0" + +table@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" + 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 "^2.0.0" + +tapable@^0.2.7, tapable@~0.2.5: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + +temp-write@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.3.0.tgz#c1a96de2b36061342eae81f44ff001aec8f615a9" + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^2.2.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +temp@0.8.3, temp@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + +tempfile@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +test-exclude@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-extensions@^1.0.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc" + +text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + dependencies: + any-promise "^1.0.0" + +throat@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" + +through2@^2.0.0, through2@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunky@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timed-out@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + dependencies: + setimmediate "^1.0.4" + +tinycolor2@^1.1.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + +tmp@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.0, to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-vfile@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-2.1.2.tgz#63f410e3b72937be84e8198961caf74be2da4388" + dependencies: + is-buffer "^1.1.4" + vfile "^2.0.0" + +topo@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" + dependencies: + hoek "2.x.x" + +toposort@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" + +touch@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" + dependencies: + nopt "~1.0.10" + +tough-cookie@^2.3.2, tough-cookie@~2.3.0: + 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" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + +trim-right@^1.0.0, trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +trim-trailing-lines@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz#7aefbb7808df9d669f6da2e438cac8c46ada7684" + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + +trough@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.1.tgz#a9fd8b0394b0ae8fff82e0633a0a36ccad5b5f86" + +try-catch@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/try-catch/-/try-catch-1.0.0.tgz#3797dab39a266775f4d0da5cbf42aca3f03608e6" + +try-resolve@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tryor@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tryor/-/tryor-0.1.2.tgz#8145e4ca7caff40acde3ccf946e8b8bb75b4172b" + +tsscmp@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.15, type-is@~1.6.6: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typescript-definition-tester@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/typescript-definition-tester/-/typescript-definition-tester-0.0.5.tgz#91c574d78ea05b81ed81244d50ec30d8240c356f" + dependencies: + assertion-error "^1.0.1" + dts-bundle "^0.2.0" + lodash "^3.6.0" + +typescript@^2.2.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.1.tgz#ce7cc93ada3de19475cc9d17e3adea7aee1832aa" + +ua-parser-js@^0.7.9: + version "0.7.14" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" + +uglify-js@3.0.x: + version "3.0.28" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.28.tgz#96b8495f0272944787b5843a1679aa326640d5f7" + dependencies: + commander "~2.11.0" + source-map "~0.5.1" + +uglify-js@^2.6, uglify-js@^2.6.2, uglify-js@^2.8.29, uglify-js@^2.8.5: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uid-safe@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81" + dependencies: + random-bytes "~1.0.0" + +uid-safe@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.0.0.tgz#a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137" + dependencies: + base64-url "1.2.1" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +ultron@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864" + +undefsafe@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + +unherit@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.0.tgz#6b9aaedfbf73df1756ad9e316dd981885840cd7d" + dependencies: + inherits "^2.0.1" + xtend "^4.0.1" + +unified-args@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-4.0.0.tgz#8d9b9b8ad347beb37f430562a62c4d361b42220f" + dependencies: + camelcase "^4.0.0" + chalk "^2.0.0" + chokidar "^1.5.1" + minimist "^1.2.0" + text-table "^0.2.0" + unified-engine "^4.0.0" + +unified-engine@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-4.0.0.tgz#507ff99115c861ba507d9bdc8825b298840752a4" + dependencies: + concat-stream "^1.5.1" + debug "^2.2.0" + fault "^1.0.0" + fn-name "^2.0.1" + glob "^7.0.3" + ignore "^3.2.0" + is-empty "^1.0.0" + is-hidden "^1.0.1" + is-object "^1.0.1" + js-yaml "^3.6.1" + load-plugin "^2.0.0" + parse-json "^2.2.0" + to-vfile "^2.0.0" + trough "^1.0.0" + vfile-reporter "^4.0.0" + vfile-statistics "^1.1.0" + x-is-function "^1.0.4" + x-is-string "^0.1.0" + xtend "^4.0.1" + +unified-lint-rule@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.2.tgz#419270d7de71436938cbcb34d8683f56a14d74b7" + dependencies: + wrapped "^1.0.1" + +unified@^6.0.0: + version "6.1.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-6.1.5.tgz#716937872621a63135e62ced2f3ac6a063c6fb87" + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^2.0.0" + x-is-function "^1.0.4" + x-is-string "^0.1.0" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unist-util-generated@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.1.tgz#99f16c78959ac854dee7c615c291924c8bf4de7f" + +unist-util-modify-children@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-1.1.1.tgz#66d7e6a449e6f67220b976ab3cb8b5ebac39e51d" + dependencies: + array-iterate "^1.0.0" + +unist-util-position@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.0.tgz#e6e1e03eeeb81c5e1afe553e8d4adfbd7c0d8f82" + +unist-util-remove-position@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz#5a85c1555fc1ba0c101b86707d15e50fa4c871bb" + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.1.tgz#3ccbdc53679eed6ecf3777dd7f5e3229c1b6aa3c" + +unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.1.3.tgz#ec268e731b9d277a79a5b5aa0643990e405d600b" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +untildify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" + dependencies: + os-homedir "^1.0.0" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" + dependencies: + chalk "^1.0.0" + configstore "^1.0.0" + is-npm "^1.0.0" + latest-version "^1.0.0" + repeating "^1.1.2" + semver-diff "^2.0.0" + string-length "^1.0.0" + +update-notifier@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" + dependencies: + boxen "^0.6.0" + chalk "^1.0.0" + configstore "^2.0.0" + is-npm "^1.0.0" + latest-version "^2.0.0" + lazy-req "^1.1.0" + semver-diff "^2.0.0" + xdg-basedir "^2.0.0" + +update-notifier@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +uppercamelcase@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/uppercamelcase/-/uppercamelcase-1.1.0.tgz#324d98a6b3afc7e8a8953e10641509b0e4e23f97" + dependencies: + camelcase "^1.2.1" + +urijs@^1.16.1: + version "1.18.12" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.12.tgz#f04d91e1fabb29c16fc842f9a14ee8ddc3fda64e" + +url-loader@0.5.8: + version "0.5.8" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.8.tgz#b9183b1801e0f847718673673040bc9dc1c715c5" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-loader@^0.5.8: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@^1.1.1, url-parse@^1.1.8, url-parse@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" + dependencies: + querystringify "~1.0.0" + requires-port "1.0.x" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlgrey@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + +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" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@1.0.2, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.1, uuid@^2.0.2, uuid@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10" + +vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" + +velocity-animate@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.0.tgz#fc8771d8dfe1136ff02a707e10fbb0957c4b030f" + +velocity-react@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.3.3.tgz#d6d47276cfc8be2a75623879b20140ac58c1b82b" + dependencies: + lodash "^3.10.1" + prop-types "^15.5.8" + react-transition-group "^1.1.2" + velocity-animate "^1.4.0" + +vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^2.0.0, vfile-location@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.2.tgz#d3675c59c877498e492b4756ff65e4af1a752255" + +vfile-reporter@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-4.0.0.tgz#ea6f0ae1342f4841573985e05f941736f27de9da" + dependencies: + repeat-string "^1.5.0" + string-width "^1.0.0" + supports-color "^4.1.0" + unist-util-stringify-position "^1.0.0" + vfile-statistics "^1.1.0" + +vfile-statistics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.0.tgz#02104c60fdeed1d11b1f73ad65330b7634b3d895" + +vfile@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.2.0.tgz#ce47a4fb335922b233e535db0f7d8121d8fced4e" + dependencies: + is-buffer "^1.1.4" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + +vhost@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/vhost/-/vhost-3.0.2.tgz#2fb1decd4c466aa88b0f9341af33dc1aff2478d5" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +voca@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/voca/-/voca-1.3.0.tgz#02751ac839bf0c92e2cfe88e49c393c94dd50ac3" + +vue-hot-reload-api@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.1.0.tgz#9ca58a6e0df9078554ce1708688b6578754d86de" + +vue-loader@^12.2.1: + version "12.2.2" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-12.2.2.tgz#2b3a764f27018f975bc78cb8b1f55137548ee2d7" + dependencies: + consolidate "^0.14.0" + hash-sum "^1.0.2" + js-beautify "^1.6.3" + loader-utils "^1.1.0" + lru-cache "^4.0.1" + postcss "^5.0.21" + postcss-load-config "^1.1.0" + postcss-selector-parser "^2.0.0" + resolve "^1.3.3" + source-map "^0.5.6" + vue-hot-reload-api "^2.1.0" + vue-style-loader "^3.0.0" + vue-template-es2015-compiler "^1.2.2" + +vue-style-loader@^3.0.0, vue-style-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.0.1.tgz#c8b639bb2f24baf9d78274dc17e4f264c1deda08" + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.4.2.tgz#5a45d843f148b098f6c1d1e35ac20c4956d30ad1" + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.2.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.5.3.tgz#22787de4e37ebd9339b74223bc467d1adee30545" + +vue@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.4.2.tgz#a9855261f191c978cc0dc1150531b8d08149b58c" + +vuex@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-2.3.1.tgz#cde8e997c1f9957719bc7dea154f9aa691d981a6" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watch@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +watchpack@^1.3.1, watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webidl-conversions@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + +webpack-dev-middleware@^1.10.2, webpack-dev-middleware@^1.11.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@2.4.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz#31384ce81136be1080b4b4cde0eb9b90e54ee6cf" + dependencies: + ansi-html "0.0.7" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + opn "4.0.2" + portfinder "^1.0.9" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.2" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.10.2" + yargs "^6.0.0" + +webpack-dev-server@^2.4.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + del "^3.0.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + internal-ip "^1.2.0" + ip "^1.1.5" + loglevel "^1.4.1" + opn "4.0.2" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.11.0" + yargs "^6.0.0" + +webpack-hot-middleware@^2.18.0: + version "2.18.2" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz#84dee643f037c3d59c9de142548430371aa8d3b2" + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-manifest-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.1.0.tgz#6b6c718aade8a2537995784b46bd2e9836057caa" + dependencies: + fs-extra "^0.30.0" + lodash ">=3.5 <5" + +webpack-sources@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" + dependencies: + source-list-map "~0.1.7" + source-map "~0.5.3" + +webpack-sources@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" + dependencies: + source-list-map "^1.1.1" + source-map "~0.5.3" + +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^4.7.0" + ajv-keywords "^1.1.1" + async "^2.1.2" + enhanced-resolve "^3.0.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^0.2.16" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^3.1.0" + tapable "~0.2.5" + uglify-js "^2.8.5" + watchpack "^1.3.1" + webpack-sources "^0.2.3" + yargs "^6.0.0" + +"webpack@^2.5.1 || ^3.0.0": + version "3.5.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +websocket-driver@>=0.5.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +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@2.0.3, whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +whatwg-fetch@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319" + +whatwg-url@^4.3.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +worker-farm@^1.3.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.0.tgz#adfdf0cd40581465ed0a1f648f9735722afd5c8d" + dependencies: + errno "^0.1.4" + xtend "^4.0.1" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrapped@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242" + dependencies: + co "3.1.0" + sliced "^1.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^1.1.2, write-file-atomic@^1.2.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.2.0.tgz#51862506bbb3b619eefab7859f1fd6c6d0530876" + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^2.0.0" + sort-keys "^1.1.1" + write-file-atomic "^2.0.0" + +write-pkg@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@^2.0.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80" + dependencies: + safe-buffer "~5.0.1" + ultron "~1.1.0" + +ws@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.1.0.tgz#8afafecdeab46d572e5397ee880739367aa2f41c" + dependencies: + safe-buffer "~5.1.0" + ultron "~1.1.0" + +x-is-function@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/x-is-function/-/x-is-function-1.0.4.tgz#5d294dc3d268cbdd062580e0c5df77a391d1fa1e" + +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + +xcode@^0.8.9: + version "0.8.9" + resolved "https://registry.yarnpkg.com/xcode/-/xcode-0.8.9.tgz#ec6765f70e9dccccc9f6e9a5b9b4e7e814b4cf35" + dependencies: + node-uuid "1.4.7" + pegjs "0.9.0" + simple-plist "0.1.4" + +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + dependencies: + os-homedir "^1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +xml-name-validator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + +xmlbuilder@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.0.0.tgz#98b8f651ca30aa624036f127d11cc66dc7b907a3" + dependencies: + lodash "^3.5.0" + +xmldoc@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-0.4.0.tgz#d257224be8393eaacbf837ef227fd8ec25b36888" + dependencies: + sax "~1.1.1" + +xmldom@0.1.x: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + +xpipe@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^4.8.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + +yargs@^6.0.0, yargs@^6.4.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yargs@~3.27.0: + version "3.27.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.27.0.tgz#21205469316e939131d59f2da0c6d7f98221ea40" + dependencies: + camelcase "^1.2.1" + cliui "^2.1.0" + decamelize "^1.0.0" + os-locale "^1.4.0" + window-size "^0.1.2" + y18n "^3.2.0" From 8e87fb8ba6599f90a4646816daf7a36ab08b6784 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 25 Aug 2017 22:54:30 +0200 Subject: [PATCH 029/107] CHANGE path of the snapshots files into the regular `__snapshots__` folder --- addons/storyshots/src/test-bodies.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/storyshots/src/test-bodies.js b/addons/storyshots/src/test-bodies.js index 982cc7a40406..009c261b7649 100644 --- a/addons/storyshots/src/test-bodies.js +++ b/addons/storyshots/src/test-bodies.js @@ -16,7 +16,7 @@ function getSnapshotFileName(context) { } const { dir, name } = path.parse(fileName); - return path.format({ dir, name, ext: '.storyshot' }); + return path.format({ dir: path.join(dir, '__snapshots__'), name, ext: '.storyshot' }); } export const snapshotWithOptions = options => ({ story, context }) => { From af02e1537491cc2c49ca57755510bfeb4e3ff7d6 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 25 Aug 2017 22:57:56 +0200 Subject: [PATCH 030/107] CHANGE storyshots on cra-kitchen-sink to use this new feature MOVE previous snapshots from storyshots to __snapshots__ --- .../{ => __snapshots__}/index.storyshot | 0 .../Button.stories.storyshot | 0 .../Welcome.stories.storyshot | 0 addons/storyshots/stories/storyshot.test.js | 2 ++ .../__snapshots__/index.storyshot} | 23 ------------------ .../storybook-components.storyshot | 24 +++++++++++++++++++ .../cra-kitchen-sink/src/storyshots.test.js | 4 ++-- 7 files changed, 28 insertions(+), 25 deletions(-) rename addons/storyshots/stories/directly_required/{ => __snapshots__}/index.storyshot (100%) rename addons/storyshots/stories/required_with_context/{ => __snapshots__}/Button.stories.storyshot (100%) rename addons/storyshots/stories/required_with_context/{ => __snapshots__}/Welcome.stories.storyshot (100%) rename examples/cra-kitchen-sink/src/{__snapshots__/storyshots.test.js.snap => stories/__snapshots__/index.storyshot} (99%) create mode 100644 examples/cra-kitchen-sink/src/stories/__snapshots__/storybook-components.storyshot diff --git a/addons/storyshots/stories/directly_required/index.storyshot b/addons/storyshots/stories/directly_required/__snapshots__/index.storyshot similarity index 100% rename from addons/storyshots/stories/directly_required/index.storyshot rename to addons/storyshots/stories/directly_required/__snapshots__/index.storyshot diff --git a/addons/storyshots/stories/required_with_context/Button.stories.storyshot b/addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot similarity index 100% rename from addons/storyshots/stories/required_with_context/Button.stories.storyshot rename to addons/storyshots/stories/required_with_context/__snapshots__/Button.stories.storyshot diff --git a/addons/storyshots/stories/required_with_context/Welcome.stories.storyshot b/addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot similarity index 100% rename from addons/storyshots/stories/required_with_context/Welcome.stories.storyshot rename to addons/storyshots/stories/required_with_context/__snapshots__/Welcome.stories.storyshot diff --git a/addons/storyshots/stories/storyshot.test.js b/addons/storyshots/stories/storyshot.test.js index 6e5a0fea82c2..5991581f3bef 100644 --- a/addons/storyshots/stories/storyshot.test.js +++ b/addons/storyshots/stories/storyshot.test.js @@ -6,3 +6,5 @@ initStoryshots({ configPath: path.join(__dirname, '..', '.storybook'), test: multiSnapshotWithOptions({}), }); + +console.log('Hey'); diff --git a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot similarity index 99% rename from examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap rename to examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index 7a2ec1259fe3..3b27e86a5a5c 100644 --- a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -2489,29 +2489,6 @@ exports[`Storyshots Cells/Molecules/Atoms.more with text2 1`] = ` `; -exports[`Storyshots Navigation Menu link 1`] = ` - -`; - -exports[`Storyshots Navigation Routed link 1`] = ` - - Try clicking with different mouse buttons and modifier keys (shift/ctrl/alt/cmd) - -`; - exports[`Storyshots Some really long story kind description with text 1`] = ` +`; + +exports[`Storyshots Navigation Routed link 1`] = ` + + Try clicking with different mouse buttons and modifier keys (shift/ctrl/alt/cmd) + +`; diff --git a/examples/cra-kitchen-sink/src/storyshots.test.js b/examples/cra-kitchen-sink/src/storyshots.test.js index 51cce11163f0..e0fd0a58cd40 100644 --- a/examples/cra-kitchen-sink/src/storyshots.test.js +++ b/examples/cra-kitchen-sink/src/storyshots.test.js @@ -1,4 +1,4 @@ -import initStoryshots, { snapshotWithOptions } from '@storybook/addon-storyshots'; +import initStoryshots, { multiSnapshotWithOptions } from '@storybook/addon-storyshots'; import path from 'path'; function createNodeMock(element) { @@ -11,7 +11,7 @@ function createNodeMock(element) { initStoryshots({ framework: 'react', configPath: path.join(__dirname, '..', '.storybook'), - test: snapshotWithOptions({ + test: multiSnapshotWithOptions({ createNodeMock, }), }); From fd3d5e581dc853d72b26aab5d9d5488b1e43de28 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 25 Aug 2017 22:58:22 +0200 Subject: [PATCH 031/107] CLEANUP reduce noise in unit tests --- .../src/client/preview/client_api.test.js | 28 +++++------ app/react/src/server/babel_config.js | 4 +- app/react/src/server/babel_config.test.js | 2 + app/vue/src/client/preview/client_api.test.js | 28 +++++------ .../ui/components/layout/index.test.js | 6 +++ .../modules/ui/components/menu_item.test.js | 8 ++- .../modules/ui/components/search_box.test.js | 49 ++++++++++++++++--- 7 files changed, 86 insertions(+), 39 deletions(-) diff --git a/app/react/src/client/preview/client_api.test.js b/app/react/src/client/preview/client_api.test.js index 80c57f8cd903..ad30b4082e51 100644 --- a/app/react/src/client/preview/client_api.test.js +++ b/app/react/src/client/preview/client_api.test.js @@ -60,7 +60,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa(); + api.storiesOf('none', {}).aa(); expect(data).toBe('foo'); }); @@ -80,7 +80,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa().bb(); + api.storiesOf('none', {}).aa().bb(); expect(data).toEqual(['foo', 'bar']); }); @@ -94,7 +94,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa(); + api.storiesOf('none', {}).aa(); expect(data).toBe('function'); }); @@ -114,7 +114,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').bb(); + api.storiesOf('none', {}).bb(); expect(data).toBe('foo'); }); @@ -129,7 +129,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf(kind).aa(); + api.storiesOf(kind, {}).aa(); expect(data).toBe(kind); }); }); @@ -138,7 +138,7 @@ describe('preview.client_api', () => { it('should add local decorators', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator(fn => `aa-${fn()}`); localApi.add('storyName', () => 'Hello'); @@ -149,7 +149,7 @@ describe('preview.client_api', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); api.addDecorator(fn => `bb-${fn()}`); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.add('storyName', () => 'Hello'); expect(storyStore.stories[0].fn()).toBe('bb-Hello'); @@ -158,7 +158,7 @@ describe('preview.client_api', () => { it('should utilize both decorators at once', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); api.addDecorator(fn => `aa-${fn()}`); localApi.addDecorator(fn => `bb-${fn()}`); @@ -170,7 +170,7 @@ describe('preview.client_api', () => { it('should pass the context', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator(fn => `aa-${fn()}`); localApi.add('storyName', ({ kind, story }) => `${kind}-${story}`); @@ -185,7 +185,7 @@ describe('preview.client_api', () => { it('should have access to the context', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator((fn, { kind, story }) => `${kind}-${story}-${fn()}`); localApi.add('storyName', () => 'Hello'); @@ -224,17 +224,17 @@ describe('preview.client_api', () => { 'story-2.1': () => 'story-2.1', 'story-2.2': () => 'story-2.2', }; - const kind1 = api.storiesOf('kind-1'); + const kind1 = api.storiesOf('kind-1', { filename: 'kind1.js' }); kind1.add('story-1.1', functions['story-1.1']); kind1.add('story-1.2', functions['story-1.2']); - const kind2 = api.storiesOf('kind-2'); + const kind2 = api.storiesOf('kind-2', { filename: 'kind2.js' }); kind2.add('story-2.1', functions['story-2.1']); kind2.add('story-2.2', functions['story-2.2']); const book = api.getStorybook(); expect(book).toEqual([ { kind: 'kind-1', - fileName: null, + fileName: 'kind1.js', stories: [ { name: 'story-1.1', render: functions['story-1.1'] }, { name: 'story-1.2', render: functions['story-1.2'] }, @@ -242,7 +242,7 @@ describe('preview.client_api', () => { }, { kind: 'kind-2', - fileName: null, + fileName: 'kind2.js', stories: [ { name: 'story-2.1', render: functions['story-2.1'] }, { name: 'story-2.2', render: functions['story-2.2'] }, diff --git a/app/react/src/server/babel_config.js b/app/react/src/server/babel_config.js index 8eab74ed4283..6256c660a5e8 100644 --- a/app/react/src/server/babel_config.js +++ b/app/react/src/server/babel_config.js @@ -1,11 +1,9 @@ import fs from 'fs'; import path from 'path'; import JSON5 from 'json5'; +import { console as logger } from 'global'; import defaultConfig from './config/babel'; -// avoid ESLint errors -const logger = console; - function removeReactHmre(presets) { const index = presets.indexOf('react-hmre'); if (index > -1) { diff --git a/app/react/src/server/babel_config.test.js b/app/react/src/server/babel_config.test.js index 7fc9fac65c6c..70001015cfae 100644 --- a/app/react/src/server/babel_config.test.js +++ b/app/react/src/server/babel_config.test.js @@ -1,6 +1,8 @@ import mock from 'mock-fs'; import loadBabelConfig from './babel_config'; +jest.mock('global', () => ({ console: { log: jest.fn(), error: jest.fn(), info: jest.fn() } })); + describe('babel_config', () => { // As the 'fs' is going to be mocked, let's call require.resolve // so the require.cache has the correct route to the file. diff --git a/app/vue/src/client/preview/client_api.test.js b/app/vue/src/client/preview/client_api.test.js index 41379d76b158..847402726118 100644 --- a/app/vue/src/client/preview/client_api.test.js +++ b/app/vue/src/client/preview/client_api.test.js @@ -60,7 +60,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa(); + api.storiesOf('none', {}).aa(); expect(data).toBe('foo'); }); @@ -80,7 +80,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa().bb(); + api.storiesOf('none', {}).aa().bb(); expect(data).toEqual(['foo', 'bar']); }); @@ -94,7 +94,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').aa(); + api.storiesOf('none', {}).aa(); expect(data).toBe('function'); }); @@ -114,7 +114,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf('none').bb(); + api.storiesOf('none', {}).bb(); expect(data).toBe('foo'); }); @@ -129,7 +129,7 @@ describe('preview.client_api', () => { }, }); - api.storiesOf(kind).aa(); + api.storiesOf(kind, {}).aa(); expect(data).toBe(kind); }); }); @@ -138,7 +138,7 @@ describe('preview.client_api', () => { it('should add local decorators', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator(fn => ({ template: `
aa${fn().template}
` })); localApi.add('storyName', () => ({ template: '

hello

' })); @@ -149,7 +149,7 @@ describe('preview.client_api', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); api.addDecorator(fn => ({ template: `
bb${fn().template}
` })); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.add('storyName', () => ({ template: '

hello

' })); expect(storyStore.stories[0].fn().template).toBe('
bb

hello

'); @@ -158,7 +158,7 @@ describe('preview.client_api', () => { it('should utilize both decorators at once', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); api.addDecorator(fn => ({ template: `
aa${fn().template}
` })); localApi.addDecorator(fn => ({ template: `
bb${fn().template}
` })); @@ -170,7 +170,7 @@ describe('preview.client_api', () => { it('should pass the context', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator(fn => ({ template: `
aa${fn().template}
` })); localApi.add('storyName', ({ kind, story }) => ({ template: `

${kind}-${story}

` })); @@ -185,7 +185,7 @@ describe('preview.client_api', () => { it('should have access to the context', () => { const storyStore = new StoryStore(); const api = new ClientAPI({ storyStore }); - const localApi = api.storiesOf('none'); + const localApi = api.storiesOf('none', {}); localApi.addDecorator((fn, { kind, story }) => ({ template: `
${kind}-${story}-${fn().template}
`, })); @@ -226,17 +226,17 @@ describe('preview.client_api', () => { 'story-2.1': () => 'story-2.1', 'story-2.2': () => 'story-2.2', }; - const kind1 = api.storiesOf('kind-1'); + const kind1 = api.storiesOf('kind-1', { filename: 'kind1.js' }); kind1.add('story-1.1', functions['story-1.1']); kind1.add('story-1.2', functions['story-1.2']); - const kind2 = api.storiesOf('kind-2'); + const kind2 = api.storiesOf('kind-2', { filename: 'kind2.js' }); kind2.add('story-2.1', functions['story-2.1']); kind2.add('story-2.2', functions['story-2.2']); const book = api.getStorybook(); expect(book).toEqual([ { kind: 'kind-1', - fileName: null, + fileName: 'kind1.js', stories: [ { name: 'story-1.1', render: functions['story-1.1'] }, { name: 'story-1.2', render: functions['story-1.2'] }, @@ -244,7 +244,7 @@ describe('preview.client_api', () => { }, { kind: 'kind-2', - fileName: null, + fileName: 'kind2.js', stories: [ { name: 'story-2.1', render: functions['story-2.1'] }, { name: 'story-2.2', render: functions['story-2.2'] }, diff --git a/lib/ui/src/modules/ui/components/layout/index.test.js b/lib/ui/src/modules/ui/components/layout/index.test.js index 687b08fe5a2b..4464063cb0bc 100755 --- a/lib/ui/src/modules/ui/components/layout/index.test.js +++ b/lib/ui/src/modules/ui/components/layout/index.test.js @@ -7,6 +7,7 @@ describe('manager.ui.components.layout.index', () => { test('should render provided components', () => { const wrap = shallow( { test('should only render preview', () => { const wrap = shallow( 'LeftPanel'} downPanel={() => 'DownPanel'} @@ -45,6 +49,7 @@ describe('manager.ui.components.layout.index', () => { test('should hide the leftPanel', () => { const wrap = shallow( { test('should hide the downPanel', () => { const wrap = shallow( { describe('render', () => { test('should use "a" tag', () => { - const wrap = shallow(Content); + const wrap = shallow( + + Content + + ); expect( wrap.matchesElement( @@ -25,7 +29,7 @@ describe('manager.ui.components.menu_item', () => { beforeEach(() => { onClick = jest.fn(); - wrap = shallow(); + wrap = shallow(Unittest Content); }); test('should call onClick on a click', () => { diff --git a/lib/ui/src/modules/ui/components/search_box.test.js b/lib/ui/src/modules/ui/components/search_box.test.js index 9d54bf57a765..5c516338985c 100644 --- a/lib/ui/src/modules/ui/components/search_box.test.js +++ b/lib/ui/src/modules/ui/components/search_box.test.js @@ -8,7 +8,14 @@ import SearchBox from './search_box'; describe('manager.ui.components.search_box', () => { describe('render', () => { test('should render FuzzySearch inside ReactModal', () => { - const wrap = shallow(); + const wrap = shallow( + + ); const modal = wrap.find(ReactModal); expect(modal).toBePresent(); @@ -28,7 +35,15 @@ describe('manager.ui.components.search_box', () => { stories: ['b', 'c'], }, ]; - const wrap = shallow(); + const wrap = shallow( + + ); const search = wrap.find(FuzzySearch); const expectedList = [ @@ -57,7 +72,9 @@ describe('manager.ui.components.search_box', () => { describe('events', () => { test('should call the onClose prop when modal requests it', () => { const onClose = jest.fn(); - const wrap = shallow(); + const wrap = shallow( + + ); const modal = wrap.find(ReactModal); modal.simulate('requestClose'); @@ -68,7 +85,14 @@ describe('manager.ui.components.search_box', () => { test('should handle selecting a kind', () => { const onSelectStory = jest.fn(); const onClose = jest.fn(); - const wrap = shallow(); + const wrap = shallow( + + ); const modal = wrap.find(FuzzySearch); modal.simulate('select', { @@ -83,7 +107,14 @@ describe('manager.ui.components.search_box', () => { test('should handle selecting a story', () => { const onSelectStory = jest.fn(); const onClose = jest.fn(); - const wrap = shallow(); + const wrap = shallow( + + ); const modal = wrap.find(FuzzySearch); modal.simulate('select', { @@ -106,7 +137,13 @@ describe('manager.ui.components.search_box', () => { const onSelectStory = jest.fn(); const onClose = jest.fn(); const wrap = shallow( - + ); const modal = wrap.find(FuzzySearch).dive(); From 0a8cf2aaeea06fa4a2be5021a16765cd8b86ab69 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Fri, 25 Aug 2017 15:54:01 -0700 Subject: [PATCH 032/107] Update the panels to be a bit more stylish --- addons/viewport/src/components/Panel.jsx | 200 +++++++++--------- .../src/components/RotateViewport.jsx | 31 +++ .../src/components/SelectViewport.jsx | 31 +++ addons/viewport/src/components/WrapStory.jsx | 4 +- addons/viewport/src/components/styles.js | 30 +++ .../viewport/src/components/viewportInfo.js | 19 +- 6 files changed, 209 insertions(+), 106 deletions(-) create mode 100644 addons/viewport/src/components/RotateViewport.jsx create mode 100644 addons/viewport/src/components/SelectViewport.jsx create mode 100644 addons/viewport/src/components/styles.js diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx index 397c2f54af86..6ebd8b2a9943 100644 --- a/addons/viewport/src/components/Panel.jsx +++ b/addons/viewport/src/components/Panel.jsx @@ -1,115 +1,125 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { viewports, resetViewport } from './viewportInfo'; +import { viewports, defaultViewport, resetViewport } from './viewportInfo'; + +import { SelectViewport } from './SelectViewport'; +import { RotateViewport } from './RotateViewport'; const storybookIframe = 'storybook-preview-iframe'; -const defaultViewport = 'default'; +const containerStyles = { + padding: 15, + width: '100%', + boxSizing: 'border-box', + fontFamily: + '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", Arial, sans-serif', +}; + +import * as styles from './styles'; export class Panel extends Component { - static propTypes = { - channel: PropTypes.object.isRequired, + static propTypes = { + channel: PropTypes.object.isRequired, + }; + + constructor(props, context) { + super(props, context); + this.state = { + viewport: defaultViewport, + isLandscape: false, }; - constructor(props, context) { - super(props, context); - this.state = { - viewport: defaultViewport, - isLandscape: false, - }; - - this.props.channel.on('addon:viewport:update', this.changeViewport); - } + this.props.channel.on('addon:viewport:update', this.changeViewport); + } - componentDidMount() { - this.iframe = document.getElementById(storybookIframe); - } + componentDidMount() { + this.iframe = document.getElementById(storybookIframe); + } - iframe = undefined; + iframe = undefined; - changeViewport = viewport => { - const { viewport: previousViewport, isLandscape } = this.state; + changeViewport = viewport => { + const { viewport: previousViewport, isLandscape } = this.state; - if (previousViewport !== viewport) { - this.setState({ - viewport, - isLandscape: false, - }, this.updateIframe); - } else { - this.updateIframe(); - } - }; + if (previousViewport !== viewport) { + this.setState( + { + viewport, + isLandscape: false, + }, + this.updateIframe + ); + } else { + this.updateIframe(); + } + }; + + toggleLandscape = () => { + const { isLandscape } = this.state; + + // TODO simplify the state management + // ideally we simply dispatch an action to the iframe + this.setState( + { + isLandscape: !isLandscape, + }, + () => { + this.changeViewport(this.state.viewport); + } + ); + }; + + updateIframe() { + const { viewport: viewportKey, isLandscape } = this.state; + const viewport = viewports[viewportKey] || resetViewport; + + if (!this.iframe) { + throw new Error('Cannot find Storybook iframe'); + } - toggleLandscape = () => { - const { isLandscape } = this.state; + Object.keys(viewport.styles).forEach(prop => { + this.iframe.style[prop] = viewport.styles[prop]; + }); - // TODO simplify the state management - // ideally we simply dispatch an action to the iframe - this.setState({ - isLandscape: !isLandscape, - }, () => { - this.changeViewport(this.state.viewport); - }); + if (isLandscape) { + this.iframe.style.height = viewport.styles.width; + this.iframe.style.width = viewport.styles.height; } + } - updateIframe() { - const { viewport: viewportKey, isLandscape } = this.state; - const viewport = viewports[viewportKey] || resetViewport; - - if (!this.iframe) { - throw new Error('Cannot find Storybook iframe'); - } + render() { + const { isLandscape, viewport } = this.state; - Object.keys(viewport.styles).forEach(prop => { - this.iframe.style[prop] = viewport.styles[prop]; - }); + const disableDefault = viewport === defaultViewport; + const disabledStyles = disableDefault ? styles.disabled : {}; - if (isLandscape) { - this.iframe.style.height = viewport.styles.width; - this.iframe.style.width = viewport.styles.height; - } - } + const buttonStyles = { + ...styles.button, + ...disabledStyles, + marginTop: 30, + padding: 20, + }; - render() { - const { isLandscape, viewport } = this.state; - - return ( -
-
- - - -
- -
- -
- -
-

Responsive

-
- - px -
-
- - px -
-
-
- ); - } + return ( +
+ this.changeViewport(e.target.value)} + /> + + + + +
+ ); + } } diff --git a/addons/viewport/src/components/RotateViewport.jsx b/addons/viewport/src/components/RotateViewport.jsx new file mode 100644 index 000000000000..725680508272 --- /dev/null +++ b/addons/viewport/src/components/RotateViewport.jsx @@ -0,0 +1,31 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import * as styles from './styles'; + +export class RotateViewport extends Component { + static propTypes = { + disabled: PropTypes.bool, + onClick: PropTypes.func.isRequired, + active: PropTypes.bool, + }; + + render() { + const { active, ...props } = this.props; + + const disabledStyles = props.disabled ? styles.disabled : {}; + const actionStyles = { + ...styles.action, + ...disabledStyles, + }; + + return ( +
+ + + +
+ ); + } +} diff --git a/addons/viewport/src/components/SelectViewport.jsx b/addons/viewport/src/components/SelectViewport.jsx new file mode 100644 index 000000000000..cace789f5a13 --- /dev/null +++ b/addons/viewport/src/components/SelectViewport.jsx @@ -0,0 +1,31 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; + +import { viewports, defaultViewport } from './viewportInfo'; +import * as styles from './styles'; + +export class SelectViewport extends Component { + static propTypes = { + onChange: PropTypes.func.isRequired, + activeViewport: PropTypes.string.isRequired, + }; + + render() { + const { activeViewport, onChange } = this.props; + return ( +
+ + + +
+ ); + } +} diff --git a/addons/viewport/src/components/WrapStory.jsx b/addons/viewport/src/components/WrapStory.jsx index 2c156b6331dd..9b863e6677db 100644 --- a/addons/viewport/src/components/WrapStory.jsx +++ b/addons/viewport/src/components/WrapStory.jsx @@ -7,12 +7,12 @@ export class WrapStory extends Component { channel: PropTypes.object.isRequired, context: PropTypes.object, storyFn: PropTypes.func, - } + }; static defaultProps = { context: {}, storyFn: context => context, - } + }; componentDidMount() { const { channel } = this.props; diff --git a/addons/viewport/src/components/styles.js b/addons/viewport/src/components/styles.js new file mode 100644 index 000000000000..95ee46eb732b --- /dev/null +++ b/addons/viewport/src/components/styles.js @@ -0,0 +1,30 @@ +export const row = { + width: '100%', + display: 'flex', + marginBottom: 15, +}; + +export const label = { + width: 80, + marginRight: 15, +}; + +const actionColor = 'rgb(247, 247, 247)'; + +export const button = { + color: 'rgb(85, 85, 85)', + width: '100%', + border: `1px solid ${actionColor}`, + backgroundColor: actionColor, + borderRadius: 3, +}; + +export const disabled = { + opacity: '0.5', + cursor: 'not-allowed', +}; + +export const action = { + ...button, + height: 30, +}; diff --git a/addons/viewport/src/components/viewportInfo.js b/addons/viewport/src/components/viewportInfo.js index 829eaa4264b3..7084e56f02c3 100644 --- a/addons/viewport/src/components/viewportInfo.js +++ b/addons/viewport/src/components/viewportInfo.js @@ -5,16 +5,17 @@ const configuredStyles = { boxShadow: 'rgba(0,0,0,0.2) 0px 0px 60px 12px', }; +export const defaultViewport = 'default'; export const resetViewport = { - name: 'Reset', - styles: { - width: '100%', - height: '100%', - border: 'none', - display: 'block', - margin: '0', - boxShadow: 'none', - }, + name: 'Reset', + styles: { + width: '100%', + height: '100%', + border: 'none', + display: 'block', + margin: '0', + boxShadow: 'none', + }, }; export const viewports = { From ad4ba428127f0df9ad13655c52a9d826f7f7377a Mon Sep 17 00:00:00 2001 From: hypnos Date: Sat, 26 Aug 2017 03:23:08 +0300 Subject: [PATCH 033/107] Use shorthand commands in docs --- CONTRIBUTING.md | 47 +++++++++++++++++++++++++---------------------- README.md | 18 +++++++++--------- docs/README.md | 6 +++--- 3 files changed, 37 insertions(+), 34 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d43282085678..a8cb6cf223e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ Thanks for your interest in improving Storybook! We are a community-driven proje Please review this document to help to streamline the process and save everyone's precious time. -This guide assumes you're using `yarn` as package manager. You can use `npm` as well, but it would be less deterministic, as we only commit `yarn.lock` to the repo. +This guide assumes you're using `yarn` as package manager. You may have some success using `npm` as well, but there are chances you'll get wrong versions of root dependencies in that case (we only commit `yarn.lock` to the repo). ## Issues @@ -24,22 +24,25 @@ To test your project against the current latest version of storybook, you can cl 1. Download the latest version of this project, and build it: - ```sh - git clone https://github.com/storybooks/storybook.git - cd storybook - yarn install - yarn run bootstrap -- --core + ```sh + git clone https://github.com/storybooks/storybook.git + cd storybook + yarn + yarn bootstrap -- --core + ``` - 2. Link `storybook` and any other required dependencies: +2. Link `storybook` and any other required dependencies: - ```shcd app/react - yarn link + ```sh + cd app/react + yarn link - cd - yarn link @storybook/react + cd + yarn link @storybook/react # repeat with whichever other parts of the monorepo you are using. + ``` ### Reproductions @@ -51,8 +54,8 @@ A good way to do that is using the example `cra-kitchen-sink` app embedded in th # Download and build this repository: git clone https://github.com/storybooks/storybook.git cd storybook -yarn install -- --core -yarn run bootstrap +yarn +yarn bootstrap -- --core # make changes to try and reproduce the problem, such as adding components + stories yarn start @@ -69,7 +72,7 @@ git push -u master If you follow that process, you can then link to the github repository in the issue. See for an example. -**NOTE**: If your issue involves a webpack config, create-react-app will prevent you from modifying the _app's_ webpack config, however you can still modify storybook's to mirror your app's version of storybook. Alternatively, use `yarn run eject` in the CRA app to get a modifiable webpack config. +**NOTE**: If your issue involves a webpack config, create-react-app will prevent you from modifying the _app's_ webpack config, however you can still modify storybook's to mirror your app's version of storybook. Alternatively, use `yarn eject` in the CRA app to get a modifiable webpack config. ## Pull Requests (PRs) @@ -134,7 +137,7 @@ This project written in ES2016+ syntax so, we need to transpile it before use. So run the following command: ```sh -yarn run dev +yarn dev ``` This will watch files and transpile in watch mode. @@ -168,7 +171,7 @@ yarn link @storybook/react ### Getting Changes -After you've done any change, you need to run the `yarn run storybook` command every time to see those changes. +After you've done any change, you need to run the `yarn storybook` command every time to see those changes. ## Release Guide @@ -193,10 +196,10 @@ git status # clean out extra files # WARNING: destructive if you have extra files lying around! -git clean -fdx && yarn install +git clean -fdx && yarn # build all the packages -yarn run bootstrap -- --all +yarn bootstrap -- --all ``` From here there are different procedures for prerelease (e.g. alpha/beta/rc) and proper release. @@ -207,7 +210,7 @@ From here there are different procedures for prerelease (e.g. alpha/beta/rc) and ```sh # publish and tag the release -yarn run publish -- --concurrency 1 --npm-tag=alpha +yarn publish -- --concurrency 1 --npm-tag=alpha # push the tags git push --tags @@ -217,14 +220,14 @@ git push --tags ```sh # publish but don't commit to git -yarn run publish -- --concurrency 1 --skip-git +yarn publish -- --concurrency 1 --skip-git # Update `CHANGELOG.md` # - Edit PR titles/labels on github until output is good # - Optionally, edit a handwritten description in `CHANGELOG.md` -yarn run changelog +yarn changelog # tag the release and push `CHANGELOG.md` and tags # FIXME: not end-to-end tested! -yarn run github-release +yarn github-release ``` diff --git a/README.md b/README.md index 468edd72e0e8..d7918c911aab 100644 --- a/README.md +++ b/README.md @@ -92,30 +92,30 @@ We welcome contributions to Storybook! ### Development scripts -#### `yarn run bootstrap` +#### `yarn bootstrap` > Installs package dependencies and links packages together - using lerna -#### `yarn run publish` +#### `yarn publish` > Push a release to git and npm > will ask for version in interactive mode - using lerna. -#### `yarn run lint` +#### `yarn lint` > boolean check if code conforms to linting rules - uses remark & eslint -- `yarn run lint:js` - will check js -- `yarn run lint:md` - will check markdown + code samples +- `yarn lint:js` - will check js +- `yarn lint:md` - will check markdown + code samples -- `yarn run lint:js -- --fix` - will automatically fix js -- `yarn run lint:md -- -o` - will automatically fix markdown +- `yarn lint:js -- --fix` - will automatically fix js +- `yarn lint:md -- -o` - will automatically fix markdown -#### `yarn run test` +#### `yarn test` > boolean check if unit tests all pass - uses jest -- `yarn run test:watch` - will run tests in watch-mode +- `yarn test:watch` - will run tests in watch-mode ### Backers diff --git a/docs/README.md b/docs/README.md index a92593734e16..661f335089c7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,9 +5,9 @@ This is the source for [storybook.js.org](https://storybook.js.org). It document ### Usage ```sh -yarn install -yarn run develop -yarn run storybook +yarn +yarn develop +yarn storybook ``` ### Edit Documentation From 66c0d09500eea4ff97bd9ae2403179d46e54139f Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Fri, 25 Aug 2017 22:25:41 -0700 Subject: [PATCH 034/107] Document new option in README --- addons/storyshots/README.md | 4 ++++ addons/storyshots/stories/storyshot.test.js | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/storyshots/README.md b/addons/storyshots/README.md index 813db6023f9f..6416a4f4bb5e 100644 --- a/addons/storyshots/README.md +++ b/addons/storyshots/README.md @@ -145,6 +145,10 @@ Just render the story, don't check the output at all (useful if you just want to Like the default, but allows you to specify a set of options for the test renderer. [See for example here](https://github.com/storybooks/storybook/blob/b915b5439786e0edb17d7f5ab404bba9f7919381/examples/test-cra/src/storyshots.test.js#L14-L16). +### `multiSnapshotWithOptions(options)` + +Like `snapshotWithOptions`, but generate a separate snapshot file for each stories file rather than a single monolithic file (as is the convention in Jest). This makes it dramatically easier to review changes. + ### `shallowSnapshot` Take a snapshot of a shallow-rendered version of the component. diff --git a/addons/storyshots/stories/storyshot.test.js b/addons/storyshots/stories/storyshot.test.js index 5991581f3bef..6e5a0fea82c2 100644 --- a/addons/storyshots/stories/storyshot.test.js +++ b/addons/storyshots/stories/storyshot.test.js @@ -6,5 +6,3 @@ initStoryshots({ configPath: path.join(__dirname, '..', '.storybook'), test: multiSnapshotWithOptions({}), }); - -console.log('Hey'); From 90a6c3d608e8a78464b6694b82971094e66ead32 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Sat, 26 Aug 2017 19:42:37 +0200 Subject: [PATCH 035/107] ADD knobs to package.json --- examples/react-native-vanilla/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/react-native-vanilla/package.json b/examples/react-native-vanilla/package.json index 37614adef150..7e76d421ded5 100644 --- a/examples/react-native-vanilla/package.json +++ b/examples/react-native-vanilla/package.json @@ -18,7 +18,7 @@ "jest": "^20.0.4", "react-test-renderer": "16.0.0-alpha.6", "@storybook/addon-actions": "file:../../packs/storybook-addon-actions.tgz", - "@storybook/addon-links": "file:../../packs/storybook-addon-knobs.tgz", + "@storybook/addon-knobs": "file:../../packs/storybook-addon-knobs.tgz", "@storybook/addon-links": "file:../../packs/storybook-addon-links.tgz", "@storybook/addon-options": "file:../../packs/storybook-addon-options.tgz", "@storybook/addon-storyshots": "file:../../packs/storybook-addon-storyshots.tgz", From 502fe0f7b11d477046bbc8ecd272badc10e72e13 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Sat, 26 Aug 2017 19:46:45 +0200 Subject: [PATCH 036/107] ADD snapshot --- .../__snapshots__/storyshots.js.snap | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/examples/react-native-vanilla/__tests__/__snapshots__/storyshots.js.snap b/examples/react-native-vanilla/__tests__/__snapshots__/storyshots.js.snap index bc75b09ed489..6698ac5b4e2e 100644 --- a/examples/react-native-vanilla/__tests__/__snapshots__/storyshots.js.snap +++ b/examples/react-native-vanilla/__tests__/__snapshots__/storyshots.js.snap @@ -96,6 +96,80 @@ exports[`Storyshots Button with text 1`] = ` `; +exports[`Storyshots Knobs with knobs 1`] = ` + + + My name is Storyteller, I'm 70 years old, and my favorite fruit is apple. + + + My birthday is: + January 20, 2017 + + + My wallet contains: $ + 12.50 + + + In my backpack, I have: + + + + Laptop + + + Book + + + Whiskey + + + + Nice to meet you! + + +`; + exports[`Storyshots Welcome to Storybook 1`] = ` Date: Sat, 26 Aug 2017 20:12:51 +0200 Subject: [PATCH 037/107] FIX incorrect package.json on crna-example --- examples/crna-kitchen-sink/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/crna-kitchen-sink/package.json b/examples/crna-kitchen-sink/package.json index 00b82f6c402d..06eb48e8ecf9 100644 --- a/examples/crna-kitchen-sink/package.json +++ b/examples/crna-kitchen-sink/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "@storybook/addon-actions": "file:../../packs/storybook-addon-actions.tgz", - "@storybook/addon-links": "file:../../packs/storybook-addon-knobs.tgz", + "@storybook/addon-knobs": "file:../../packs/storybook-addon-knobs.tgz", "@storybook/addon-links": "file:../../packs/storybook-addon-links.tgz", "@storybook/addon-options": "file:../../packs/storybook-addon-options.tgz", "@storybook/addon-storyshots": "file:../../packs/storybook-addon-storyshots.tgz", From 740cb19acef8f4b1c025395f31900e7664413889 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Sat, 26 Aug 2017 20:23:32 +0200 Subject: [PATCH 038/107] ADD knobs addon to addons.js to register them --- examples/crna-kitchen-sink/storybook/addons.js | 1 + examples/react-native-vanilla/storybook/addons.js | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/crna-kitchen-sink/storybook/addons.js b/examples/crna-kitchen-sink/storybook/addons.js index f649113317fc..02d363f13be9 100644 --- a/examples/crna-kitchen-sink/storybook/addons.js +++ b/examples/crna-kitchen-sink/storybook/addons.js @@ -1,3 +1,4 @@ import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; import '@storybook/addon-options/register'; +import '@storybook/addon-knobs/register'; diff --git a/examples/react-native-vanilla/storybook/addons.js b/examples/react-native-vanilla/storybook/addons.js index f649113317fc..02d363f13be9 100644 --- a/examples/react-native-vanilla/storybook/addons.js +++ b/examples/react-native-vanilla/storybook/addons.js @@ -1,3 +1,4 @@ import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; import '@storybook/addon-options/register'; +import '@storybook/addon-knobs/register'; From 6496454a14b91cf30e0f2688d30c26eee21d8560 Mon Sep 17 00:00:00 2001 From: igor Date: Sun, 27 Aug 2017 13:31:32 +0300 Subject: [PATCH 039/107] Add integrity test to check if every .storyshot file has its story file --- addons/storyshots/package.json | 1 + addons/storyshots/src/index.js | 16 ++++++++++++++++ addons/storyshots/src/test-bodies.js | 5 ++--- addons/storyshots/src/utils.js | 15 +++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 addons/storyshots/src/utils.js diff --git a/addons/storyshots/package.json b/addons/storyshots/package.json index 85eae1ce8028..40b6eed59f2d 100644 --- a/addons/storyshots/package.json +++ b/addons/storyshots/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "babel-runtime": "^6.23.0", + "glob": "^7.1.2", "global": "^4.3.2", "jest-specific-snapshot": "^0.2.0", "prop-types": "^15.5.10", diff --git a/addons/storyshots/src/index.js b/addons/storyshots/src/index.js index b3691e0f48ef..3da1bc04e098 100644 --- a/addons/storyshots/src/index.js +++ b/addons/storyshots/src/index.js @@ -1,4 +1,6 @@ import path from 'path'; +import fs from 'fs'; +import glob from 'glob'; import global, { describe, it } from 'global'; import readPkgUp from 'read-pkg-up'; import addons from '@storybook/addons'; @@ -6,6 +8,7 @@ import addons from '@storybook/addons'; import runWithRequireContext from './require_context'; import createChannel from './storybook-channel-mock'; import { snapshot } from './test-bodies'; +import { getPossibleStoriesFiles } from './utils'; export { snapshot, @@ -102,3 +105,16 @@ export default function testStorySnapshots(options = {}) { }); } } + +describe('Storyshots Integrity', () => { + describe('Abandoned Storyshots', () => { + const storyshots = glob.sync('**/*.storyshot'); + + const abandonedStoryshots = storyshots.filter(fileName => { + const possibleStoriesFiles = getPossibleStoriesFiles(fileName); + return !possibleStoriesFiles.some(fs.existsSync); + }); + + expect(abandonedStoryshots).toHaveLength(0); + }); +}); diff --git a/addons/storyshots/src/test-bodies.js b/addons/storyshots/src/test-bodies.js index 009c261b7649..bf71ca3f4994 100644 --- a/addons/storyshots/src/test-bodies.js +++ b/addons/storyshots/src/test-bodies.js @@ -1,7 +1,7 @@ -import path from 'path'; import renderer from 'react-test-renderer'; import shallow from 'react-test-renderer/shallow'; import 'jest-specific-snapshot'; +import { getStoryshotFile } from './utils'; function getRenderedTree(story, context, options) { const storyElement = story.render(context); @@ -15,8 +15,7 @@ function getSnapshotFileName(context) { return null; } - const { dir, name } = path.parse(fileName); - return path.format({ dir: path.join(dir, '__snapshots__'), name, ext: '.storyshot' }); + return getStoryshotFile(fileName); } export const snapshotWithOptions = options => ({ story, context }) => { diff --git a/addons/storyshots/src/utils.js b/addons/storyshots/src/utils.js new file mode 100644 index 000000000000..86f2d3f92941 --- /dev/null +++ b/addons/storyshots/src/utils.js @@ -0,0 +1,15 @@ +import path from 'path'; + +export function getStoryshotFile(fileName) { + const { dir, name } = path.parse(fileName); + return path.format({ dir: path.join(dir, '__snapshots__'), name, ext: '.storyshot' }); +} + +export function getPossibleStoriesFiles(storyshotFile) { + const { dir, name } = path.parse(storyshotFile); + + return [ + path.format({ dir: path.dirname(dir), name, ext: '.js' }), + path.format({ dir: path.dirname(dir), name, ext: '.jsx' }), + ]; +} From 41abebf16b140ab0420ff44d3e72663d19eb39a2 Mon Sep 17 00:00:00 2001 From: hypnos Date: Sun, 27 Aug 2017 22:37:07 +0300 Subject: [PATCH 040/107] Use yarn on CI --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6de243b10d96..9d0f412db379 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ defaults: &defaults version: 2 dependencies: pre: - - npm install -g npm + - yarn global add npm jobs: validate: <<: *defaults @@ -28,7 +28,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - save_cache: key: root-dependencies-{{ checksum "package.json" }} paths: @@ -40,7 +40,7 @@ jobs: - run: name: "Bootstrapping" command: | - npm run bootstrap -- --all + yarn bootstrap -- --all - save_cache: key: package-dependencies-{{ checksum "package.json" }} paths: @@ -59,19 +59,19 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - run: name: "Bootstrapping" command: | - npm run bootstrap -- --core + yarn bootstrap -- --core - run: name: "Build react kitchen-sink" command: | - cd examples/cra-kitchen-sink && npm run build-storybook + cd examples/cra-kitchen-sink && yarn build-storybook - run: name: "Build vue kitchen-sink" command: | - cd examples/vue-kitchen-sink && npm run build-storybook + cd examples/vue-kitchen-sink && yarn build-storybook example-react-native: <<: *defaults steps: @@ -83,11 +83,11 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - run: name: "Bootstrapping packages" command: | - npm run bootstrap -- --core --reactnative + yarn bootstrap -- --core --reactnative - run: name: "Running react-native" command: | @@ -103,15 +103,15 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - run: name: "Bootstrapping" command: | - npm run bootstrap -- --docs + yarn bootstrap -- --docs - run: name: "Running docs" command: | - npm run docs:build + yarn docs:build lint: <<: *defaults steps: @@ -123,11 +123,11 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - run: name: "Linting" command: | - npm run lint + yarn lint unit-test: <<: *defaults steps: @@ -139,16 +139,16 @@ jobs: - run: name: "Install root dependencies" command: | - yarn install + yarn - run: name: "Bootstrapping" command: | - npm run bootstrap -- --core --reactnative + yarn bootstrap -- --core --reactnative - run: name: "Unit testing" command: | - npm run test -- --coverage -i - npm run coverage + yarn test -- --coverage -i + yarn coverage deploy: <<: *defaults steps: From 89f9788a933b962f616f9edadd7a045f2c563dc9 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Wed, 23 Aug 2017 14:03:45 -0400 Subject: [PATCH 041/107] add docgen plugin to prod babel --- app/react/src/server/config/babel.prod.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/react/src/server/config/babel.prod.js b/app/react/src/server/config/babel.prod.js index 59a87fe49bc3..c2914f4ce748 100644 --- a/app/react/src/server/config/babel.prod.js +++ b/app/react/src/server/config/babel.prod.js @@ -16,6 +16,12 @@ module.exports = { require.resolve('babel-preset-minify'), ], plugins: [ + [ + require.resolve('babel-plugin-react-docgen'), + { + DOC_GEN_COLLECTION_NAME: 'STORYBOOK_REACT_CLASSES', + }, + ], require.resolve('babel-plugin-transform-regenerator'), [ require.resolve('babel-plugin-transform-runtime'), From 6d00c14b4741b5fb143671315899f636348f2715 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Wed, 23 Aug 2017 14:04:22 -0400 Subject: [PATCH 042/107] load webpack environment in dev --- app/react/src/server/config/webpack.config.prod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/react/src/server/config/webpack.config.prod.js b/app/react/src/server/config/webpack.config.prod.js index 989b1adca7ad..e3f1a61bf433 100644 --- a/app/react/src/server/config/webpack.config.prod.js +++ b/app/react/src/server/config/webpack.config.prod.js @@ -23,7 +23,7 @@ export default function() { publicPath: '', }, plugins: [ - new webpack.DefinePlugin(loadEnv({ production: true })), + new webpack.DefinePlugin(loadEnv()), // load development env so PropTypes are left alone for the Info Addon new webpack.optimize.UglifyJsPlugin({ compress: { screw_ie8: true, From 66d8f8cf13fca374bf99c2c842e997cf59611dbc Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Wed, 23 Aug 2017 17:40:54 -0400 Subject: [PATCH 043/107] new proptype example --- .../src/components/ImportedPropsButton.js | 14 ++++++++++++++ examples/cra-kitchen-sink/src/stories/index.js | 17 +++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 examples/cra-kitchen-sink/src/components/ImportedPropsButton.js diff --git a/examples/cra-kitchen-sink/src/components/ImportedPropsButton.js b/examples/cra-kitchen-sink/src/components/ImportedPropsButton.js new file mode 100644 index 000000000000..6ee56cbca6d1 --- /dev/null +++ b/examples/cra-kitchen-sink/src/components/ImportedPropsButton.js @@ -0,0 +1,14 @@ +import React from 'react'; +import DocgenButton from './DocgenButton'; + +/** Button component description */ +const ImportedPropsButton = ({ disabled, label, onClick }) => + ; + +ImportedPropsButton.defaultProps = DocgenButton.defaultProps; + +ImportedPropsButton.propTypes = DocgenButton.propTypes; + +export default ImportedPropsButton; diff --git a/examples/cra-kitchen-sink/src/stories/index.js b/examples/cra-kitchen-sink/src/stories/index.js index ada77d629f7c..1341e3dafa29 100644 --- a/examples/cra-kitchen-sink/src/stories/index.js +++ b/examples/cra-kitchen-sink/src/stories/index.js @@ -28,6 +28,7 @@ import Logger from './Logger'; import Container from './Container'; import DocgenButton from '../components/DocgenButton'; import FlowTypeButton from '../components/FlowTypeButton'; +import ImportedPropsButton from '../components/ImportedPropsButton'; const EVENTS = { TEST_EVENT_1: 'test-event-1', @@ -164,14 +165,26 @@ storiesOf('Button', module) ) ); -storiesOf('AddonInfo.DocgenButton', module).addWithInfo('DocgenButton', 'Some Description', () => +storiesOf( + 'AddonInfo.DocgenButton', + module +).addWithInfo('DocgenButton', 'Button with PropTypes and doc comments', () => ); +storiesOf( + 'AddonInfo.ImportedPropsButton', + module +).addWithInfo( + 'ImportedPropsButton', + 'Button with PropTypes imported from another file. Should fallback to using PropTypes for data.', + () => +); + storiesOf( 'AddonInfo.FlowTypeButton', module -).addWithInfo('FlowTypeButton', 'Some Description', () => +).addWithInfo('FlowTypeButton', 'Button with Flow type documentation comments', () => ); From 9a6f192098c7018643d3249691cb45e0365107b4 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Wed, 23 Aug 2017 18:06:53 -0400 Subject: [PATCH 044/107] new storyshot --- .../src/stories/__snapshots__/index.storyshot | 468 ++++++++++++++++++ 1 file changed, 468 insertions(+) diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index 3b27e86a5a5c..411045275470 100644 --- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -838,6 +838,474 @@ exports[`Storyshots AddonInfo.FlowTypeButton FlowTypeButton 1`] = ` `; +exports[`Storyshots AddonInfo.ImportedPropsButton ImportedPropsButton 1`] = ` +
+
+ +
+ + Show Info + +
+ + Γ— + +
+
+
+

+ AddonInfo.ImportedPropsButton +

+

+ ImportedPropsButton +

+
+
+

+ Button with PropTypes imported from another file. Should fallback to using PropTypes for data. +

+
+
+

+ Story Source +

+
+            
+ + < + ImportedPropsButton + + + + + + onClick + + + = + + + + clicked() + + + + + + + + + label + + + = + + + " + Docgen Button + " + + + + + + + + /> + +
+
+
+
+

+ Prop Types +

+
+

+ " + ImportedPropsButton + " Component +

+
propertypropTyperequireddefaultdescriptionpropertypropTyperequireddefaultdescription
+ {row.property} - {row.propType} + + - {row.required} + + {row.required ? 'yes' : '-'} + {row.defaultValue === undefined ? '-' : } + {row.description}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ property + + propType + + required + + default + + description +
+ disabled + + bool + + no + + + + false + + + +
+ label + + string + + yes + + - + +
+ onClick + + func + + no + + + + onClick() + + + +
+ one + + other + + no + + - + +
+ two + + other + + no + + - + +
+ msg + + other + + no + + - + +
+ enm + + other + + no + + - + +
+ union + + other + + no + + - + +
+ + + + + + +`; + exports[`Storyshots App full app 1`] = `
Date: Sat, 26 Aug 2017 11:00:39 -0400 Subject: [PATCH 045/107] updating snapshot --- .../src/stories/__snapshots__/index.storyshot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index 411045275470..bcee53dcb4c0 100644 --- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -150,7 +150,7 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` } } > - Some Description + Button with PropTypes and doc comments

@@ -618,7 +618,7 @@ exports[`Storyshots AddonInfo.FlowTypeButton FlowTypeButton 1`] = ` } } > - Some Description + Button with Flow type documentation comments

@@ -1316,7 +1316,7 @@ exports[`Storyshots App full app 1`] = ` logo

Welcome to React From c643aee1c3495d00ca457c466c8253216bb505db Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Sun, 27 Aug 2017 16:20:56 -0400 Subject: [PATCH 046/107] Revert "load webpack environment in dev" This reverts commit 46fc6a9faf11e0e4dcdb317974c8768abc4f50f6. --- app/react/src/server/config/webpack.config.prod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/react/src/server/config/webpack.config.prod.js b/app/react/src/server/config/webpack.config.prod.js index e3f1a61bf433..989b1adca7ad 100644 --- a/app/react/src/server/config/webpack.config.prod.js +++ b/app/react/src/server/config/webpack.config.prod.js @@ -23,7 +23,7 @@ export default function() { publicPath: '', }, plugins: [ - new webpack.DefinePlugin(loadEnv()), // load development env so PropTypes are left alone for the Info Addon + new webpack.DefinePlugin(loadEnv({ production: true })), new webpack.optimize.UglifyJsPlugin({ compress: { screw_ie8: true, From 9700dbd7d012a90b407904ada19d872912e282c4 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Sun, 27 Aug 2017 23:23:48 +0200 Subject: [PATCH 047/107] Allow lockfiles for packages --- scripts/bootstrap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js index f026e4ab498e..03a6e8bf4dff 100755 --- a/scripts/bootstrap.js +++ b/scripts/bootstrap.js @@ -54,7 +54,7 @@ const tasks = { log.info(prefix, 'git clean'); spawn('git clean -fdx --exclude=".vscode" --exclude=".idea"'); log.info(prefix, 'yarn install'); - spawn('yarn install --no-lockfile'); + spawn('yarn install'); }, }), core: createTask({ From c8492398c2d76a5bdf10d448dc9fd39ca953b1b6 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 00:04:05 +0200 Subject: [PATCH 048/107] new lockfiles --- docs/yarn.lock | 31 ++---------- yarn.lock | 134 +++++++++++++++---------------------------------- 2 files changed, 44 insertions(+), 121 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 684dd09d0fb1..09df315740e1 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -417,7 +417,7 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@2.1.4: +async@2.1.4, async@^2.0.1, async@^2.1.2, async@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" dependencies: @@ -431,12 +431,6 @@ async@^1.2.1, async@^1.3.0, async@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.0.1, async@^2.1.2, async@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" - dependencies: - lodash "^4.14.0" - async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -1170,20 +1164,13 @@ babel-plugin-transform-object-assign@^6.8.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-object-rest-spread@6.23.0: +babel-plugin-transform-object-rest-spread@6.23.0, babel-plugin-transform-object-rest-spread@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-object-rest-spread@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - babel-plugin-transform-property-literals@^6.8.5: version "6.8.5" resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.5.tgz#67ed5930b34805443452c8b9690c7ebe1e206c40" @@ -3144,13 +3131,7 @@ figures@^1.3.5: escape-string-regexp "^1.0.5" object-assign "^4.1.0" -file-loader@*: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.0.0.tgz#08accf9631a0875e4ab7f209fc4db338604b3190" - dependencies: - loader-utils "^1.0.2" - -file-loader@^0.11.1, file-loader@^0.11.2: +file-loader@*, file-loader@^0.11.1, file-loader@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" dependencies: @@ -5212,7 +5193,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -5220,10 +5201,6 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" diff --git a/yarn.lock b/yarn.lock index 4b5ccd54f0a4..a3103caa08fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,15 +21,6 @@ git-url-parse "^6.0.2" shelljs "^0.7.0" -"@storybook/react-fuzzy@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@storybook/react-fuzzy/-/react-fuzzy-0.4.0.tgz#2961e8a1f6c1afcce97e9e9a14d1dfe9d9061087" - dependencies: - babel-runtime "^6.23.0" - classnames "^2.2.5" - fuse.js "^3.0.1" - prop-types "^15.5.9" - "@timer/detect-port@1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@timer/detect-port/-/detect-port-1.1.3.tgz#1383abd67f9a5d683df5276f8a92d60bdf9abb90" @@ -51,11 +42,7 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -"@types/react@>=15": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.5.tgz#d713cf67cc211dea20463d2a0b66005c22070c4b" - -"@types/react@^15.0.21", "@types/react@^15.0.22": +"@types/react@>=15", "@types/react@^15.0.21", "@types/react@^15.0.22": version "15.6.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.2.tgz#2c8495aa853cb37591d0046e9afe544fb837c612" @@ -130,14 +117,10 @@ address@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" -address@1.0.2: +address@1.0.2, address@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" -address@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" - agent-base@2: version "2.1.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" @@ -447,10 +430,6 @@ ast-types@0.8.12: version "0.8.12" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" -ast-types@0.8.15: - version "0.8.15" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" - ast-types@0.9.11: version "0.9.11" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" @@ -463,7 +442,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@2.1.4: +async@2.1.4, async@^2.0.1, async@^2.1.2, async@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" dependencies: @@ -473,12 +452,6 @@ async@^1.4.0, async@^1.5.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.0.1, async@^2.1.2, async@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" - dependencies: - lodash "^4.14.0" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2154,18 +2127,12 @@ browserslist@^2.1.2, browserslist@^2.1.5: caniuse-lite "^1.0.30000715" electron-to-chromium "^1.3.18" -bser@1.0.2: +bser@1.0.2, bser@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" dependencies: node-int64 "^0.4.0" -bser@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.3.tgz#d63da19ee17330a0e260d2a34422b21a89520317" - dependencies: - node-int64 "^0.4.0" - bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -2266,8 +2233,8 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000717" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000717.tgz#27ddf5feccdd338c99a62c9788c2694f99f67ed7" + version "1.0.30000718" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000718.tgz#86cdd97987302554934c61e106f4e470f16f993c" caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000715: version "1.0.30000717" @@ -3057,7 +3024,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.x, create-react-class@^15.6.0: +create-react-class@^15.5.2, create-react-class@^15.5.x, create-react-class@^15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" dependencies: @@ -3616,20 +3583,13 @@ domutils@1.1: dependencies: domelementtype "1" -domutils@1.5, domutils@1.5.1: +domutils@1.5, domutils@1.5.1, domutils@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: dom-serializer "0" domelementtype "1" -domutils@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" - dependencies: - dom-serializer "0" - domelementtype "1" - dot-prop@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" @@ -4669,15 +4629,7 @@ 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.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.1.1: +form-data@^2.1.1, form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" dependencies: @@ -4973,8 +4925,8 @@ glamor@^2.20.40: through "^2.3.8" glamorous@^4.1.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.4.0.tgz#626b03adcbab259bc97921de4378262f82887e25" + version "4.5.0" + resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.5.0.tgz#d9428dbaedec265849a7528d0c8c7073d8aa19a1" dependencies: brcast "^3.0.0" fast-memoize "^2.2.7" @@ -6337,6 +6289,12 @@ jest-snapshot@^20.0.3: natural-compare "^1.4.0" pretty-format "^20.0.3" +jest-specific-snapshot@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/jest-specific-snapshot/-/jest-specific-snapshot-0.2.0.tgz#271422a09b87cff42a70651634b70918135c6330" + dependencies: + jest-snapshot "^20.0.3" + jest-util@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" @@ -7104,7 +7062,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@3.7.x: +lodash@3.7.x, lodash@^3.6.0: version "3.7.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" @@ -7112,7 +7070,7 @@ lodash@4.x.x, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lo version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@^3.10.0, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.6.0, lodash@^3.9.3: +lodash@^3.10.0, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.9.3: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -7424,7 +7382,7 @@ minimatch@^2.0.1, minimatch@^2.0.3: dependencies: brace-expansion "^1.0.0" -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -7436,10 +7394,6 @@ minimist@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - mkdirp-promise@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" @@ -8606,11 +8560,11 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 supports-color "^3.2.3" postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.6, postcss@^6.x: - version "6.0.9" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.9.tgz#54819766784a51c65b1ec4d54c2f93765438c35a" + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.10.tgz#c311b89734483d87a91a56dc9e53f15f4e6e84e4" dependencies: chalk "^2.1.0" - source-map "^0.5.6" + source-map "^0.5.7" supports-color "^4.2.1" prelude-ls@~1.1.2: @@ -8763,11 +8717,11 @@ qs@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" -qs@6.5.0, qs@^6.4.0: +qs@6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" -qs@~6.4.0: +qs@^6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -8879,10 +8833,11 @@ react-color@^2.11.4: tinycolor2 "^1.1.2" react-datetime@^2.8.10: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.9.0.tgz#9ec80060cbb8e5c5d8f98f0acebb6f4712ce449a" + version "2.10.1" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.10.1.tgz#25ba863551ae6e5ae80d8a7f99d359ea063c4a38" dependencies: "@types/react" ">=15" + create-react-class "^15.5.2" object-assign "^3.0.0" prop-types "^15.5.7" react-onclickoutside "^5.9.0" @@ -8980,6 +8935,15 @@ react-error-overlay@^1.0.1: settle-promise "1.0.0" source-map "0.5.6" +react-fuzzy@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.4.1.tgz#138f051faf9644812ef2823e0a226915a86ac5ea" + dependencies: + babel-runtime "^6.23.0" + classnames "^2.2.5" + fuse.js "^3.0.1" + prop-types "^15.5.9" + react-html-attributes@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/react-html-attributes/-/react-html-attributes-1.4.1.tgz#97b5ec710da68833598c8be6f89ac436216840a5" @@ -9332,7 +9296,7 @@ readable-stream@1.0: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@1.1: +readable-stream@1.1, readable-stream@~1.1.8, readable-stream@~1.1.9: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" dependencies: @@ -9353,15 +9317,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@~1.1.8, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -9389,7 +9344,7 @@ rebound@^0.0.13: version "0.0.13" resolved "https://registry.yarnpkg.com/rebound/-/rebound-0.0.13.tgz#4a225254caf7da756797b19c5817bf7a7941fac1" -recast@0.10.33: +recast@0.10.33, recast@^0.10.10: version "0.10.33" resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697" dependencies: @@ -9398,15 +9353,6 @@ recast@0.10.33: private "~0.1.5" source-map "~0.5.0" -recast@^0.10.10: - version "0.10.43" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" - dependencies: - ast-types "0.8.15" - esprima-fb "~15001.1001.0-dev-harmony-fb" - private "~0.1.5" - source-map "~0.5.0" - recast@^0.11.17: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" @@ -10402,7 +10348,7 @@ source-map@0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" From 4a868a8146b2334c17b501f2d092ea78bf234486 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Sun, 27 Aug 2017 19:04:42 -0400 Subject: [PATCH 049/107] file-stub --- .../cra-kitchen-sink/src/stories/__snapshots__/index.storyshot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index bcee53dcb4c0..70e110e98387 100644 --- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -1316,7 +1316,7 @@ exports[`Storyshots App full app 1`] = ` logo

Welcome to React From e7660ac561541303676eb051d8ac0643db1b8b67 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 15:15:37 +0200 Subject: [PATCH 050/107] WIP --- package.json | 2 +- scripts/test.js | 122 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100755 scripts/test.js diff --git a/package.json b/package.json index 824a05d649e6..728390921afa 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "lint:js": "eslint --cache --cache-location=.cache/eslint --ext .js,.jsx,.json", "lint:md": "remark", "publish": "lerna publish", - "test": "jest --projects ./ ./examples/react-native-vanilla" + "test": "./scripts/test.js" }, "devDependencies": { "babel-cli": "^6.24.1", diff --git a/scripts/test.js b/scripts/test.js new file mode 100755 index 000000000000..e111a4bf8f0d --- /dev/null +++ b/scripts/test.js @@ -0,0 +1,122 @@ +#!/usr/bin/env node +const inquirer = require('inquirer'); +const program = require('commander'); +const childProcess = require('child_process'); +const chalk = require('chalk'); +const log = require('npmlog'); + +const { lstatSync, readdirSync } = require('fs'); +const { join } = require('path'); + +const isTgz = source => lstatSync(source).isFile() && source.match(/.tgz$/); +const getDirectories = source => readdirSync(source).map(name => join(source, name)).filter(isTgz); + +log.heading = 'storybook'; +const prefix = 'test'; +log.addLevel('aborted', 3001, { fg: 'red', bold: true }); + +const spawn = command => + childProcess.spawnSync(`${command}`, { + shell: true, + stdio: 'inherit', + }); + +const main = program.version('3.0.0').option('--all', `Test everything ${chalk.gray('(all)')}`); + +const createProject = ({ defaultValue, option, name, projectLocation }) => ({ + value: false, + defaultValue: defaultValue || false, + option: option || undefined, + name: name || 'unnamed task', + projectLocation, +}); +const createOption = ({}) => ({}); + +const tasks = { + core: createTask({ + name: `Core & React & Vue ${chalk.gray('(core)')}`, + defaultValue: true, + option: '--core', + projectLocation: './', + }), + 'react-native-vanilla': createTask({ + name: `React-Native example ${chalk.gray('(react-native-vanilla)')}`, + defaultValue: false, + option: '--reactnative', + projectLocation: './examples/react-native-vanilla', + }), + 'crna-kitchen-sink': createTask({ + name: `React-Native-App example ${chalk.gray('(crna-kitchen-sink)')}`, + defaultValue: false, + option: '--reactnativeapp', + projectLocation: './examples/crna-kitchen-sink', + }), + watchmode: createTask({ + name: `Run in watch-mode ${chalk.gray('(watchmode)')}`, + defaultValue: false, + option: '--watch', + projectLocation: false, + extraParam: '--watch', + }), +}; + +Object.keys(tasks) + .reduce((acc, key) => acc.option(tasks[key].option, tasks[key].name), main) + .parse(process.argv); + +Object.keys(tasks).forEach(key => { + tasks[key].value = program[tasks[key].option.replace('--', '')] || program.all; +}); + +let selection; +if (!Object.keys(tasks).map(key => tasks[key].value).filter(Boolean).length) { + selection = inquirer + .prompt([ + { + type: 'checkbox', + message: 'Select which tests to run', + name: 'todo', + choices: Object.keys(tasks) + .map(key => ({ + name: tasks[key].name, + checked: tasks[key].defaultValue, + })) + .concat([ + new inquirer.Separator(), + { + name: 'Run in watchmode', + checked: false, + }, + ]), + }, + ]) + .then(({ todo }) => + todo.map(name => tasks[Object.keys(tasks).find(i => tasks[i].name === name)]) + ); +} else { + selection = Promise.resolve( + Object.keys(tasks).map(key => tasks[key]).filter(item => item.value === true) + ); +} + +selection + .then(list => { + if (list.length === 0) { + log.warn(prefix, 'Nothing to test'); + } else { + // console.log('list', list) + // console.log(`jest --projects ${list.map(key => key.projectLocation).join(' ')}`); + spawn(`jest --projects ${list.map(key => key.projectLocation).join(' ')}`); + process.stdout.write('\x07'); + try { + spawn('say "Testing sequence complete"'); + } catch (e) { + // discard error + } + } + }) + .catch(e => { + log.aborted(prefix, chalk.red(e.message)); + log.silly(prefix, e); + return true; + }); From 45476deff3c51b2136226ac9f39e6bb4b2d1b7a1 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 16:33:46 +0200 Subject: [PATCH 051/107] ADD CLI for running tests, supports jest-projects and passing params to jest Could be expanded later to run a lots of test, and allows us to pick what tests we want to run via command line flags or a GUI. --- scripts/test.js | 79 ++++++++++++++++++++++++++++++------------------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/scripts/test.js b/scripts/test.js index e111a4bf8f0d..1136234178ba 100755 --- a/scripts/test.js +++ b/scripts/test.js @@ -5,12 +5,6 @@ const childProcess = require('child_process'); const chalk = require('chalk'); const log = require('npmlog'); -const { lstatSync, readdirSync } = require('fs'); -const { join } = require('path'); - -const isTgz = source => lstatSync(source).isFile() && source.match(/.tgz$/); -const getDirectories = source => readdirSync(source).map(name => join(source, name)).filter(isTgz); - log.heading = 'storybook'; const prefix = 'test'; log.addLevel('aborted', 3001, { fg: 'red', bold: true }); @@ -30,28 +24,36 @@ const createProject = ({ defaultValue, option, name, projectLocation }) => ({ name: name || 'unnamed task', projectLocation, }); -const createOption = ({}) => ({}); +const createOption = ({ defaultValue, option, name, extraParam }) => ({ + value: false, + defaultValue: defaultValue || false, + option: option || undefined, + name: name || 'unnamed task', + extraParam, +}); const tasks = { - core: createTask({ + core: createProject({ name: `Core & React & Vue ${chalk.gray('(core)')}`, defaultValue: true, option: '--core', projectLocation: './', }), - 'react-native-vanilla': createTask({ + 'react-native-vanilla': createProject({ name: `React-Native example ${chalk.gray('(react-native-vanilla)')}`, - defaultValue: false, + defaultValue: true, option: '--reactnative', projectLocation: './examples/react-native-vanilla', }), - 'crna-kitchen-sink': createTask({ - name: `React-Native-App example ${chalk.gray('(crna-kitchen-sink)')}`, - defaultValue: false, - option: '--reactnativeapp', - projectLocation: './examples/crna-kitchen-sink', - }), - watchmode: createTask({ + // 'crna-kitchen-sink': createProject({ + // name: `React-Native-App example ${chalk.gray('(crna-kitchen-sink)')} ${chalk.red( + // '[not implemented yet]' + // )}`, + // defaultValue: false, + // option: '--reactnativeapp', + // projectLocation: './examples/crna-kitchen-sink', + // }), + watchmode: createOption({ name: `Run in watch-mode ${chalk.gray('(watchmode)')}`, defaultValue: false, option: '--watch', @@ -60,12 +62,28 @@ const tasks = { }), }; +const getProjects = list => { + const filtered = list.filter(key => key.projectLocation); + if (filtered.length > 0) { + return filtered.map(key => key.projectLocation); + } + + // if list would have been empty, we run with default projects + return Object.keys(tasks) + .map(key => tasks[key]) + .filter(key => key.projectLocation && key.defaultValue) + .map(key => key.projectLocation); +}; + +const getExtraParams = list => list.filter(key => key.extraParam).map(key => key.extraParam); + Object.keys(tasks) .reduce((acc, key) => acc.option(tasks[key].option, tasks[key].name), main) .parse(process.argv); Object.keys(tasks).forEach(key => { - tasks[key].value = program[tasks[key].option.replace('--', '')] || program.all; + tasks[key].value = + program[tasks[key].option.replace('--', '')] || (program.all && tasks[key].projectLocation); }); let selection; @@ -77,17 +95,19 @@ if (!Object.keys(tasks).map(key => tasks[key].value).filter(Boolean).length) { message: 'Select which tests to run', name: 'todo', choices: Object.keys(tasks) + .map(key => tasks[key]) + .filter(key => key.projectLocation) .map(key => ({ - name: tasks[key].name, - checked: tasks[key].defaultValue, + name: key.name, + checked: key.defaultValue, })) - .concat([ - new inquirer.Separator(), - { - name: 'Run in watchmode', - checked: false, - }, - ]), + .concat(new inquirer.Separator()) + .concat( + Object.keys(tasks).map(key => tasks[key]).filter(key => key.extraParam).map(key => ({ + name: key.name, + checked: key.defaultValue, + })) + ), }, ]) .then(({ todo }) => @@ -104,9 +124,7 @@ selection if (list.length === 0) { log.warn(prefix, 'Nothing to test'); } else { - // console.log('list', list) - // console.log(`jest --projects ${list.map(key => key.projectLocation).join(' ')}`); - spawn(`jest --projects ${list.map(key => key.projectLocation).join(' ')}`); + spawn(`jest --projects ${getProjects(list).join(' ')} ${getExtraParams(list).join(' ')}`); process.stdout.write('\x07'); try { spawn('say "Testing sequence complete"'); @@ -118,5 +136,4 @@ selection .catch(e => { log.aborted(prefix, chalk.red(e.message)); log.silly(prefix, e); - return true; }); From 6190aca9b2bba6797f2479d09fa5e122501f1935 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 19:44:34 +0200 Subject: [PATCH 052/107] ADD some jest arguments --- .circleci/config.yml | 4 ++-- scripts/test.js | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9d0f412db379..df0c18cb6799 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -147,8 +147,8 @@ jobs: - run: name: "Unit testing" command: | - yarn test -- --coverage -i - yarn coverage + npm run test -- --all --coverage --runInBand + npm run coverage deploy: <<: *defaults steps: diff --git a/scripts/test.js b/scripts/test.js index 1136234178ba..8d75b58515c6 100755 --- a/scripts/test.js +++ b/scripts/test.js @@ -57,9 +57,20 @@ const tasks = { name: `Run in watch-mode ${chalk.gray('(watchmode)')}`, defaultValue: false, option: '--watch', - projectLocation: false, extraParam: '--watch', }), + coverage: createOption({ + name: `Output coverage reports ${chalk.gray('(coverage)')}`, + defaultValue: false, + option: '--coverage', + extraParam: '--coverage', + }), + runInBand: createOption({ + name: `Run all tests serially in the current process ${chalk.gray('(runInBand)')}`, + defaultValue: false, + option: '--runInBand', + extraParam: '--runInBand', + }), }; const getProjects = list => { @@ -126,11 +137,6 @@ selection } else { spawn(`jest --projects ${getProjects(list).join(' ')} ${getExtraParams(list).join(' ')}`); process.stdout.write('\x07'); - try { - spawn('say "Testing sequence complete"'); - } catch (e) { - // discard error - } } }) .catch(e => { From b64af7b06cbc44e28748e7c0ff8dd5d4f34ce54b Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 20:46:13 +0200 Subject: [PATCH 053/107] CHANGE docs (CONTRIBUTIONS) to reflect changed to test script && CHANGE to use yarn --- CONTRIBUTING.md | 55 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a8cb6cf223e3..041f55e68f62 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,17 +22,44 @@ No software is bug free. So, if you got an issue, follow these steps: To test your project against the current latest version of storybook, you can clone the repository and link it with `yarn`. Try following these steps: -1. Download the latest version of this project, and build it: +#### 1. Download the latest version of this project, and build it: + +```sh +git clone https://github.com/storybooks/storybook.git +cd storybook +yarn install +yarn bootstrap +``` + +The bootstrap command will ask which sections of the codebase you want to bootstrap. Unless you're going to work with ReactNative or the Documentation, you can keep the default. + +You can also pick directly from CLI: - ```sh - git clone https://github.com/storybooks/storybook.git - cd storybook - yarn yarn bootstrap -- --core - ``` +#### 2a. Run unit tests + +You can use one of the example projects in `examples/` to develop on. + +This command will list all the suites and options for running tests. -2. Link `storybook` and any other required dependencies: +```sh +yarn test +``` + +_Note that in order to run the tests fro ReactNative, you must have bootstrapped with ReactNative enabled_ + +You can also pick suites from CLI: + +```sh +yarn test -- --core +``` + +In order to run ALL unit tests, you must have bootstrapped the react-native + +#### 2b. Link `storybook` and any other required dependencies: + +If you want to test your own existing project using the github version of storybook, you need to `link` the packages you use in your project. ```sh cd app/react @@ -54,11 +81,12 @@ A good way to do that is using the example `cra-kitchen-sink` app embedded in th # Download and build this repository: git clone https://github.com/storybooks/storybook.git cd storybook -yarn -yarn bootstrap -- --core +yarn install +yarn bootstrap # make changes to try and reproduce the problem, such as adding components + stories -yarn start +cd examples/cra-kitchen-sink +yarn storybook # see if you can see the problem, if so, commit it: git checkout "branch-describing-issue" @@ -194,12 +222,9 @@ First, build the release: git checkout master git status -# clean out extra files +# clean out extra files & build all the packages # WARNING: destructive if you have extra files lying around! -git clean -fdx && yarn - -# build all the packages -yarn bootstrap -- --all +yarn bootstrap -- --reset --all ``` From here there are different procedures for prerelease (e.g. alpha/beta/rc) and proper release. From c6efb683c255e97d003f8809d1ae48db9c127127 Mon Sep 17 00:00:00 2001 From: Doug March Date: Mon, 28 Aug 2017 15:46:52 -0400 Subject: [PATCH 054/107] add addon viewport to kitchen sink, also sets correct version to viewport addon --- addons/viewport/package.json | 2 +- examples/cra-kitchen-sink/.storybook/addons.js | 1 + examples/vue-kitchen-sink/package.json | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/viewport/package.json b/addons/viewport/package.json index e9c6961707e9..1be0861b8ab7 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "1.0.0", + "version": "3.2.0", "description": "Storybook addon to change the viewport size to mobile", "main": "dist/index.js", "keywords": [ diff --git a/examples/cra-kitchen-sink/.storybook/addons.js b/examples/cra-kitchen-sink/.storybook/addons.js index 5c57d83ea6f9..16357788f747 100644 --- a/examples/cra-kitchen-sink/.storybook/addons.js +++ b/examples/cra-kitchen-sink/.storybook/addons.js @@ -4,3 +4,4 @@ import '@storybook/addon-events/register'; import '@storybook/addon-notes/register'; import '@storybook/addon-options/register'; import '@storybook/addon-knobs/register'; +import '@storybook/addon-viewport/register'; diff --git a/examples/vue-kitchen-sink/package.json b/examples/vue-kitchen-sink/package.json index cad12030d751..3258c36f1995 100644 --- a/examples/vue-kitchen-sink/package.json +++ b/examples/vue-kitchen-sink/package.json @@ -10,6 +10,7 @@ "@storybook/addon-centered": "^3.2.1", "@storybook/addon-notes": "^3.2.0", "@storybook/addon-knobs": "^3.2.0", + "@storybook/addon-viewport": "^3.2.0", "babel-core": "^6.25.0", "babel-loader": "^7.0.0", "babel-preset-env": "^1.6.0", From 7b6e1af43e0628385a88db329fdfcc9c2dc0f8e5 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 12:48:55 -0700 Subject: [PATCH 055/107] Fix viewport to register correctly in cra-kitchen-sink example --- addons/viewport/package.json | 2 +- examples/cra-kitchen-sink/.storybook/addons.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/viewport/package.json b/addons/viewport/package.json index e9c6961707e9..c519cca9fdc5 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -9,7 +9,7 @@ "scripts": { "build": "babel --source-maps --out-dir dist src", "watch": "npm run build -- -w", - "prepublish": "npm run build", + "prepublish": "npm run build && node ../../scripts/prepublish.js", "storybook": "start-storybook -p 3000", "deploy-storybook": "storybook-to-ghpages" }, diff --git a/examples/cra-kitchen-sink/.storybook/addons.js b/examples/cra-kitchen-sink/.storybook/addons.js index 5c57d83ea6f9..16357788f747 100644 --- a/examples/cra-kitchen-sink/.storybook/addons.js +++ b/examples/cra-kitchen-sink/.storybook/addons.js @@ -4,3 +4,4 @@ import '@storybook/addon-events/register'; import '@storybook/addon-notes/register'; import '@storybook/addon-options/register'; import '@storybook/addon-knobs/register'; +import '@storybook/addon-viewport/register'; From 9de10082580a7dc921f8d51567b85af068f3e92c Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 13:23:23 -0700 Subject: [PATCH 056/107] Add basic documentation, cleanup story --- addons/viewport/.storybook/stories.js | 10 +++---- addons/viewport/README.md | 37 ++++++++++++++++++++++++++ addons/viewport/docs/viewport.png | Bin 0 -> 197960 bytes 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 addons/viewport/README.md create mode 100644 addons/viewport/docs/viewport.png diff --git a/addons/viewport/.storybook/stories.js b/addons/viewport/.storybook/stories.js index d5ea1dea2e4b..85c6f34eb8c1 100644 --- a/addons/viewport/.storybook/stories.js +++ b/addons/viewport/.storybook/stories.js @@ -2,8 +2,8 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; storiesOf('Viewport', module) - .add('Example', () => ( -

- Change viewport sizes below -

- )); + .add('Example', () => ( +

+ Change viewport sizes below +

+ )); diff --git a/addons/viewport/README.md b/addons/viewport/README.md new file mode 100644 index 000000000000..819ed1540298 --- /dev/null +++ b/addons/viewport/README.md @@ -0,0 +1,37 @@ +# Storybook Viewport Addon + +Storybook Viewport Addon allows your stories to be displayed in different sizes and layouts in [Storybook](https://storybookjs.org). This helps build responsive components inside of Storybook. + +This addon works with Storybook for: [React](https://github.com/storybooks/storybook/tree/master/app/react) and [Vue](https://github.com/storybooks/storybook/tree/master/app/vue). + +![Screenshot](docs/viewport.png) + +## Installation + +Install the following npm module: + + npm i -D @storybook/addon-viewport + +or with yarn: + + yarn add -D @storybook/addon-viewport + +## Basic Usage + +Simply import the Storybook Viewport Addon in the `addon.js` file in your `.storybook` directory. + +```js +import '@storybook/addon-viewport/register' +``` + +This will register the Viewport Addon to Storybook and will show up in the action area. + +## FAQ + +#### Adding more devices + +Unfortunately, this is currently not supported. + +#### Custom Screen Sizes + +Unfortunately, this is currently not supported. diff --git a/addons/viewport/docs/viewport.png b/addons/viewport/docs/viewport.png new file mode 100644 index 0000000000000000000000000000000000000000..c06fb34f8f9017c0e2c0f077fc7e4e56ce4f1da6 GIT binary patch literal 197960 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 literal 0 HcmV?d00001 From cfccd65288ba429aa1628ba146df9f5c444d4054 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 22:30:19 +0200 Subject: [PATCH 057/107] Yarn on CI --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index df0c18cb6799..7949ceb5d614 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -147,8 +147,8 @@ jobs: - run: name: "Unit testing" command: | - npm run test -- --all --coverage --runInBand - npm run coverage + yarn test -- --all --coverage --runInBand + yarn coverage deploy: <<: *defaults steps: From 40a229eae652e7a05a9bc8d8882bcdeeaea6a4ca Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 28 Aug 2017 13:51:40 -0700 Subject: [PATCH 058/107] cleanup deprecated tests --- addons/info/example/Button.js | 15 --------------- addons/info/package.json | 1 - 2 files changed, 16 deletions(-) diff --git a/addons/info/example/Button.js b/addons/info/example/Button.js index 69e07321300f..df7c34c01288 100644 --- a/addons/info/example/Button.js +++ b/addons/info/example/Button.js @@ -14,21 +14,6 @@ Object.assign(Button, { style: PropTypes.object, disabled: PropTypes.bool, onClick: PropTypes.func, - array: PropTypes.array, - arrayOf: PropTypes.arrayOf(PropTypes.string), - oneOf: PropTypes.oneOf(['foo', 'bar']), - shape: PropTypes.shape({ - foo: PropTypes.string, - bar: PropTypes.number, - }), - nestedArrayOf: PropTypes.arrayOf(PropTypes.shape({ - foo: PropTypes.shape({ - baz: PropTypes.string, - bar: PropTypes.arrayOf({ - PropTypes.string - }), - }), - })), }, }); diff --git a/addons/info/package.json b/addons/info/package.json index 33cd2743dcee..fc856bec7dde 100644 --- a/addons/info/package.json +++ b/addons/info/package.json @@ -11,7 +11,6 @@ "scripts": { "prepublish": "node ../../scripts/prepublish.js", "publish-storybook": "bash .scripts/publish_storybook.sh", - "dev": "babel --watch --ignore tests,__tests__,test.js,stories/,story.jsx --plugins transform-runtime ./src --out-dir ./dist --copy-files", "storybook": "start-storybook -p 9010" }, "dependencies": { From 5233d5b72c6c38cbf319f6612473824ba26216c4 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 14:09:03 -0700 Subject: [PATCH 059/107] Fix lint errors for the viewport addon --- addons/viewport/src/components/Panel.jsx | 10 ++-- .../src/components/RotateViewport.jsx | 48 +++++++++---------- .../src/components/SelectViewport.jsx | 45 ++++++++--------- addons/viewport/src/components/WrapStory.jsx | 26 ---------- 4 files changed, 50 insertions(+), 79 deletions(-) delete mode 100644 addons/viewport/src/components/WrapStory.jsx diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx index 6ebd8b2a9943..d6f28133fe87 100644 --- a/addons/viewport/src/components/Panel.jsx +++ b/addons/viewport/src/components/Panel.jsx @@ -1,3 +1,5 @@ +/* global document */ + import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { viewports, defaultViewport, resetViewport } from './viewportInfo'; @@ -5,6 +7,8 @@ import { viewports, defaultViewport, resetViewport } from './viewportInfo'; import { SelectViewport } from './SelectViewport'; import { RotateViewport } from './RotateViewport'; +import * as styles from './styles'; + const storybookIframe = 'storybook-preview-iframe'; const containerStyles = { padding: 15, @@ -14,11 +18,9 @@ const containerStyles = { '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", Arial, sans-serif', }; -import * as styles from './styles'; - export class Panel extends Component { static propTypes = { - channel: PropTypes.object.isRequired, + channel: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types }; constructor(props, context) { @@ -38,7 +40,7 @@ export class Panel extends Component { iframe = undefined; changeViewport = viewport => { - const { viewport: previousViewport, isLandscape } = this.state; + const { viewport: previousViewport } = this.state; if (previousViewport !== viewport) { this.setState( diff --git a/addons/viewport/src/components/RotateViewport.jsx b/addons/viewport/src/components/RotateViewport.jsx index 725680508272..0c13b24603dd 100644 --- a/addons/viewport/src/components/RotateViewport.jsx +++ b/addons/viewport/src/components/RotateViewport.jsx @@ -1,31 +1,31 @@ -import React, { Component } from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import * as styles from './styles'; -export class RotateViewport extends Component { - static propTypes = { - disabled: PropTypes.bool, - onClick: PropTypes.func.isRequired, - active: PropTypes.bool, +export function RotateViewport({ active, ...props }) { + const disabledStyles = props.disabled ? styles.disabled : {}; + const actionStyles = { + ...styles.action, + ...disabledStyles, }; - render() { - const { active, ...props } = this.props; - - const disabledStyles = props.disabled ? styles.disabled : {}; - const actionStyles = { - ...styles.action, - ...disabledStyles, - }; + return ( +
+ + +
+ ); +} - return ( -
- +RotateViewport.propTypes = { + disabled: PropTypes.bool, + onClick: PropTypes.func.isRequired, + active: PropTypes.bool, +}; - -
- ); - } -} +RotateViewport.defaultProps = { + disabled: true, + active: true, +}; diff --git a/addons/viewport/src/components/SelectViewport.jsx b/addons/viewport/src/components/SelectViewport.jsx index cace789f5a13..c711ccc54864 100644 --- a/addons/viewport/src/components/SelectViewport.jsx +++ b/addons/viewport/src/components/SelectViewport.jsx @@ -1,31 +1,26 @@ -import React, { Component } from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import { viewports, defaultViewport } from './viewportInfo'; import * as styles from './styles'; -export class SelectViewport extends Component { - static propTypes = { - onChange: PropTypes.func.isRequired, - activeViewport: PropTypes.string.isRequired, - }; - - render() { - const { activeViewport, onChange } = this.props; - return ( -
- - - -
- ); - } +export function SelectViewport({ activeViewport, onChange }) { + return ( +
+ + +
+ ); } + +SelectViewport.propTypes = { + onChange: PropTypes.func.isRequired, + activeViewport: PropTypes.string.isRequired, +}; diff --git a/addons/viewport/src/components/WrapStory.jsx b/addons/viewport/src/components/WrapStory.jsx deleted file mode 100644 index 9b863e6677db..000000000000 --- a/addons/viewport/src/components/WrapStory.jsx +++ /dev/null @@ -1,26 +0,0 @@ -import React, { Component } from 'react'; -import addons from '@storybook/addons'; -import PropTypes from 'prop-types'; - -export class WrapStory extends Component { - static propTypes = { - channel: PropTypes.object.isRequired, - context: PropTypes.object, - storyFn: PropTypes.func, - }; - - static defaultProps = { - context: {}, - storyFn: context => context, - }; - - componentDidMount() { - const { channel } = this.props; - channel.emit('addon:viewport:update', 'reset'); - } - - render() { - const { storyFn, context } = this.props; - return storyFn(context); - } -} From 5b3aa41ff8fd0247001af97268ab4d2f1b5c1070 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 23:53:04 +0200 Subject: [PATCH 060/107] Use `yarn install` everywhere over the shorthand --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7949ceb5d614..0620b6b23b7f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,7 +28,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - save_cache: key: root-dependencies-{{ checksum "package.json" }} paths: @@ -59,7 +59,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - run: name: "Bootstrapping" command: | @@ -83,7 +83,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - run: name: "Bootstrapping packages" command: | @@ -103,7 +103,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - run: name: "Bootstrapping" command: | @@ -123,7 +123,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - run: name: "Linting" command: | @@ -139,7 +139,7 @@ jobs: - run: name: "Install root dependencies" command: | - yarn + yarn install - run: name: "Bootstrapping" command: | From a96463042e193bd2e1a4da4199716fdee2c9c316 Mon Sep 17 00:00:00 2001 From: Filipp Riabchun Date: Tue, 29 Aug 2017 00:55:26 +0300 Subject: [PATCH 061/107] Fix incorrect command --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a8cb6cf223e3..917758ac319d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -154,7 +154,7 @@ In order to test features you add, you may need to link the local copy of this r For that we need a sample project. Let's create it. ```sh -yarn global install --global create-react-app getstorybook +yarn global add create-react-app getstorybook create-react-app my-demo-app cd my-demo-app getstorybook From 3a3658d80b7dba91485e56c9a301f8142f325e37 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 28 Aug 2017 23:55:43 +0200 Subject: [PATCH 062/107] CHANGE CONTRIBUTING.md to say yarn run publish --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 041f55e68f62..779a7943c256 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -235,7 +235,7 @@ From here there are different procedures for prerelease (e.g. alpha/beta/rc) and ```sh # publish and tag the release -yarn publish -- --concurrency 1 --npm-tag=alpha +yarn run publish -- --concurrency 1 --npm-tag=alpha # push the tags git push --tags From a54f7146bdb0e078db0426d0e7188eb475264eff Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 28 Aug 2017 14:11:45 -0700 Subject: [PATCH 063/107] cleanup --- addons/info/src/components/types/Enum.js | 11 +++ .../info/src/components/types/InstanceOf.js | 13 +++ addons/info/src/components/types/Object.js | 8 ++ addons/info/src/components/types/ObjectOf.js | 17 +--- .../info/src/components/types/ObjectType.js | 81 ++----------------- addons/info/src/components/types/OneOf.js | 13 +++ .../src/components/types/PrettyPropType.js | 60 ++++++-------- addons/info/src/components/types/Shape.js | 81 +++++++++++++++++++ addons/info/src/components/types/Signature.js | 13 +++ 9 files changed, 171 insertions(+), 126 deletions(-) create mode 100644 addons/info/src/components/types/Enum.js create mode 100644 addons/info/src/components/types/InstanceOf.js create mode 100644 addons/info/src/components/types/Object.js create mode 100644 addons/info/src/components/types/OneOf.js create mode 100644 addons/info/src/components/types/Shape.js create mode 100644 addons/info/src/components/types/Signature.js diff --git a/addons/info/src/components/types/Enum.js b/addons/info/src/components/types/Enum.js new file mode 100644 index 000000000000..de574d88598d --- /dev/null +++ b/addons/info/src/components/types/Enum.js @@ -0,0 +1,11 @@ +import React from 'react'; +import { TypeInfo } from './proptypes'; + +const Enum = ({ propType }) => + + {propType.value.map(({ value }) => value).join(' | ')} + ; + +Enum.propTypes = { + propType: TypeInfo.isRequired, +}; diff --git a/addons/info/src/components/types/InstanceOf.js b/addons/info/src/components/types/InstanceOf.js new file mode 100644 index 000000000000..27cc8ca8e318 --- /dev/null +++ b/addons/info/src/components/types/InstanceOf.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { TypeInfo } from './proptypes'; + +const InstanceOf = ({ propType }) => + + {propType.value} + ; + +InstanceOf.propTypes = { + propType: TypeInfo.isRequired, +}; + +export default InstanceOf; diff --git a/addons/info/src/components/types/Object.js b/addons/info/src/components/types/Object.js new file mode 100644 index 000000000000..b9fa4cfd0662 --- /dev/null +++ b/addons/info/src/components/types/Object.js @@ -0,0 +1,8 @@ +import React from 'react'; + +const ObjectType = () => + + {'{}'} + ; + +export default ObjectType; diff --git a/addons/info/src/components/types/ObjectOf.js b/addons/info/src/components/types/ObjectOf.js index d709e45a71ed..c4d7d61a146e 100644 --- a/addons/info/src/components/types/ObjectOf.js +++ b/addons/info/src/components/types/ObjectOf.js @@ -5,20 +5,9 @@ import { TypeInfo } from './proptypes'; const ObjectOf = ({ propType }) => - - {'{'} - - - - {'[]:'} - - - - - - - {'}'} - + {'{[]: '} + + {'}'} ; ObjectOf.propTypes = { diff --git a/addons/info/src/components/types/ObjectType.js b/addons/info/src/components/types/ObjectType.js index 618bb8983a26..b9fa4cfd0662 100644 --- a/addons/info/src/components/types/ObjectType.js +++ b/addons/info/src/components/types/ObjectType.js @@ -1,79 +1,8 @@ -import PropTypes from 'prop-types'; import React from 'react'; -import PrettyPropType from './PrettyPropType'; -import PropertyLabel from './PropertyLabel'; -import HighlightButton from './HighlightButton'; +const ObjectType = () => + + {'{}'} + ; -import { TypeInfo } from './proptypes'; - -const MARGIN_SIZE = 15; - -export default class ObjectType extends React.Component { - static propTypes = { - propType: TypeInfo, - depth: PropTypes.number.isRequired, - }; - - static defaultProps = { - propType: null, - }; - - constructor(props) { - super(props); - this.state = { - minimized: false, - }; - } - - handleToggle = () => { - this.setState({ - minimized: !this.state.minimized, - }); - }; - - handleMouseEnter = () => { - this.setState({ hover: true }); - }; - - handleMouseLeave = () => { - this.setState({ hover: false }); - }; - - render() { - const { propType, depth } = this.props; - return ( - - - {'{'} - - ... - {!this.state.minimized && - Object.keys(propType.value).map(childProperty => -
- - - , -
- )} - - - {'}'} - -
- ); - } -} +export default ObjectType; diff --git a/addons/info/src/components/types/OneOf.js b/addons/info/src/components/types/OneOf.js new file mode 100644 index 000000000000..65177f77e165 --- /dev/null +++ b/addons/info/src/components/types/OneOf.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { TypeInfo } from './proptypes'; + +const OneOf = ({ propType }) => + + {propType.value.map(({ value }) => value).join(' | ')} + ; + +OneOf.propTypes = { + propType: TypeInfo.isRequired, +}; + +export default OneOf; diff --git a/addons/info/src/components/types/PrettyPropType.js b/addons/info/src/components/types/PrettyPropType.js index 70929261cb27..fe50881408f7 100644 --- a/addons/info/src/components/types/PrettyPropType.js +++ b/addons/info/src/components/types/PrettyPropType.js @@ -2,58 +2,46 @@ import PropTypes from 'prop-types'; import React from 'react'; import ObjectType from './ObjectType'; +import Shape from './Shape'; import OneOfType from './OneOfType'; import ArrayOf from './ArrayOf'; import ObjectOf from './ObjectOf'; +import OneOf from './OneOf'; +import InstanceOf from './InstanceOf'; +import Signature from './Signature'; import { TypeInfo } from './proptypes'; -const PrettyPropType = ({ propType, depth }) => { +// propType -> Component map - these are a bit more complex prop types to display +const propTypeComponentMap = new Map([ + ['shape', Shape], + ['union', OneOfType], + ['arrayOf', ArrayOf], + ['objectOf', ObjectOf], + // Might be overkill to have below proptypes as separate components *shrug* + ['object', ObjectType], + ['enum', OneOf], + ['instanceOf', InstanceOf], + ['signature', Signature], +]); + +const PrettyPropType = props => { + const { propType, depth } = props; if (!propType) { return unknown; } const { name } = propType || {}; - if (name === 'shape') { - return ; - } - - if (name === 'union') { - return ; - } - - if (name === 'arrayOf') { - return ; - } - - if (name === 'objectOf') { - return ; - } - - // Rest are just simple strings - let display; - - switch (name) { - case 'object': - display = '{}'; - break; - case 'enum': - display = propType.value.map(({ value }) => value).join(' | '); - break; - case 'instanceOf': - display = propType.value; - break; - case 'signature': - display = propType.raw; - break; - default: - display = name; + if (propTypeComponentMap.has(name)) { + const Component = propTypeComponentMap.get(name); + return ; } + // Otherwise, propType does not have a dedicated component, display proptype name by default return ( - {display} + {name} ); }; diff --git a/addons/info/src/components/types/Shape.js b/addons/info/src/components/types/Shape.js new file mode 100644 index 000000000000..7a2f114ef178 --- /dev/null +++ b/addons/info/src/components/types/Shape.js @@ -0,0 +1,81 @@ +import PropTypes from 'prop-types'; +import React from 'react'; + +import { HighlightButton } from '@storybook/components'; +import PrettyPropType from './PrettyPropType'; +import PropertyLabel from './PropertyLabel'; + +import { TypeInfo } from './proptypes'; + +const MARGIN_SIZE = 15; + +class Shape extends React.Component { + constructor(props) { + super(props); + this.state = { + minimized: false, + }; + } + + handleToggle = () => { + this.setState({ + minimized: !this.state.minimized, + }); + }; + + handleMouseEnter = () => { + this.setState({ hover: true }); + }; + + handleMouseLeave = () => { + this.setState({ hover: false }); + }; + + render() { + const { propType, depth } = this.props; + return ( + + + {'{'} + + ... + {!this.state.minimized && + Object.keys(propType.value).map(childProperty => +
+ + + , +
+ )} + + + {'}'} + +
+ ); + } +} + +Shape.propTypes = { + propType: TypeInfo, + depth: PropTypes.number.isRequired, +}; + +Shape.defaultProps = { + propType: null, +}; + +export default Shape; diff --git a/addons/info/src/components/types/Signature.js b/addons/info/src/components/types/Signature.js new file mode 100644 index 000000000000..5f85770b45e4 --- /dev/null +++ b/addons/info/src/components/types/Signature.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { TypeInfo } from './proptypes'; + +const Signature = ({ propType }) => + + {propType.raw} + ; + +Signature.propTypes = { + propType: TypeInfo.isRequired, +}; + +export default Signature; From 34333bdc8c9107ac53ced9499e8cd43e74a7e347 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 28 Aug 2017 15:24:30 -0700 Subject: [PATCH 064/107] add: styled components --- addons/info/src/components/PropTable.js | 36 +++++++++---------- addons/info/src/components/styles.js | 17 --------- .../src/components/types/PropertyLabel.js | 7 +++- lib/components/src/highlight_button.js | 26 ++++++++++++++ lib/components/src/index.js | 3 ++ lib/components/src/table/cell.js | 27 ++++++++++++++ lib/components/src/table/table.js | 5 +++ 7 files changed, 85 insertions(+), 36 deletions(-) delete mode 100644 addons/info/src/components/styles.js create mode 100644 lib/components/src/highlight_button.js create mode 100644 lib/components/src/table/cell.js create mode 100644 lib/components/src/table/table.js diff --git a/addons/info/src/components/PropTable.js b/addons/info/src/components/PropTable.js index 86bb8659b96f..301f7e341cbd 100644 --- a/addons/info/src/components/PropTable.js +++ b/addons/info/src/components/PropTable.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import React from 'react'; -import styles from './styles'; +import { Table, Td, Th } from '@storybook/components'; import PropVal from './PropVal'; import PrettyPropType from './types/PrettyPropType'; @@ -103,40 +103,40 @@ export default function PropTable(props) { }; return ( - +
- - - - - + + + + + {array.map(row => - - + - + - + - + + )} -
propertypropTyperequireddefaultdescriptionpropertypropTyperequireddefaultdescription
+ {row.property} - + - + {row.required ? 'yes' : '-'} - + {row.defaultValue === undefined ? '-' : } - + {row.description} -
+ ); } diff --git a/addons/info/src/components/styles.js b/addons/info/src/components/styles.js deleted file mode 100644 index a4fcfedf6381..000000000000 --- a/addons/info/src/components/styles.js +++ /dev/null @@ -1,17 +0,0 @@ -export default { - hasProperty: { - whiteSpace: 'nowrap', - }, - code: { - whiteSpace: 'nowrap', - fontFamily: 'Monaco, Consolas, "Courier New", monospace', - }, - propTable: { - marginTop: 10, - borderCollapse: 'collapse', - }, - propTableCell: { - border: '1px solid #ccc', - padding: '2px 6px', - }, -}; diff --git a/addons/info/src/components/types/PropertyLabel.js b/addons/info/src/components/types/PropertyLabel.js index 1b2616b26ab8..8eca3d423256 100644 --- a/addons/info/src/components/types/PropertyLabel.js +++ b/addons/info/src/components/types/PropertyLabel.js @@ -1,6 +1,11 @@ import PropTypes from 'prop-types'; import React from 'react'; -import styles from '../styles'; + +const styles = { + hasProperty: { + whiteSpace: 'nowrap', + }, +}; const PropertyLabel = ({ property, required }) => { if (!property) return null; diff --git a/lib/components/src/highlight_button.js b/lib/components/src/highlight_button.js new file mode 100644 index 000000000000..6aabee44cc0f --- /dev/null +++ b/lib/components/src/highlight_button.js @@ -0,0 +1,26 @@ +import React from 'react'; +import glamorous from 'glamorous'; + +const Button = props => ; + +export default glamorous(Button, { displayName: 'Button', rootEl: 'span' })( + { + cursor: 'pointer', + ':hover': { + backgroundColor: 'rgba(0, 0, 0, 0.05)', + border: '1px solid #ccc', + }, + }, + props => { + const styles = []; + + if (props.highlight) { + styles.push({ + backgroundColor: 'rgba(0, 0, 0, 0.05)', + border: '1px solid #ccc', + }); + } + + return styles; + } +); diff --git a/lib/components/src/index.js b/lib/components/src/index.js index 446888e9dc92..7e73841424ad 100644 --- a/lib/components/src/index.js +++ b/lib/components/src/index.js @@ -2,3 +2,6 @@ export { baseFonts } from './theme'; export { default as RoutedLink } from './navigation/routed_link'; export { default as MenuLink } from './navigation/menu_link'; +export { default as HighlightButton } from './highlight_button'; +export { default as Table } from './table/table'; +export { td as Td, th as Th } from './table/cell'; diff --git a/lib/components/src/table/cell.js b/lib/components/src/table/cell.js new file mode 100644 index 000000000000..fa23e60876c6 --- /dev/null +++ b/lib/components/src/table/cell.js @@ -0,0 +1,27 @@ +import glamorous from 'glamorous'; + +const dynamicStyles = props => { + const styles = []; + + if (props.bordered) { + styles.push({ + border: '1px solid #ccc', + }); + } + + if (props.code) { + styles.push({ + whiteSpace: 'nowrap', + fontFamily: 'Monaco, Consolas, "Courier New", monospace', + }); + } + + return styles; +}; + +const styles = { + padding: '2px 6px', +}; + +export const td = glamorous.td(styles, dynamicStyles); +export const th = glamorous.th(styles, dynamicStyles); diff --git a/lib/components/src/table/table.js b/lib/components/src/table/table.js new file mode 100644 index 000000000000..2871c6ca9154 --- /dev/null +++ b/lib/components/src/table/table.js @@ -0,0 +1,5 @@ +import glamorous from 'glamorous'; + +export default glamorous.table({ + borderCollapse: 'collapse', +}); From 2fdeff5bdf849ed93a387c78fe2bcfa152f5eb7c Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 28 Aug 2017 15:29:47 -0700 Subject: [PATCH 065/107] removed in favor of glamorous component --- .../src/components/types/HighlightButton.js | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 addons/info/src/components/types/HighlightButton.js diff --git a/addons/info/src/components/types/HighlightButton.js b/addons/info/src/components/types/HighlightButton.js deleted file mode 100644 index a9325716db09..000000000000 --- a/addons/info/src/components/types/HighlightButton.js +++ /dev/null @@ -1,56 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -export default class HighlightButton extends React.Component { - static propTypes = { - children: PropTypes.node.isRequired, - highlight: PropTypes.bool, - }; - - static defaultProps = { - highlight: false, - }; - - constructor(props) { - super(props); - this.state = { - hover: false, - }; - } - - handleMouseEnter = () => { - this.setState({ hover: true }); - }; - - handleMouseLeave = () => { - this.setState({ hover: false }); - }; - - render() { - const { children, highlight, ...otherProps } = this.props; - const style = - highlight || this.state.hover - ? { - backgroundColor: 'rgba(0, 0, 0, 0.05)', - border: '1px solid #ccc', - } - : {}; - return ( - - {children} - - ); - } -} From ea4a6051afd6387791fe22bac501f3c471753cff Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 18:34:15 -0700 Subject: [PATCH 066/107] Add tests for manager and panel component --- addons/viewport/package.json | 1 + addons/viewport/src/components/Panel.jsx | 21 +- .../src/components/tests/Panel.spec.jsx | 249 ++++++++++++++++++ addons/viewport/src/manager.jsx | 22 +- addons/viewport/src/tests/manager.spec.jsx | 25 ++ 5 files changed, 294 insertions(+), 24 deletions(-) create mode 100644 addons/viewport/src/components/tests/Panel.spec.jsx create mode 100644 addons/viewport/src/tests/manager.spec.jsx diff --git a/addons/viewport/package.json b/addons/viewport/package.json index 95044bcfc804..74a19c2452b7 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -30,6 +30,7 @@ "babel-preset-es2015": "^6.24.1", "babel-preset-es2017": "^6.24.1", "babel-preset-react": "^6.24.1", + "enzyme": "^2.9.1", "react": "^15.6.1" } } diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.jsx index d6f28133fe87..2e33fa89e39a 100644 --- a/addons/viewport/src/components/Panel.jsx +++ b/addons/viewport/src/components/Panel.jsx @@ -37,6 +37,10 @@ export class Panel extends Component { this.iframe = document.getElementById(storybookIframe); } + componentWillUnmount() { + this.props.channel.removeListener('addon:viewport:update', this.changeViewport); + } + iframe = undefined; changeViewport = viewport => { @@ -50,27 +54,16 @@ export class Panel extends Component { }, this.updateIframe ); - } else { - this.updateIframe(); } }; toggleLandscape = () => { const { isLandscape } = this.state; - // TODO simplify the state management - // ideally we simply dispatch an action to the iframe - this.setState( - { - isLandscape: !isLandscape, - }, - () => { - this.changeViewport(this.state.viewport); - } - ); + this.setState({ isLandscape: !isLandscape }, this.updateIframe); }; - updateIframe() { + updateIframe = () => { const { viewport: viewportKey, isLandscape } = this.state; const viewport = viewports[viewportKey] || resetViewport; @@ -86,7 +79,7 @@ export class Panel extends Component { this.iframe.style.height = viewport.styles.width; this.iframe.style.width = viewport.styles.height; } - } + }; render() { const { isLandscape, viewport } = this.state; diff --git a/addons/viewport/src/components/tests/Panel.spec.jsx b/addons/viewport/src/components/tests/Panel.spec.jsx new file mode 100644 index 000000000000..25a6db6fc7b1 --- /dev/null +++ b/addons/viewport/src/components/tests/Panel.spec.jsx @@ -0,0 +1,249 @@ +/* global document */ +import React from 'react'; +import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies + +import { Panel } from '../Panel'; +import { viewports, defaultViewport, resetViewport } from '../viewportInfo'; +import * as styles from '../styles'; + +describe('Viewport/Panel', () => { + const props = { + channel: { + on: jest.fn(), + removeListener: jest.fn(), + }, + }; + + let subject; + + beforeEach(() => { + subject = shallow(); + }); + + describe('construct', () => { + it('creates the initial state', () => { + expect(subject.instance().state).toEqual({ + viewport: defaultViewport, + isLandscape: false, + }); + }); + + it('listens on the channel', () => { + expect(props.channel.on).toHaveBeenCalledWith( + 'addon:viewport:update', + subject.instance().changeViewport + ); + }); + }); + + describe('componentDidMount', () => { + let previousGet; + + beforeEach(() => { + subject.instance().iframe = undefined; + previousGet = document.getElementById; + document.getElementById = jest.fn(() => 'iframe'); + subject.instance().componentDidMount(); + }); + + afterEach(() => { + document.getElementById = previousGet; + }); + + it('gets the iframe', () => { + expect(subject.instance().iframe).toEqual('iframe'); + }); + }); + + describe('componentWillUnmount', () => { + beforeEach(() => { + subject.instance().componentWillUnmount(); + }); + + it('removes the channel listener', () => { + expect(props.channel.removeListener).toHaveBeenCalledWith( + 'addon:viewport:update', + subject.instance().changeViewport + ); + }); + }); + + describe('changeViewport', () => { + beforeEach(() => { + subject.instance().setState = jest.fn(); + subject.instance().updateIframe = jest.fn(); + }); + + describe('new viewport', () => { + beforeEach(() => { + subject.instance().changeViewport(viewports[0]); + }); + + it('sets the state with the new information', () => { + expect(subject.instance().setState).toHaveBeenCalledWith( + { + viewport: viewports[0], + isLandscape: false, + }, + subject.instance().updateIframe + ); + }); + }); + + describe('same as previous viewport', () => { + beforeEach(() => { + subject.instance().changeViewport(defaultViewport); + }); + + it('doesnt update the state', () => { + expect(subject.instance().setState).not.toHaveBeenCalled(); + }); + }); + }); + + describe('toggleLandscape', () => { + beforeEach(() => { + subject.setState({ isLandscape: false }); + subject.instance().setState = jest.fn(); + subject.instance().toggleLandscape(); + }); + + it('updates the landscape to be the opposite', () => { + expect(subject.instance().setState).toHaveBeenCalledWith( + { isLandscape: true }, + subject.instance().updateIframe + ); + }); + }); + + describe('updateIframe', () => { + let iframe; + + describe('no iframe found', () => { + beforeEach(() => { + subject.instance().iframe = null; + }); + + it('throws a TypeError', () => { + expect(() => { + subject.instance().updateIframe(); + }).toThrow('Cannot find Storybook iframe'); + }); + }); + + describe('iframe found', () => { + beforeEach(() => { + iframe = { style: {} }; + subject.instance().iframe = iframe; + }); + + it('sets the viewport information on the iframe', () => { + subject.instance().updateIframe(); + expect(subject.instance().iframe.style).toEqual(resetViewport.styles); + }); + + it('swaps the height/width when in landscape', () => { + subject.instance().state.isLandscape = true; + subject.instance().updateIframe(); + + expect(subject.instance().iframe.style).toEqual( + expect.objectContaining({ + height: resetViewport.styles.width, + width: resetViewport.styles.height, + }) + ); + }); + }); + }); + + describe('render', () => { + describe('reset button', () => { + let resetBtn; + + beforeEach(() => { + subject.instance().changeViewport = jest.fn(); + resetBtn = subject.find('button'); + }); + + it('styles the reset button as disabled if viewport is default', () => { + expect(resetBtn.props().style).toEqual(expect.objectContaining(styles.disabled)); + }); + + it('enabels the reset button if not default', () => { + subject.setState({ viewport: 'iphone6' }); + + // Find updated button + resetBtn = subject.find('button'); + + expect(resetBtn.props().style).toEqual({ + ...styles.button, + marginTop: 30, + padding: 20, + }); + }); + + it('toggles the landscape on click', () => { + resetBtn.simulate('click'); + expect(subject.instance().changeViewport).toHaveBeenCalledWith(defaultViewport); + }); + }); + + describe('SelectViewport', () => { + let select; + + beforeEach(() => { + select = subject.find('SelectViewport'); + subject.instance().changeViewport = jest.fn(); + }); + + it('passes the activeViewport', () => { + expect(select.props()).toEqual( + expect.objectContaining({ + activeViewport: defaultViewport, + }) + ); + }); + + it('onChange it updates the viewport', () => { + const e = { target: { value: 'iphone6' } }; + select.simulate('change', e); + expect(subject.instance().changeViewport).toHaveBeenCalledWith(e.target.value); + }); + }); + + describe('RotateView', () => { + let toggle; + + beforeEach(() => { + toggle = subject.find('RotateViewport'); + jest.spyOn(subject.instance(), 'toggleLandscape'); + subject.instance().forceUpdate(); + }); + + it('passes the active prop based on the state of the panel', () => { + expect(toggle.props().active).toEqual(subject.state('isLandscape')); + }); + + describe('is on the default viewport', () => { + beforeEach(() => { + subject.setState({ viewport: defaultViewport }); + }); + + it('sets the disabled property', () => { + expect(toggle.props().disabled).toEqual(true); + }); + }); + + describe('is on a responsive viewport', () => { + beforeEach(() => { + subject.setState({ viewport: 'iphone6' }); + toggle = subject.find('RotateViewport'); + }); + + it('the disabled property is false', () => { + expect(toggle.props().disabled).toEqual(false); + }); + }); + }); + }); +}); diff --git a/addons/viewport/src/manager.jsx b/addons/viewport/src/manager.jsx index 589ce24808ae..76de2c8473e6 100644 --- a/addons/viewport/src/manager.jsx +++ b/addons/viewport/src/manager.jsx @@ -6,17 +6,19 @@ import { Panel } from './components/Panel'; const ADDON_ID = 'storybook-addon-viewport'; const PANEL_ID = `${ADDON_ID}/addon-panel`; -function init() { - addons.register(ADDON_ID, api => { - const channel = addons.getChannel(); +function addChannel(api) { + const channel = addons.getChannel(); - addons.addPanel(PANEL_ID, { - title: 'Viewport', - render() { - return ; - }, - }); + addons.addPanel(PANEL_ID, { + title: 'Viewport', + render() { + return ; + }, }); } -export { init }; +function init() { + addons.register(ADDON_ID, addChannel); +} + +export { init, addChannel }; diff --git a/addons/viewport/src/tests/manager.spec.jsx b/addons/viewport/src/tests/manager.spec.jsx new file mode 100644 index 000000000000..eaed9cd3111a --- /dev/null +++ b/addons/viewport/src/tests/manager.spec.jsx @@ -0,0 +1,25 @@ +import addons from '@storybook/addons'; +import { init, addChannel } from '../manager.jsx'; + +jest.mock('@storybook/addons'); + +describe('Viewport manager', () => { + describe('init', () => { + it('registers the addon', () => { + init(); + + expect(addons.register).toHaveBeenCalledWith('storybook-addon-viewport', addChannel); + }); + }); + + describe('addChannel', () => { + it('adds the panel to storybook', () => { + addChannel(); + + expect(addons.addPanel).toHaveBeenCalledWith( + 'storybook-addon-viewport/addon-panel', + expect.objectContaining({ title: 'Viewport' }) + ); + }); + }); +}); From 2366e9b9b68a7a23037598504b97a8ff9c9d7b43 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 20:02:53 -0700 Subject: [PATCH 067/107] Add tests for rotate and select components --- .../src/components/RotateViewport.jsx | 3 +- .../components/tests/RotateViewport.spec.jsx | 91 +++++++++++++++++++ .../components/tests/SelectViewport.spec.jsx | 60 ++++++++++++ 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 addons/viewport/src/components/tests/RotateViewport.spec.jsx create mode 100644 addons/viewport/src/components/tests/SelectViewport.spec.jsx diff --git a/addons/viewport/src/components/RotateViewport.jsx b/addons/viewport/src/components/RotateViewport.jsx index 0c13b24603dd..ef6c9c1011e7 100644 --- a/addons/viewport/src/components/RotateViewport.jsx +++ b/addons/viewport/src/components/RotateViewport.jsx @@ -8,7 +8,6 @@ export function RotateViewport({ active, ...props }) { ...styles.action, ...disabledStyles, }; - return (
@@ -27,5 +26,5 @@ RotateViewport.propTypes = { RotateViewport.defaultProps = { disabled: true, - active: true, + active: false, }; diff --git a/addons/viewport/src/components/tests/RotateViewport.spec.jsx b/addons/viewport/src/components/tests/RotateViewport.spec.jsx new file mode 100644 index 000000000000..75d04a87b931 --- /dev/null +++ b/addons/viewport/src/components/tests/RotateViewport.spec.jsx @@ -0,0 +1,91 @@ +import React from 'react'; +import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies +import { RotateViewport } from '../RotateViewport'; +import * as styles from '../styles'; + +describe('Viewport/RotateViewport', () => { + let subject; + let props; + + beforeEach(() => { + props = { + onClick: jest.fn(), + }; + + subject = shallow(); + }); + + it('has a label', () => { + expect(subject.find('label').text()).toEqual('Rotate'); + }); + + describe('button', () => { + let btn; + + beforeEach(() => { + btn = subject.find('button'); + }); + + it('has a click handler set via props', () => { + // note, this shouldn't trigger if disabled, but enzyme doesn't care + btn.simulate('click'); + expect(props.onClick).toHaveBeenCalled(); + }); + + it('renders the the action styles on the button', () => { + expect(btn.props().style).toEqual(expect.objectContaining(styles.action)); + }); + + describe('is active', () => { + beforeEach(() => { + subject.setProps({ active: true }); + btn = subject.find('button'); + }); + + it('renders the correct text', () => { + expect(btn.text()).toEqual('Vertical'); + }); + }); + + describe('is inactive', () => { + beforeEach(() => { + subject.setProps({ active: false }); + btn = subject.find('button'); + }); + + it('renders the correct text', () => { + expect(btn.text()).toEqual('Landscape'); + }); + }); + + describe('is disabled', () => { + beforeEach(() => { + subject.setProps({ disabled: true }); + btn = subject.find('button'); + }); + + it('renders the disabled styles', () => { + expect(btn.props().style).toEqual(expect.objectContaining(styles.disabled)); + }); + + it('sets the disabled property on the button', () => { + expect(btn.props().disabled).toEqual(true); + }); + }); + + describe('is enabled', () => { + beforeEach(() => { + subject.setProps({ disabled: false }); + btn = subject.find('button'); + }); + + it('renders the disabled styles', () => { + expect(btn.props().style).not.toEqual(expect.objectContaining(styles.disabled)); + }); + + it('does not set the disabled property on the button', () => { + expect(btn.props().disabled).toEqual(false); + }); + }); + }); +}); diff --git a/addons/viewport/src/components/tests/SelectViewport.spec.jsx b/addons/viewport/src/components/tests/SelectViewport.spec.jsx new file mode 100644 index 000000000000..304ba930e04c --- /dev/null +++ b/addons/viewport/src/components/tests/SelectViewport.spec.jsx @@ -0,0 +1,60 @@ +import React from 'react'; +import { shallow } from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies +import { SelectViewport } from '../SelectViewport'; +import { viewports, defaultViewport } from '../viewportInfo'; +import * as styles from '../styles'; + +describe('Viewport/SelectViewport', () => { + let subject; + let props; + + beforeEach(() => { + props = { + onChange: jest.fn(), + activeViewport: defaultViewport, + }; + + subject = shallow(); + }); + + describe('label', () => { + let label; + beforeEach(() => { + label = subject.find('label'); + }); + + it('is correctly styled', () => { + expect(label.props().style).toEqual(styles.label); + }); + }); + + describe('select', () => { + it('has a default option first', () => { + const firstOption = subject.find('option').first(); + expect(firstOption.props().value).toEqual(defaultViewport); + }); + + describe('dynamic options', () => { + const viewportKeys = Object.keys(viewports); + it('has at least 1 option', () => { + expect(!!viewportKeys.length).toEqual(true); + }); + + viewportKeys.forEach(key => { + let option; + + beforeEach(() => { + option = subject.find(`[value="${key}"]`); + }); + + it(`renders an option with key ${key}`, () => { + expect(option.node).toBeDefined(); + }); + + it(`renders an option for ${viewports[key].name}`, () => { + expect(option.text()).toEqual(viewports[key].name); + }); + }); + }); + }); +}); From d4feca31cd4b437c3fb228e2ee907017147232ea Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Mon, 28 Aug 2017 20:15:50 -0700 Subject: [PATCH 068/107] add tests for viewport info constants.. helping the codecov report --- .../src/components/tests/viewportInfo.spec.js | 19 +++++++++++++++++++ .../viewport/src/components/viewportInfo.js | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 addons/viewport/src/components/tests/viewportInfo.spec.js diff --git a/addons/viewport/src/components/tests/viewportInfo.spec.js b/addons/viewport/src/components/tests/viewportInfo.spec.js new file mode 100644 index 000000000000..a2baa2fd03bf --- /dev/null +++ b/addons/viewport/src/components/tests/viewportInfo.spec.js @@ -0,0 +1,19 @@ +import { viewports, resetViewport, configuredStyles } from '../viewportInfo'; + +describe('Viewport/constants', () => { + describe('viewports', () => { + it('includes the default styles on every custom viewport', () => { + const keys = Object.keys(viewports); + + keys.forEach(key => { + expect(viewports[key].styles).toEqual(expect.objectContaining(configuredStyles)); + }); + }); + }); + + describe('resetViewport', () => { + it('does not include the styles for a responsive iframe', () => { + expect(resetViewport).not.toEqual(expect.objectContaining(configuredStyles)); + }); + }); +}); diff --git a/addons/viewport/src/components/viewportInfo.js b/addons/viewport/src/components/viewportInfo.js index 7084e56f02c3..df969539910d 100644 --- a/addons/viewport/src/components/viewportInfo.js +++ b/addons/viewport/src/components/viewportInfo.js @@ -1,4 +1,4 @@ -const configuredStyles = { +export const configuredStyles = { border: '1px solid #728099', display: 'flex', margin: '0 auto', From 820456ebf177a12544f33a08338cd076cf17fdbe Mon Sep 17 00:00:00 2001 From: "Dependencies.io Bot" Date: Tue, 29 Aug 2017 03:29:34 +0000 Subject: [PATCH 069/107] Create initial dependencies.yml config --- dependencies.yml | 281 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 dependencies.yml diff --git a/dependencies.yml b/dependencies.yml new file mode 100644 index 000000000000..4b748dcf7dd1 --- /dev/null +++ b/dependencies.yml @@ -0,0 +1,281 @@ +collectors: + +- type: js-npm + path: docs + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: examples/crna-kitchen-sink + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: examples/vue-kitchen-sink + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: examples/react-native-vanilla + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: examples/cra-kitchen-sink + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: app/react-native + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: app/vue + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: app/react + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: / + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/channel-websocket + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/channel-postmessage + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/components + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/codemod + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/ui + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/cli + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/channels + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: lib/addons + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/info + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/centered + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/knobs + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/graphql + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/notes + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/comments + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/actions + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/storyshots + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/options + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/links + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" + +- type: js-npm + path: addons/events + actors: + # pull requests for updates to our major version + - type: js-npm + versions: "L.Y.Y" + # create issues for new major versions + - type: repo-issue + versions: "Y.0.0" From 523b07f23527359489d89753c105719ab9ac459b Mon Sep 17 00:00:00 2001 From: igor Date: Tue, 29 Aug 2017 14:24:24 +0300 Subject: [PATCH 070/107] Allow stories and namespaces to coexist in the same level --- .../left_panel/stories_tree/index.js | 52 ++++++++----------- .../stories_tree/tree_decorators.js | 5 +- .../left_panel/stories_tree/tree_node_type.js | 1 - lib/ui/src/modules/ui/libs/hierarchy.js | 39 +++++--------- 4 files changed, 35 insertions(+), 62 deletions(-) diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js b/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js index cb4aa38127ef..977fc52a3600 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js +++ b/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.js @@ -14,11 +14,10 @@ function createNodeKey({ namespaces, type }) { function getSelectedNodes(selectedHierarchy) { return selectedHierarchy - .reduce((nodes, namespace, index) => { + .reduce((nodes, namespace) => { const node = {}; - node.type = - selectedHierarchy.length - 1 === index ? treeNodeTypes.COMPONENT : treeNodeTypes.NAMESPACE; + node.type = treeNodeTypes.NAMESPACE; if (!nodes.length) { node.namespaces = [namespace]; @@ -77,8 +76,6 @@ class Stories extends React.Component { onToggle(node, toggled) { if (node.story) { this.fireOnKindAndStory(node.kind, node.story); - } else if (node.kind && toggled) { - this.fireOnKind(node.kind); } if (!node.namespaces) { @@ -97,11 +94,6 @@ class Stories extends React.Component { })); } - fireOnKind(kind) { - const { onSelectStory } = this.props; - if (onSelectStory) onSelectStory(kind, null); - } - fireOnKindAndStory(kind, story) { const { onSelectStory } = this.props; if (onSelectStory) onSelectStory(kind, story); @@ -112,34 +104,32 @@ class Stories extends React.Component { namespaces: storiesHierarchy.namespaces, name: storiesHierarchy.name, highlight: storiesHierarchy.highlight, + children: [], }; + if (storiesHierarchy.stories && storiesHierarchy.stories.length) { + const { selectedStory, selectedKind } = this.props; + + storiesHierarchy.stories + .map(story => ({ + name: story.name, + story: story.name, + kind: storiesHierarchy.kind, + active: selectedStory === story.name && selectedKind === storiesHierarchy.kind, + type: treeNodeTypes.STORY, + highlight: story.highlight, + })) + .forEach(story => treeModel.children.push(story)); + } + if (storiesHierarchy.isNamespace) { treeModel.type = treeNodeTypes.NAMESPACE; if (storiesHierarchy.map.size > 0) { - treeModel.children = []; - - storiesHierarchy.map.forEach(childItems => { - childItems.forEach(item => { - treeModel.children.push(this.mapStoriesHierarchy(item)); - }); - }); + storiesHierarchy.map.forEach(childItem => + treeModel.children.push(this.mapStoriesHierarchy(childItem)) + ); } - } else { - const { selectedStory, selectedKind } = this.props; - - treeModel.kind = storiesHierarchy.kind; - treeModel.type = treeNodeTypes.COMPONENT; - - treeModel.children = storiesHierarchy.stories.map(story => ({ - name: story.name, - story: story.name, - kind: storiesHierarchy.kind, - active: selectedStory === story.name && selectedKind === storiesHierarchy.kind, - type: treeNodeTypes.STORY, - highlight: story.highlight, - })); } treeModel.key = createNodeKey(treeModel); diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js b/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js index 5bddf499ad82..534016c2568c 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js +++ b/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_decorators.js @@ -71,8 +71,7 @@ ContainerDecorator.propTypes = { }).isRequired, node: PropTypes.shape({ root: PropTypes.bool, - type: PropTypes.oneOf([treeNodeTypes.NAMESPACE, treeNodeTypes.COMPONENT, treeNodeTypes.STORY]) - .isRequired, + type: PropTypes.oneOf([treeNodeTypes.NAMESPACE, treeNodeTypes.STORY]).isRequired, name: PropTypes.string.isRequired, kind: PropTypes.string, story: PropTypes.string, @@ -109,7 +108,7 @@ HeaderDecorator.propTypes = { base: PropTypes.object.isRequired, }).isRequired, node: PropTypes.shape({ - type: PropTypes.oneOf([treeNodeTypes.NAMESPACE, treeNodeTypes.COMPONENT, treeNodeTypes.STORY]), + type: PropTypes.oneOf([treeNodeTypes.NAMESPACE, treeNodeTypes.STORY]), highlight: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)), }).isRequired, }; diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js b/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js index 13ba2a9acbb9..f1c2ac477da1 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js +++ b/lib/ui/src/modules/ui/components/left_panel/stories_tree/tree_node_type.js @@ -1,5 +1,4 @@ export default { NAMESPACE: 'namespace', - COMPONENT: 'component', STORY: 'story', }; diff --git a/lib/ui/src/modules/ui/libs/hierarchy.js b/lib/ui/src/modules/ui/libs/hierarchy.js index c96f0cb1d651..d0cb54ca91aa 100644 --- a/lib/ui/src/modules/ui/libs/hierarchy.js +++ b/lib/ui/src/modules/ui/libs/hierarchy.js @@ -14,19 +14,6 @@ function findMatches(matches, type, value) { return matchForType.indices; } -function createComponentNode(namespace, story) { - return { - name: story.name, - namespaces: story.namespaces, - highlight: findMatches(story.matches, 'namespaces', namespace), - kind: story.kind, - stories: story.stories.map(s => ({ - name: s, - highlight: findMatches(story.matches, 'stories', s), - })), - }; -} - function createNamespaceNode(namespace, hierarchy, story) { return { isNamespace: true, @@ -38,24 +25,22 @@ function createNamespaceNode(namespace, hierarchy, story) { } function fillHierarchy(namespaces, hierarchy, story) { - if (namespaces.length === 1) { - const namespace = namespaces[0]; - const childItems = hierarchy.map.get(namespace) || []; - const component = createComponentNode(namespace, story); - - childItems.push(component); - hierarchy.map.set(namespace, childItems); - return; - } - const namespace = namespaces[0]; - const childItems = hierarchy.map.get(namespace) || []; - let childHierarchy = childItems.find(item => item.isNamespace); + let childHierarchy = hierarchy.map.get(namespace); if (!childHierarchy) { childHierarchy = createNamespaceNode(namespace, hierarchy, story); - childItems.push(childHierarchy); - hierarchy.map.set(namespace, childItems); + hierarchy.map.set(namespace, childHierarchy); + } + + if (namespaces.length === 1) { + childHierarchy.kind = story.kind; + childHierarchy.stories = story.stories.map(s => ({ + name: s, + highlight: findMatches(story.matches, 'stories', s), + })); + + return; } fillHierarchy(namespaces.slice(1), childHierarchy, story); From 0b19f6b0cedb824fb8bfe584889ceef9e2330046 Mon Sep 17 00:00:00 2001 From: igor Date: Tue, 29 Aug 2017 15:05:32 +0300 Subject: [PATCH 071/107] Fix tests --- .../left_panel/stories_tree/index.test.js | 36 ++-- .../modules/ui/containers/left_panel.test.js | 90 ++++----- lib/ui/src/modules/ui/libs/hierarchy.test.js | 174 ++++++++---------- 3 files changed, 147 insertions(+), 153 deletions(-) diff --git a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js b/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js index b4854236cb2d..b41ad9a21be3 100644 --- a/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js +++ b/lib/ui/src/modules/ui/components/left_panel/stories_tree/index.test.js @@ -51,7 +51,11 @@ describe('manager.ui.components.left_panel.stories', () => { /> ); - const list = wrap.find('div').first().children('div').last(); + const list = wrap + .find('div') + .first() + .children('div') + .last(); expect(list.text()).toBe(''); }); @@ -131,7 +135,7 @@ describe('manager.ui.components.left_panel.stories', () => { expect(nodes).toEqual({ 'another@namespace': true, 'another@space@namespace': true, - 'another@space@20@component': true, + 'another@space@20@namespace': true, }); }); @@ -153,7 +157,7 @@ describe('manager.ui.components.left_panel.stories', () => { expect(nodes).toEqual({ 'another@namespace': true, 'another@space@namespace': true, - 'another@space@20@component': true, + 'another@space@20@namespace': true, 'some@namespace': true, }); }); @@ -175,7 +179,7 @@ describe('manager.ui.components.left_panel.stories', () => { expect(nodes).toEqual({ 'another@namespace': true, 'another@space@namespace': true, - 'another@space@20@component': true, + 'another@space@20@namespace': true, }); }); @@ -196,10 +200,10 @@ describe('manager.ui.components.left_panel.stories', () => { expect(nodes).toEqual({ 'another@namespace': true, 'another@space@namespace': true, - 'another@space@20@component': true, + 'another@space@20@namespace': true, 'some@namespace': true, 'some@name@namespace': true, - 'some@name@item1@component': true, + 'some@name@item1@namespace': true, }); }); @@ -251,7 +255,7 @@ describe('manager.ui.components.left_panel.stories', () => { }); describe('events', () => { - test('should call the onSelectStory prop when a collapsed kind is clicked', () => { + test('should not call the onSelectStory prop when a collapsed kind is clicked', () => { const onSelectStory = jest.fn(); const wrap = mount( { const kind = wrap.find('[data-name="a"]'); kind.simulate('click', leftClick); - expect(onSelectStory).toHaveBeenCalledWith('a', null); + expect(onSelectStory).not.toHaveBeenCalled(); }); test("shouldn't call the onSelectStory prop when an expanded kind is clicked", () => { @@ -281,7 +285,10 @@ describe('manager.ui.components.left_panel.stories', () => { /> ); - const kind = wrap.find('[data-name="a"]').filterWhere(el => el.text() === 'a').last(); + const kind = wrap + .find('[data-name="a"]') + .filterWhere(el => el.text() === 'a') + .last(); kind.simulate('click'); onSelectStory.mockClear(); @@ -324,7 +331,7 @@ describe('manager.ui.components.left_panel.stories', () => { wrap.find('[data-name="space"]').simulate('click', leftClick); wrap.find('[data-name="20"]').simulate('click', leftClick); - expect(onSelectStory).toHaveBeenCalledWith('another.space.20', null); + expect(onSelectStory).not.toHaveBeenCalled(); wrap.find('[data-name="b2"]').simulate('click', leftClick); @@ -344,13 +351,14 @@ describe('manager.ui.components.left_panel.stories', () => { ); wrap.find('[data-name="another"]').simulate('keyDown', { keyCode: 13 }); - wrap.find('[data-name="space"]').simulate('keyDown', { keyCode: 13 }); + wrap.find('[data-name="20"]').simulate('keyDown', { keyCode: 13 }); - // enter press on native link triggers click event - wrap.find('[data-name="20"]').simulate('click', leftClick); + expect(onSelectStory).not.toHaveBeenCalled(); + + wrap.find('[data-name="b2"]').simulate('click', leftClick); - expect(onSelectStory).toHaveBeenCalledWith('another.space.20', null); + expect(onSelectStory).toHaveBeenCalledWith('another.space.20', 'b2'); }); }); }); diff --git a/lib/ui/src/modules/ui/containers/left_panel.test.js b/lib/ui/src/modules/ui/containers/left_panel.test.js index e7af7d49db92..5203f6b7acbb 100755 --- a/lib/ui/src/modules/ui/containers/left_panel.test.js +++ b/lib/ui/src/modules/ui/containers/left_panel.test.js @@ -39,15 +39,15 @@ describe('manager.ui.containers.left_panel', () => { new Map([ [ 'sk', - [ - { - kind: 'sk', - stories: [{ highlight: null, name: 'dd' }], - highlight: null, - name: 'sk', - namespaces: ['sk'], - }, - ], + { + kind: 'sk', + name: 'sk', + namespaces: ['sk'], + isNamespace: true, + highlight: null, + map: new Map(), + stories: [{ highlight: null, name: 'dd' }], + }, ], ]) ); @@ -100,27 +100,27 @@ describe('manager.ui.containers.left_panel', () => { new Map([ [ 'pk', // selected kind is always there. That's why this is here. - [ - { - kind: 'pk', - stories: [{ highlight: null, name: 'dd' }], - highlight: null, - name: 'pk', - namespaces: ['pk'], - }, - ], + { + kind: 'pk', + name: 'pk', + namespaces: ['pk'], + isNamespace: true, + highlight: null, + map: new Map(), + stories: [{ highlight: null, name: 'dd' }], + }, ], [ 'ss', - [ - { - kind: 'ss', - stories: [{ highlight: null, name: 'dd' }], - highlight: [[0, 1]], - name: 'ss', - namespaces: ['ss'], - }, - ], + { + kind: 'ss', + name: 'ss', + namespaces: ['ss'], + isNamespace: true, + highlight: [[0, 1]], + map: new Map(), + stories: [{ highlight: null, name: 'dd' }], + }, ], ]) ); @@ -168,27 +168,27 @@ describe('manager.ui.containers.left_panel', () => { // selected kind is always there. That's why this is here. [ 'pk', - [ - { - kind: 'pk', - stories: [{ highlight: null, name: 'dd' }], - highlight: null, - name: 'pk', - namespaces: ['pk'], - }, - ], + { + kind: 'pk', + stories: [{ highlight: null, name: 'dd' }], + isNamespace: true, + highlight: null, + map: new Map(), + name: 'pk', + namespaces: ['pk'], + }, ], [ 'ss', - [ - { - kind: 'ss', - stories: [{ highlight: null, name: 'dd' }], - highlight: [[0, 1]], - name: 'ss', - namespaces: ['ss'], - }, - ], + { + kind: 'ss', + stories: [{ highlight: null, name: 'dd' }], + isNamespace: true, + highlight: [[0, 1]], + map: new Map(), + name: 'ss', + namespaces: ['ss'], + }, ], ]) ); diff --git a/lib/ui/src/modules/ui/libs/hierarchy.test.js b/lib/ui/src/modules/ui/libs/hierarchy.test.js index 5ee61d8308f5..83869495ea16 100644 --- a/lib/ui/src/modules/ui/libs/hierarchy.test.js +++ b/lib/ui/src/modules/ui/libs/hierarchy.test.js @@ -43,27 +43,27 @@ describe('manager.ui.libs.hierarchy', () => { const expected = [ [ 'some.name.item1', - [ - { - kind: 'some.name.item1', - name: 'some.name.item1', - highlight: null, - namespaces: ['some.name.item1'], - stories: [{ name: 'a1', highlight: null }, { name: 'a2', highlight: null }], - }, - ], + { + kind: 'some.name.item1', + name: 'some.name.item1', + namespaces: ['some.name.item1'], + highlight: null, + isNamespace: true, + map: new Map(), + stories: [{ name: 'a1', highlight: null }, { name: 'a2', highlight: null }], + }, ], [ 'another.space.20', - [ - { - kind: 'another.space.20', - name: 'another.space.20', - highlight: null, - namespaces: ['another.space.20'], - stories: [{ name: 'b1', highlight: null }, { name: 'b2', highlight: null }], - }, - ], + { + kind: 'another.space.20', + name: 'another.space.20', + namespaces: ['another.space.20'], + highlight: null, + isNamespace: true, + map: new Map(), + stories: [{ name: 'b1', highlight: null }, { name: 'b2', highlight: null }], + }, ], ]; @@ -89,85 +89,71 @@ describe('manager.ui.libs.hierarchy', () => { const expected = new Map([ [ 'some', - [ - { - name: 'some', - isNamespace: true, - highlight: null, - namespaces: ['some'], - map: new Map([ - [ - 'name', - [ - { - name: 'name', - isNamespace: true, - highlight: null, - namespaces: ['some', 'name'], - map: new Map([ - [ - 'item1', - [ - { - kind: 'some.name.item1', - name: 'item1', - highlight: null, - namespaces: ['some', 'name', 'item1'], - stories: [ - { name: 'a1', highlight: null }, - { name: 'a2', highlight: null }, - ], - }, - ], - ], - ]), - }, - ], - ], - ]), - }, - ], + { + name: 'some', + isNamespace: true, + highlight: null, + namespaces: ['some'], + map: new Map([ + [ + 'name', + { + name: 'name', + isNamespace: true, + highlight: null, + namespaces: ['some', 'name'], + map: new Map([ + [ + 'item1', + { + kind: 'some.name.item1', + name: 'item1', + namespaces: ['some', 'name', 'item1'], + isNamespace: true, + highlight: null, + map: new Map(), + stories: [{ name: 'a1', highlight: null }, { name: 'a2', highlight: null }], + }, + ], + ]), + }, + ], + ]), + }, ], [ 'another', - [ - { - name: 'another', - isNamespace: true, - highlight: null, - namespaces: ['another'], - map: new Map([ - [ - 'space', - [ - { - name: 'space', - isNamespace: true, - highlight: null, - namespaces: ['another', 'space'], - map: new Map([ - [ - '20', - [ - { - kind: 'another.space.20', - name: '20', - highlight: null, - namespaces: ['another', 'space', '20'], - stories: [ - { name: 'b1', highlight: null }, - { name: 'b2', highlight: null }, - ], - }, - ], - ], - ]), - }, - ], - ], - ]), - }, - ], + { + name: 'another', + isNamespace: true, + highlight: null, + namespaces: ['another'], + map: new Map([ + [ + 'space', + { + name: 'space', + isNamespace: true, + highlight: null, + namespaces: ['another', 'space'], + map: new Map([ + [ + '20', + { + kind: 'another.space.20', + name: '20', + namespaces: ['another', 'space', '20'], + isNamespace: true, + highlight: null, + map: new Map(), + stories: [{ name: 'b1', highlight: null }, { name: 'b2', highlight: null }], + }, + ], + ]), + }, + ], + ]), + }, ], ]); From 596112d4072b72281a229acd9f2246b1617ca517 Mon Sep 17 00:00:00 2001 From: Dave Gaeddert Date: Tue, 29 Aug 2017 14:57:44 -0500 Subject: [PATCH 072/107] Update dependencies.yml --- dependencies.yml | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/dependencies.yml b/dependencies.yml index 4b748dcf7dd1..7e56b98087dd 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -10,15 +10,16 @@ collectors: - type: repo-issue versions: "Y.0.0" -- type: js-npm - path: examples/crna-kitchen-sink - actors: - # pull requests for updates to our major version - - type: js-npm - versions: "L.Y.Y" - # create issues for new major versions - - type: repo-issue - versions: "Y.0.0" +# Temporarily disabled +# - type: js-npm +# path: examples/crna-kitchen-sink +# actors: +# # pull requests for updates to our major version +# - type: js-npm +# versions: "L.Y.Y" +# # create issues for new major versions +# - type: repo-issue +# versions: "Y.0.0" - type: js-npm path: examples/vue-kitchen-sink @@ -30,15 +31,16 @@ collectors: - type: repo-issue versions: "Y.0.0" -- type: js-npm - path: examples/react-native-vanilla - actors: - # pull requests for updates to our major version - - type: js-npm - versions: "L.Y.Y" - # create issues for new major versions - - type: repo-issue - versions: "Y.0.0" +# Temporarily disabled +# - type: js-npm +# path: examples/react-native-vanilla +# actors: +# # pull requests for updates to our major version +# - type: js-npm +# versions: "L.Y.Y" +# # create issues for new major versions +# - type: repo-issue +# versions: "Y.0.0" - type: js-npm path: examples/cra-kitchen-sink From 64c3a07567b586a9bee498d25e732c3b682c0020 Mon Sep 17 00:00:00 2001 From: hypnos Date: Thu, 31 Aug 2017 02:00:01 +0300 Subject: [PATCH 073/107] Update yarn.lock --- yarn.lock | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a3103caa08fc..e7e67940eaf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4949,6 +4949,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob@^4.0.2: version "4.5.3" resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" @@ -6589,9 +6596,9 @@ left-pad@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" -lerna@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.1.0.tgz#22da4c9cb09f7733a7e87ba8f34779a509c172ea" +lerna@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.1.2.tgz#b07eb7a4d7dd7d44a105262fef49b2229301c577" dependencies: async "^1.5.0" chalk "^2.1.0" @@ -6606,6 +6613,7 @@ lerna@2.1.0: fs-extra "^4.0.1" get-port "^3.2.0" glob "^7.1.2" + glob-parent "^3.1.0" globby "^6.1.0" graceful-fs "^4.1.11" inquirer "^3.2.2" @@ -8105,6 +8113,10 @@ path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + path-exists@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" From 26307a08a0f0017f5aaba4c7c7f0ca0811a9b0f5 Mon Sep 17 00:00:00 2001 From: hypnos Date: Thu, 31 Aug 2017 02:08:32 +0300 Subject: [PATCH 074/107] Update addons/options README --- addons/options/README.md | 14 +++++++------- .../src/modules/ui/components/layout/index.test.js | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/options/README.md b/addons/options/README.md index b000c47fb8a7..3dd473b12a8b 100644 --- a/addons/options/README.md +++ b/addons/options/README.md @@ -53,25 +53,25 @@ setOptions({ */ goFullScreen: false, /** - * display left panel that shows a list of stories + * display panel that shows a list of stories * @type {Boolean} */ - showLeftPanel: true, + showStoriesPanel: true, /** - * display horizontal panel that displays addon configurations + * display panel that shows addon configurations * @type {Boolean} */ - showDownPanel: true, + showAddonPanel: true, /** * display floating search box to search through stories * @type {Boolean} */ showSearchBox: false, /** - * show horizontal addons panel as a vertical panel on the right + * show addon panel as a vertical panel on the right * @type {Boolean} */ - downPanelInRight: false, + addonPanelInRight: false, /** * sorts stories * @type {Boolean} @@ -98,7 +98,7 @@ setOptions({ * id to select an addon panel * @type {String} */ - selectedAddonPanel: undefined, // The order of addons in the "Addons Panel" is the same as you import them in 'addons.js'. The first panel will be opened by default as you run Storybook + selectedAddonPanel: undefined, // The order of addons in the "Addon panel" is the same as you import them in 'addons.js'. The first panel will be opened by default as you run Storybook }); storybook.configure(() => require('./stories'), module); diff --git a/lib/ui/src/modules/ui/components/layout/index.test.js b/lib/ui/src/modules/ui/components/layout/index.test.js index 6cd1a2acade6..9d579154734a 100755 --- a/lib/ui/src/modules/ui/components/layout/index.test.js +++ b/lib/ui/src/modules/ui/components/layout/index.test.js @@ -28,8 +28,8 @@ describe('manager.ui.components.layout.index', () => { test('should only render preview', () => { const wrap = shallow( 'StoriesPanel'} From 07112464fe03bc5a940f1a1fc98992547340c1c8 Mon Sep 17 00:00:00 2001 From: Filip Noetzel Date: Thu, 31 Aug 2017 16:27:07 +0200 Subject: [PATCH 075/107] RN: Add accessibility labels to OnDeviceUI Main motivation for this is so that Appium[1] can inspect and automate the UI rendered by Storybook. The two added properties are * accessibilityLabel[2] for Android * testID[3] for iOS [1] http://appium.io/ [2] https://facebook.github.io/react-native/docs/view.html#accessibilitylabel [3] https://facebook.github.io/react-native/docs/view.html#testid --- .../src/preview/components/OnDeviceUI/index.js | 12 ++++++++++-- .../src/preview/components/StoryListView/index.js | 8 +++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/react-native/src/preview/components/OnDeviceUI/index.js b/app/react-native/src/preview/components/OnDeviceUI/index.js index 08ac25529073..a1581f195aa6 100644 --- a/app/react-native/src/preview/components/OnDeviceUI/index.js +++ b/app/react-native/src/preview/components/OnDeviceUI/index.js @@ -124,7 +124,11 @@ export default class OnDeviceUI extends Component { - + @@ -140,7 +144,11 @@ export default class OnDeviceUI extends Component { - + diff --git a/app/react-native/src/preview/components/StoryListView/index.js b/app/react-native/src/preview/components/StoryListView/index.js index 21383187bc2e..075fe70db237 100644 --- a/app/react-native/src/preview/components/StoryListView/index.js +++ b/app/react-native/src/preview/components/StoryListView/index.js @@ -17,7 +17,13 @@ SectionHeader.propTypes = { }; const ListItem = ({ title, selected, onPress }) => - + {title} From 8852d63a8012e76cad9fb5bef14c04f7e5c1e44d Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 31 Aug 2017 14:53:51 -0700 Subject: [PATCH 076/107] Update gitignore to be happier for vim'ers --- .gitignore | 1 + addons/viewport/.gitignore | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 addons/viewport/.gitignore diff --git a/.gitignore b/.gitignore index 259157b6874c..bc53c08cb75d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules *.log .idea .vscode +*.sw* npm-shrinkwrap.json dist .tern-port diff --git a/addons/viewport/.gitignore b/addons/viewport/.gitignore deleted file mode 100644 index 745197c1619c..000000000000 --- a/addons/viewport/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*.sw* -node_modules -dist -jest -jest_0 From df6a5662e7ef8907fd6739a2647b55077a2ecb8f Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 31 Aug 2017 14:54:58 -0700 Subject: [PATCH 077/107] remove the local storybook and use cra-kitchen-sink for dev --- addons/viewport/.storybook/addons.js | 1 - addons/viewport/.storybook/config.js | 3 --- addons/viewport/.storybook/stories.js | 9 --------- 3 files changed, 13 deletions(-) delete mode 100644 addons/viewport/.storybook/addons.js delete mode 100644 addons/viewport/.storybook/config.js delete mode 100644 addons/viewport/.storybook/stories.js diff --git a/addons/viewport/.storybook/addons.js b/addons/viewport/.storybook/addons.js deleted file mode 100644 index 339062f226f1..000000000000 --- a/addons/viewport/.storybook/addons.js +++ /dev/null @@ -1 +0,0 @@ -import '@storybook/addon-viewport/register'; diff --git a/addons/viewport/.storybook/config.js b/addons/viewport/.storybook/config.js deleted file mode 100644 index 9c18e1bf514c..000000000000 --- a/addons/viewport/.storybook/config.js +++ /dev/null @@ -1,3 +0,0 @@ -import * as storybook from '@storybook/react'; - -storybook.configure(() => require('./stories'), module); diff --git a/addons/viewport/.storybook/stories.js b/addons/viewport/.storybook/stories.js deleted file mode 100644 index 85c6f34eb8c1..000000000000 --- a/addons/viewport/.storybook/stories.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { storiesOf } from '@storybook/react'; - -storiesOf('Viewport', module) - .add('Example', () => ( -

- Change viewport sizes below -

- )); From c6f68baf68a693c90751d9c67d774d8101dcf0d2 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 31 Aug 2017 14:55:10 -0700 Subject: [PATCH 078/107] Remove dev deps and use the storybook deps --- addons/viewport/package.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/addons/viewport/package.json b/addons/viewport/package.json index 74a19c2452b7..63918311a236 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -15,22 +15,10 @@ }, "license": "MIT", "dependencies": { - "@storybook/react": "^3.2.5", "prop-types": "^15.5.10" }, "peerDependencies": { "@storybook/addons": "^3.2.0", "react": "*" - }, - "devDependencies": { - "@storybook/addons": "^3.2.0", - "babel-cli": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2017": "^6.24.1", - "babel-preset-react": "^6.24.1", - "enzyme": "^2.9.1", - "react": "^15.6.1" } } From 420a5acb8084eb0f47ceb74b001e1ab7535c102f Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Thu, 31 Aug 2017 15:01:57 -0700 Subject: [PATCH 079/107] Update the README with PR feedback --- addons/viewport/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/viewport/README.md b/addons/viewport/README.md index 819ed1540298..6e00c7378cbb 100644 --- a/addons/viewport/README.md +++ b/addons/viewport/README.md @@ -4,13 +4,13 @@ Storybook Viewport Addon allows your stories to be displayed in different sizes This addon works with Storybook for: [React](https://github.com/storybooks/storybook/tree/master/app/react) and [Vue](https://github.com/storybooks/storybook/tree/master/app/vue). -![Screenshot](docs/viewport.png) +![Screenshot](https://github.com/storybooks/storybook/blob/master/docs/viewport.png) ## Installation Install the following npm module: - npm i -D @storybook/addon-viewport + npm i --save-dev @storybook/addon-viewport or with yarn: @@ -28,10 +28,10 @@ This will register the Viewport Addon to Storybook and will show up in the actio ## FAQ -#### Adding more devices +#### How do I add a new device? Unfortunately, this is currently not supported. -#### Custom Screen Sizes +#### How can I make a custom screen size? Unfortunately, this is currently not supported. From ba2f0d9052358caf5b63a6a39ddfa8f1dcfcd46e Mon Sep 17 00:00:00 2001 From: hypnos Date: Fri, 1 Sep 2017 02:40:57 +0300 Subject: [PATCH 080/107] Fix preview scrolling after resizing panes --- app/react-native/src/server/index.html.js | 9 ----- app/react/src/server/index.html.js | 9 ----- app/vue/src/server/index.html.js | 9 ----- .../src/modules/ui/components/layout/index.js | 40 ++++++++++++++----- yarn.lock | 18 +++++++-- 5 files changed, 46 insertions(+), 39 deletions(-) diff --git a/app/react-native/src/server/index.html.js b/app/react-native/src/server/index.html.js index 1ab3ca5d59ba..e3bc622c4e2f 100644 --- a/app/react-native/src/server/index.html.js +++ b/app/react-native/src/server/index.html.js @@ -9,15 +9,6 @@ export default function(publicPath, options) { Storybook for React + <%= htmlWebpackPlugin.options.data.managerHead %> + + + +
+ + diff --git a/app/react/src/server/index.html.js b/app/react/src/server/index.html.js deleted file mode 100644 index dc5b0afc42b8..000000000000 --- a/app/react/src/server/index.html.js +++ /dev/null @@ -1,79 +0,0 @@ -import url from 'url'; -import { version } from '../../package.json'; - -// assets.manager will be: -// - undefined -// - string e.g. 'static/manager.9adbb5ef965106be1cc3.bundle.js' -// - array of strings e.g. -// assets.manager will be something like: -// [ 'static/manager.c6e6350b6eb01fff8bad.bundle.js', -// 'static/manager.c6e6350b6eb01fff8bad.bundle.js.map' ] -const managerUrlsFromAssets = assets => { - if (!assets || !assets.manager) { - return { - js: 'static/manager.bundle.js', - }; - } - - if (typeof assets.manager === 'string') { - return { - js: assets.manager, - }; - } - - return { - js: assets.manager.find(filename => filename.match(/\.js$/)), - css: assets.manager.find(filename => filename.match(/\.css$/)), - }; -}; - -export default function({ assets, publicPath, headHtml }) { - const managerUrls = managerUrlsFromAssets(assets); - - return ` - - - - - - - - Storybook - - ${headHtml} - - -
- - - - `; -} diff --git a/app/react/src/server/middleware.js b/app/react/src/server/middleware.js index 7ebeb18be477..e5b0ed9b8e4a 100644 --- a/app/react/src/server/middleware.js +++ b/app/react/src/server/middleware.js @@ -1,12 +1,11 @@ +import path from 'path'; import { Router } from 'express'; import webpack from 'webpack'; import webpackDevMiddleware from 'webpack-dev-middleware'; import webpackHotMiddleware from 'webpack-hot-middleware'; import getBaseConfig from './config/webpack.config'; import loadConfig from './config'; -import getIndexHtml from './index.html'; -import getIframeHtml from './iframe.html'; -import { getPreviewHeadHtml, getManagerHeadHtml, getMiddleware } from './utils'; +import { getMiddleware } from './utils'; let webpackResolve = () => {}; let webpackReject = () => {}; @@ -44,19 +43,14 @@ export default function(configDir) { middlewareFn(router); webpackDevMiddlewareInstance.waitUntilValid(stats => { - const data = { - publicPath: config.output.publicPath, - assets: stats.toJson().assetsByChunkName, - }; - router.get('/', (req, res) => { - const headHtml = getManagerHeadHtml(configDir); - res.send(getIndexHtml({ publicPath, headHtml })); + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(`${__dirname}/public/index.html`)); }); router.get('/iframe.html', (req, res) => { - const headHtml = getPreviewHeadHtml(configDir); - res.send(getIframeHtml({ ...data, headHtml, publicPath })); + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(`${__dirname}/public/iframe.html`)); }); if (stats.toJson().errors.length) { diff --git a/examples/cra-kitchen-sink/.storybook/webpack.config.js b/examples/cra-kitchen-sink/.storybook/webpack.config.js new file mode 100644 index 000000000000..3ced6fa641bb --- /dev/null +++ b/examples/cra-kitchen-sink/.storybook/webpack.config.js @@ -0,0 +1,29 @@ +const path = require('path'); +const webpack = require('webpack'); + +// load the default config generator. +const genDefaultConfig = require('@storybook/react/dist/server/config/defaults/webpack.config.js'); + +// Export a function. Accept the base config as the only param. +module.exports = (storybookBaseConfig, configType) => { + // configType has a value of 'DEVELOPMENT' or 'PRODUCTION' + // You can change the configuration based on that. + // 'PRODUCTION' is used when building the static version of storybook. + + const config = genDefaultConfig(storybookBaseConfig, configType); + + // Make whatever fine-grained changes you need + config.plugins.push( + new webpack.optimize.CommonsChunkPlugin({ + name: "vendor", + chunks: ['preview'], + minChunks: function (module) { + // this assumes your vendor imports exist in the node_modules directory + return module.context && module.context.indexOf("node_modules") !== -1; + }, + }) + ); + + // Return the altered config + return config; +}; From 174db1aa0bb2965e7d268e6e85eb8ff323f55a52 Mon Sep 17 00:00:00 2001 From: Thomas Bertet Date: Fri, 1 Sep 2017 18:35:05 +0200 Subject: [PATCH 090/107] remove useless test file since HtmlWebpackPlugin is taking over --- app/react/src/server/iframe.html.test.js | 68 ------------------------ 1 file changed, 68 deletions(-) delete mode 100644 app/react/src/server/iframe.html.test.js diff --git a/app/react/src/server/iframe.html.test.js b/app/react/src/server/iframe.html.test.js deleted file mode 100644 index 66a097d66201..000000000000 --- a/app/react/src/server/iframe.html.test.js +++ /dev/null @@ -1,68 +0,0 @@ -import { urlsFromAssets, isPreviewAsset } from './iframe.html'; - -describe('server.urlsFromAssets', () => { - it('should return the default when there are no assets', () => { - expect(urlsFromAssets()).toEqual({ - js: ['static/preview.bundle.js'], - css: [], - }); - }); - - it('should return multiple assets', () => { - const fixture = { - manager: 'static/manager.a.bundle.js', - preview: ['static/preview.x.bundle.js', 'static/preview.y.css', 'static/preview.y.css.map'], - }; - expect(urlsFromAssets(fixture)).toEqual({ - js: ['static/preview.x.bundle.js'], - css: ['static/preview.y.css'], - }); - }); - - it('should not return non-js or non-css assets', () => { - const fixture = { - 'some-thing.svg': 'some-thing.svg', - }; - expect(urlsFromAssets(fixture)).toEqual({ - js: [], - css: [], - }); - }); - - it('should put the JS preview bundle first, before other chunks', () => { - const fixture = { - manager: 'static/manager.a.bundle.js', - preview: [ - 'static/0.bundle.js', - 'static/2.bundle.js', - 'static/3.bundle.js', - 'static/4.bundle.js', - 'static/preview.bundle.js', - 'static/5.bundle.js', - 'static/6.bundle.js', - ], - }; - expect(urlsFromAssets(fixture)).toEqual({ - js: [ - 'static/preview.bundle.js', - 'static/0.bundle.js', - 'static/2.bundle.js', - 'static/3.bundle.js', - 'static/4.bundle.js', - 'static/5.bundle.js', - 'static/6.bundle.js', - ], - css: [], - }); - }); -}); - -describe('server.isPreviewAsset', () => { - it('should return true when this is the preview bundle', () => { - expect(isPreviewAsset('static/preview.bundle.js')).toBe(true); - }); - - it('should return false when this is NOT the preview bundle', () => { - expect(isPreviewAsset('static/some.other.bundle.js')).toBe(false); - }); -}); From e3020ce291fdc8263b47546d2b55211e0341d274 Mon Sep 17 00:00:00 2001 From: Thomas Bertet Date: Mon, 4 Sep 2017 09:01:28 +0200 Subject: [PATCH 091/107] use HtmlWebpackPlugin for vue --- app/vue/package.json | 1 + app/vue/src/server/build.js | 26 ++---- app/vue/src/server/config/utils.js | 10 ++- app/vue/src/server/config/webpack.config.js | 29 ++++++- .../src/server/config/webpack.config.prod.js | 22 ++++- app/vue/src/server/iframe.html.ejs | 20 +++++ app/vue/src/server/iframe.html.js | 87 ------------------- app/vue/src/server/index.html.ejs | 44 ++++++++++ app/vue/src/server/index.html.js | 79 ----------------- app/vue/src/server/middleware.js | 18 ++-- 10 files changed, 133 insertions(+), 203 deletions(-) create mode 100644 app/vue/src/server/iframe.html.ejs delete mode 100644 app/vue/src/server/iframe.html.js create mode 100644 app/vue/src/server/index.html.ejs delete mode 100644 app/vue/src/server/index.html.js diff --git a/app/vue/package.json b/app/vue/package.json index 3bec1d4a754f..d82d06d07799 100644 --- a/app/vue/package.json +++ b/app/vue/package.json @@ -48,6 +48,7 @@ "file-loader": "^0.11.1", "find-cache-dir": "^1.0.0", "global": "^4.3.2", + "html-webpack-plugin": "^2.30.1", "json-loader": "^0.5.4", "json-stringify-safe": "^5.0.1", "json5": "^0.5.1", diff --git a/app/vue/src/server/build.js b/app/vue/src/server/build.js index b2a598b3e806..99df39a8f57b 100755 --- a/app/vue/src/server/build.js +++ b/app/vue/src/server/build.js @@ -9,9 +9,7 @@ import shelljs from 'shelljs'; import packageJson from '../../package.json'; import getBaseConfig from './config/webpack.config.prod'; import loadConfig from './config'; -import getIndexHtml from './index.html'; -import getIframeHtml from './iframe.html'; -import { getPreviewHeadHtml, getManagerHeadHtml, parseList, getEnvConfig } from './utils'; +import { parseList, getEnvConfig } from './utils'; process.env.NODE_ENV = process.env.NODE_ENV || 'production'; @@ -78,24 +76,12 @@ if (program.staticDir) { // compile all resources with webpack and write them to the disk. logger.log('Building storybook ...'); webpack(config).run((err, stats) => { - if (err) { + if (err || stats.hasErrors()) { logger.error('Failed to build the storybook'); - logger.error(err.message); + // eslint-disable-next-line no-unused-expressions + err && logger.error(err.message); + // eslint-disable-next-line no-unused-expressions + stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e)); process.exit(1); } - - const data = { - publicPath: config.output.publicPath, - assets: stats.toJson().assetsByChunkName, - }; - - // Write both the storybook UI and IFRAME HTML files to destination path. - fs.writeFileSync( - path.resolve(outputDir, 'index.html'), - getIndexHtml({ ...data, headHtml: getManagerHeadHtml(configDir) }) - ); - fs.writeFileSync( - path.resolve(outputDir, 'iframe.html'), - getIframeHtml({ ...data, headHtml: getPreviewHeadHtml(configDir) }) - ); }); diff --git a/app/vue/src/server/config/utils.js b/app/vue/src/server/config/utils.js index 8cb15c640d93..0236481efd78 100644 --- a/app/vue/src/server/config/utils.js +++ b/app/vue/src/server/config/utils.js @@ -23,11 +23,15 @@ export function loadEnv(options = {}) { PUBLIC_URL: JSON.stringify(options.production ? '.' : ''), }; - Object.keys(process.env).filter(name => /^STORYBOOK_/.test(name)).forEach(name => { - env[name] = JSON.stringify(process.env[name]); - }); + Object.keys(process.env) + .filter(name => /^STORYBOOK_/.test(name)) + .forEach(name => { + env[name] = JSON.stringify(process.env[name]); + }); return { 'process.env': env, }; } + +export const getConfigDir = () => process.env.SBCONFIG_CONFIG_DIR || './.storybook'; diff --git a/app/vue/src/server/config/webpack.config.js b/app/vue/src/server/config/webpack.config.js index 10d1a6c9c1b4..c5fe4cdd6317 100644 --- a/app/vue/src/server/config/webpack.config.js +++ b/app/vue/src/server/config/webpack.config.js @@ -1,9 +1,19 @@ import path from 'path'; import webpack from 'webpack'; import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import WatchMissingNodeModulesPlugin from './WatchMissingNodeModulesPlugin'; -import { includePaths, excludePaths, nodeModulesPaths, loadEnv, nodePaths } from './utils'; +import { + getConfigDir, + includePaths, + excludePaths, + nodeModulesPaths, + loadEnv, + nodePaths, +} from './utils'; +import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils'; import babelLoaderConfig from './babel'; +import { version } from '../../../package.json'; export default function() { const config = { @@ -22,6 +32,23 @@ export default function() { publicPath: '/', }, plugins: [ + new HtmlWebpackPlugin({ + filename: 'index.html', + chunks: ['manager'], + data: { + managerHead: getManagerHeadHtml(getConfigDir()), + version, + }, + template: require.resolve('../index.html.ejs'), + }), + new HtmlWebpackPlugin({ + filename: 'iframe.html', + excludeChunks: ['manager'], + data: { + previewHead: getPreviewHeadHtml(getConfigDir()), + }, + template: require.resolve('../iframe.html.ejs'), + }), new webpack.DefinePlugin(loadEnv()), new webpack.HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), diff --git a/app/vue/src/server/config/webpack.config.prod.js b/app/vue/src/server/config/webpack.config.prod.js index 1260b9de6dc4..f4fca7240d7c 100644 --- a/app/vue/src/server/config/webpack.config.prod.js +++ b/app/vue/src/server/config/webpack.config.prod.js @@ -1,7 +1,10 @@ import path from 'path'; import webpack from 'webpack'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import babelLoaderConfig from './babel.prod'; -import { includePaths, excludePaths, loadEnv, nodePaths } from './utils'; +import { getConfigDir, includePaths, excludePaths, loadEnv, nodePaths } from './utils'; +import { getPreviewHeadHtml, getManagerHeadHtml } from '../utils'; +import { version } from '../../../package.json'; export default function() { const entries = { @@ -23,6 +26,23 @@ export default function() { publicPath: '', }, plugins: [ + new HtmlWebpackPlugin({ + filename: 'index.html', + chunks: ['manager'], + data: { + managerHead: getManagerHeadHtml(getConfigDir()), + version, + }, + template: require.resolve('../index.html.ejs'), + }), + new HtmlWebpackPlugin({ + filename: 'iframe.html', + excludeChunks: ['manager'], + data: { + previewHead: getPreviewHeadHtml(getConfigDir()), + }, + template: require.resolve('../iframe.html.ejs'), + }), new webpack.DefinePlugin(loadEnv({ production: true })), new webpack.optimize.UglifyJsPlugin({ compress: { diff --git a/app/vue/src/server/iframe.html.ejs b/app/vue/src/server/iframe.html.ejs new file mode 100644 index 000000000000..32318e29e958 --- /dev/null +++ b/app/vue/src/server/iframe.html.ejs @@ -0,0 +1,20 @@ + + + + + + + + Storybook + <%= htmlWebpackPlugin.options.data.previewHead %> + + +
+
+ + diff --git a/app/vue/src/server/iframe.html.js b/app/vue/src/server/iframe.html.js deleted file mode 100644 index bfcc2db58ee3..000000000000 --- a/app/vue/src/server/iframe.html.js +++ /dev/null @@ -1,87 +0,0 @@ -import url from 'url'; - -const getExtensionForFilename = filename => /.+\.(\w+)$/.exec(filename)[1]; - -// assets.preview will be: -// - undefined -// - string e.g. 'static/preview.9adbb5ef965106be1cc3.bundle.js' -// - array of strings e.g. -// [ 'static/preview.9adbb5ef965106be1cc3.bundle.js', -// 'preview.0d2d3d845f78399fd6d5e859daa152a9.css', -// 'static/preview.9adbb5ef965106be1cc3.bundle.js.map', -// 'preview.0d2d3d845f78399fd6d5e859daa152a9.css.map' ] -const urlsFromAssets = assets => { - if (!assets) { - return { - js: ['static/preview.bundle.js'], - css: [], - }; - } - - const urls = { - js: [], - css: [], - }; - - Object.keys(assets) - // Don't load the manager script in the iframe - .filter(key => key !== 'manager') - .forEach(key => { - let asset = assets[key]; - if (typeof asset === 'string') { - urls[getExtensionForFilename(asset)].push(asset); - } else { - if (!Array.isArray(asset)) { - asset = [asset]; - } - asset - .filter(assetUrl => { - const extension = getExtensionForFilename(assetUrl); - const isMap = extension === 'map'; - const isSupportedExtension = Boolean(urls[extension]); - return isSupportedExtension && !isMap; - }) - .forEach(assetUrl => { - urls[getExtensionForFilename(assetUrl)].push(assetUrl); - }); - } - }); - - return urls; -}; - -export default function({ assets, publicPath, headHtml }) { - const urls = urlsFromAssets(assets); - - const cssTags = urls.css - .map(u => ``) - .join('\n'); - const scriptTags = urls.js - .map(u => ``) - .join('\n'); - - return ` - - - - - - - - Storybook - ${headHtml} - ${cssTags} - - -
-
- ${scriptTags} - - - `; -} diff --git a/app/vue/src/server/index.html.ejs b/app/vue/src/server/index.html.ejs new file mode 100644 index 000000000000..397aaf41d52e --- /dev/null +++ b/app/vue/src/server/index.html.ejs @@ -0,0 +1,44 @@ + + + + + + + + Storybook + + <%= htmlWebpackPlugin.options.data.managerHead %> + + + +
+ + diff --git a/app/vue/src/server/index.html.js b/app/vue/src/server/index.html.js deleted file mode 100644 index dc5b0afc42b8..000000000000 --- a/app/vue/src/server/index.html.js +++ /dev/null @@ -1,79 +0,0 @@ -import url from 'url'; -import { version } from '../../package.json'; - -// assets.manager will be: -// - undefined -// - string e.g. 'static/manager.9adbb5ef965106be1cc3.bundle.js' -// - array of strings e.g. -// assets.manager will be something like: -// [ 'static/manager.c6e6350b6eb01fff8bad.bundle.js', -// 'static/manager.c6e6350b6eb01fff8bad.bundle.js.map' ] -const managerUrlsFromAssets = assets => { - if (!assets || !assets.manager) { - return { - js: 'static/manager.bundle.js', - }; - } - - if (typeof assets.manager === 'string') { - return { - js: assets.manager, - }; - } - - return { - js: assets.manager.find(filename => filename.match(/\.js$/)), - css: assets.manager.find(filename => filename.match(/\.css$/)), - }; -}; - -export default function({ assets, publicPath, headHtml }) { - const managerUrls = managerUrlsFromAssets(assets); - - return ` - - - - - - - - Storybook - - ${headHtml} - - -
- - - - `; -} diff --git a/app/vue/src/server/middleware.js b/app/vue/src/server/middleware.js index 7ebeb18be477..cf03d060a596 100644 --- a/app/vue/src/server/middleware.js +++ b/app/vue/src/server/middleware.js @@ -1,12 +1,11 @@ import { Router } from 'express'; import webpack from 'webpack'; +import path from 'path'; import webpackDevMiddleware from 'webpack-dev-middleware'; import webpackHotMiddleware from 'webpack-hot-middleware'; import getBaseConfig from './config/webpack.config'; import loadConfig from './config'; -import getIndexHtml from './index.html'; -import getIframeHtml from './iframe.html'; -import { getPreviewHeadHtml, getManagerHeadHtml, getMiddleware } from './utils'; +import { getMiddleware } from './utils'; let webpackResolve = () => {}; let webpackReject = () => {}; @@ -44,19 +43,14 @@ export default function(configDir) { middlewareFn(router); webpackDevMiddlewareInstance.waitUntilValid(stats => { - const data = { - publicPath: config.output.publicPath, - assets: stats.toJson().assetsByChunkName, - }; - router.get('/', (req, res) => { - const headHtml = getManagerHeadHtml(configDir); - res.send(getIndexHtml({ publicPath, headHtml })); + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(`${__dirname}/public/index.html`)); }); router.get('/iframe.html', (req, res) => { - const headHtml = getPreviewHeadHtml(configDir); - res.send(getIframeHtml({ ...data, headHtml, publicPath })); + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(`${__dirname}/public/iframe.html`)); }); if (stats.toJson().errors.length) { From 5438db41863805066b2f14585d58f3237c0aad03 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 4 Sep 2017 23:52:22 +0200 Subject: [PATCH 092/107] ADD custom webpack config for vue kitchen sink as with cra-kitchen-sink --- .../.storybook/webpack.config.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 examples/vue-kitchen-sink/.storybook/webpack.config.js diff --git a/examples/vue-kitchen-sink/.storybook/webpack.config.js b/examples/vue-kitchen-sink/.storybook/webpack.config.js new file mode 100644 index 000000000000..f7cbac74a0b4 --- /dev/null +++ b/examples/vue-kitchen-sink/.storybook/webpack.config.js @@ -0,0 +1,29 @@ +const path = require('path'); +const webpack = require('webpack'); + +// load the default config generator. +const genDefaultConfig = require('@storybook/vue/dist/server/config/defaults/webpack.config.js'); + +// Export a function. Accept the base config as the only param. +module.exports = (storybookBaseConfig, configType) => { + // configType has a value of 'DEVELOPMENT' or 'PRODUCTION' + // You can change the configuration based on that. + // 'PRODUCTION' is used when building the static version of storybook. + + const config = genDefaultConfig(storybookBaseConfig, configType); + + // Make whatever fine-grained changes you need + config.plugins.push( + new webpack.optimize.CommonsChunkPlugin({ + name: "vendor", + chunks: ['preview'], + minChunks: function (module) { + // this assumes your vendor imports exist in the node_modules directory + return module.context && module.context.indexOf("node_modules") !== -1; + }, + }) + ); + + // Return the altered config + return config; +}; From 2b0644c1e7b72d6242f803322740b30b8f95b71d Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 4 Sep 2017 23:58:06 +0200 Subject: [PATCH 093/107] Fix for lint-staged see: https://github.com/okonet/lint-staged/issues/225#issuecomment-327032465 --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 7fe0a0cc6aed..088d3c4821b0 100644 --- a/package.json +++ b/package.json @@ -101,8 +101,7 @@ "git add" ] }, - "verbose": true, - "concurrent": false + "verbose": true }, "pr-log": { "skipLabels": [ From ea3d9f2cafdcd343b204824aa9a5fd019b6acbd2 Mon Sep 17 00:00:00 2001 From: Josh Callender Date: Tue, 5 Sep 2017 09:57:25 -0700 Subject: [PATCH 094/107] move all files from .jsx to .js and .spec.jsx to .test.js --- addons/viewport/src/components/{Panel.jsx => Panel.js} | 0 .../src/components/{RotateViewport.jsx => RotateViewport.js} | 0 .../src/components/{SelectViewport.jsx => SelectViewport.js} | 0 .../src/components/tests/{Panel.spec.jsx => Panel.test.js} | 0 .../tests/{RotateViewport.spec.jsx => RotateViewport.test.js} | 0 .../tests/{SelectViewport.spec.jsx => SelectViewport.test.js} | 0 addons/viewport/src/{manager.jsx => manager.js} | 0 addons/viewport/src/tests/{manager.spec.jsx => manager.test.js} | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename addons/viewport/src/components/{Panel.jsx => Panel.js} (100%) rename addons/viewport/src/components/{RotateViewport.jsx => RotateViewport.js} (100%) rename addons/viewport/src/components/{SelectViewport.jsx => SelectViewport.js} (100%) rename addons/viewport/src/components/tests/{Panel.spec.jsx => Panel.test.js} (100%) rename addons/viewport/src/components/tests/{RotateViewport.spec.jsx => RotateViewport.test.js} (100%) rename addons/viewport/src/components/tests/{SelectViewport.spec.jsx => SelectViewport.test.js} (100%) rename addons/viewport/src/{manager.jsx => manager.js} (100%) rename addons/viewport/src/tests/{manager.spec.jsx => manager.test.js} (100%) diff --git a/addons/viewport/src/components/Panel.jsx b/addons/viewport/src/components/Panel.js similarity index 100% rename from addons/viewport/src/components/Panel.jsx rename to addons/viewport/src/components/Panel.js diff --git a/addons/viewport/src/components/RotateViewport.jsx b/addons/viewport/src/components/RotateViewport.js similarity index 100% rename from addons/viewport/src/components/RotateViewport.jsx rename to addons/viewport/src/components/RotateViewport.js diff --git a/addons/viewport/src/components/SelectViewport.jsx b/addons/viewport/src/components/SelectViewport.js similarity index 100% rename from addons/viewport/src/components/SelectViewport.jsx rename to addons/viewport/src/components/SelectViewport.js diff --git a/addons/viewport/src/components/tests/Panel.spec.jsx b/addons/viewport/src/components/tests/Panel.test.js similarity index 100% rename from addons/viewport/src/components/tests/Panel.spec.jsx rename to addons/viewport/src/components/tests/Panel.test.js diff --git a/addons/viewport/src/components/tests/RotateViewport.spec.jsx b/addons/viewport/src/components/tests/RotateViewport.test.js similarity index 100% rename from addons/viewport/src/components/tests/RotateViewport.spec.jsx rename to addons/viewport/src/components/tests/RotateViewport.test.js diff --git a/addons/viewport/src/components/tests/SelectViewport.spec.jsx b/addons/viewport/src/components/tests/SelectViewport.test.js similarity index 100% rename from addons/viewport/src/components/tests/SelectViewport.spec.jsx rename to addons/viewport/src/components/tests/SelectViewport.test.js diff --git a/addons/viewport/src/manager.jsx b/addons/viewport/src/manager.js similarity index 100% rename from addons/viewport/src/manager.jsx rename to addons/viewport/src/manager.js diff --git a/addons/viewport/src/tests/manager.spec.jsx b/addons/viewport/src/tests/manager.test.js similarity index 100% rename from addons/viewport/src/tests/manager.spec.jsx rename to addons/viewport/src/tests/manager.test.js From c90b09eea1754d8263869eea59bf558a6d0bba07 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Tue, 5 Sep 2017 10:06:14 -0700 Subject: [PATCH 095/107] fix: add key for OneOfType --- addons/info/src/components/types/OneOfType.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/info/src/components/types/OneOfType.js b/addons/info/src/components/types/OneOfType.js index 62cd00a675bd..901cd5621065 100644 --- a/addons/info/src/components/types/OneOfType.js +++ b/addons/info/src/components/types/OneOfType.js @@ -9,7 +9,10 @@ const OneOfType = ({ propType }) => { {propType.value .map((value, i) => [ - , + , i < length - 1 ? | : null, ]) .reduce((acc, tuple) => acc.concat(tuple), [])} From 691771fc01e06ed7bc2204d07700ccbe5fa8cedb Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Tue, 5 Sep 2017 16:08:06 -0700 Subject: [PATCH 096/107] fix: use native buttons --- lib/components/src/highlight_button.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/components/src/highlight_button.js b/lib/components/src/highlight_button.js index 6aabee44cc0f..609bdc5aa419 100644 --- a/lib/components/src/highlight_button.js +++ b/lib/components/src/highlight_button.js @@ -1,11 +1,12 @@ -import React from 'react'; import glamorous from 'glamorous'; -const Button = props => ; - -export default glamorous(Button, { displayName: 'Button', rootEl: 'span' })( +export default glamorous.button( { - cursor: 'pointer', + border: '1px solid rgba(0, 0, 0, 0)', + font: 'inherit', + background: 'none', + 'box-shadow': 'none', + padding: 0, ':hover': { backgroundColor: 'rgba(0, 0, 0, 0.05)', border: '1px solid #ccc', From e43d49b8e3199a5697071e4d6587cead6548066f Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 08:05:10 +0200 Subject: [PATCH 097/107] ADD an example usage of complex PropType and add descriptions for Container.propTypes --- .../cra-kitchen-sink/src/stories/Container.js | 22 +- yarn.lock | 230 +++++++----------- 2 files changed, 96 insertions(+), 156 deletions(-) diff --git a/examples/cra-kitchen-sink/src/stories/Container.js b/examples/cra-kitchen-sink/src/stories/Container.js index aebe66d28126..efd894da18a1 100644 --- a/examples/cra-kitchen-sink/src/stories/Container.js +++ b/examples/cra-kitchen-sink/src/stories/Container.js @@ -1,26 +1,30 @@ import React from 'react'; import PropTypes from 'prop-types'; -const Container = ({ children, title, age, isAmazing }) => +const Container = ({ children, title, age, isAmazing }) => (
{children} {isAmazing ? '!!!' : ''} - {age - ?
- age = {age} -
- : null} -
; + {age.isOld ?
age = {age.value}
: null} +
+); Container.propTypes = { + /** The nodes to be rendered in the button */ children: PropTypes.node.isRequired, + /** Show exclamation marks */ isAmazing: PropTypes.bool, - age: PropTypes.number, + /** Show age prop */ + age: PropTypes.shape({ + isOld: PropTypes.bool, + value: PropTypes.number, + }), + /** Main title */ title: PropTypes.string, }; Container.defaultProps = { isAmazing: false, - age: 0, + age: { isOld: false, value: 0 }, title: 'the best container ever', }; diff --git a/yarn.lock b/yarn.lock index 38aafc6bb394..8866653d5329 100644 --- a/yarn.lock +++ b/yarn.lock @@ -507,7 +507,7 @@ axobject-query@^0.1.0: dependencies: ast-types-flow "0.0.7" -babel-cli@^6.24.1: +babel-cli@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" dependencies: @@ -619,7 +619,7 @@ babel-core@^5: trim-right "^1.0.0" try-resolve "^1.0.0" -babel-core@^6.0.0, babel-core@^6.21.0, babel-core@^6.25.0, babel-core@^6.26.0, babel-core@^6.7.2: +babel-core@^6.0.0, babel-core@^6.21.0, babel-core@^6.26.0, babel-core@^6.7.2: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: @@ -1497,7 +1497,7 @@ babel-polyfill@6.23.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-polyfill@^6.20.0, babel-polyfill@^6.23.0, babel-polyfill@^6.26.0: +babel-polyfill@^6.20.0, babel-polyfill@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" dependencies: @@ -2262,12 +2262,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000725" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000725.tgz#20f2313d79401e02f61840f39698bc8c558811a6" + version "1.0.30000726" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000726.tgz#9bb742f8d026a62df873bc03c06843d2255b60d7" caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000718: - version "1.0.30000725" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39" + version "1.0.30000726" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000726.tgz#966a753fa107a09d4131cf8b3d616723a06ccf7e" caniuse-lite@^1.0.30000715: version "1.0.30000717" @@ -2379,7 +2379,7 @@ child-process-promise@^2.2.1: node-version "^1.0.0" promise-polyfill "^6.0.1" -chokidar@^1.4.3, chokidar@^1.5.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.5.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -2516,7 +2516,7 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -codecov@^2.2.0: +codecov@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/codecov/-/codecov-2.3.0.tgz#ad25a2c6e0442d13740d9d4ddbb9a3e2714330f4" dependencies: @@ -2678,19 +2678,6 @@ config-chain@~1.1.5: ini "^1.3.4" proto-list "~1.2.1" -configstore@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" - dependencies: - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - configstore@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" @@ -3278,7 +3265,7 @@ damerau-levenshtein@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" -danger@^1.0.0: +danger@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/danger/-/danger-1.2.0.tgz#45012a191af890c8bb3879a2f3bdf0ef406e0cef" dependencies: @@ -3667,15 +3654,6 @@ duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.2.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -3738,12 +3716,6 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" - dependencies: - once "^1.4.0" - enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" @@ -3861,7 +3833,7 @@ es6-map@^0.1.3: es6-symbol "~3.1.1" event-emitter "~0.3.5" -es6-promise@^3.0.2: +es6-promise@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -3943,9 +3915,9 @@ eslint-config-airbnb@^15.1.0: dependencies: eslint-config-airbnb-base "^11.3.0" -eslint-config-prettier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.3.0.tgz#b75b1eabea0c8b97b34403647ee25db349b9d8a0" +eslint-config-prettier@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.4.0.tgz#fb7cf29c0ab2ba61af5164fb1930f9bef3be2872" dependencies: get-stdin "^5.0.1" @@ -4056,7 +4028,7 @@ eslint-plugin-jsx-a11y@^6.0.2: emoji-regex "^6.1.0" jsx-ast-utils "^1.4.0" -eslint-plugin-prettier@^2.1.2: +eslint-plugin-prettier@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.2.0.tgz#f2837ad063903d73c621e7188fb3d41486434088" dependencies: @@ -4071,7 +4043,7 @@ eslint-plugin-react@7.0.1: has "^1.0.1" jsx-ast-utils "^1.3.4" -eslint-plugin-react@^7.1.0: +eslint-plugin-react@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.3.0.tgz#ca9368da36f733fbdc05718ae4e91f778f38e344" dependencies: @@ -4131,9 +4103,9 @@ eslint@3.19.0, eslint@^3.16.1: text-table "~0.2.0" user-home "^2.0.0" -eslint@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.5.0.tgz#bb75d3b8bde97fb5e13efcd539744677feb019c3" +eslint@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.6.1.tgz#ddc7fc7fd70bf93205b0b3449bb16a1e9e7d4950" dependencies: ajv "^5.2.0" babel-code-frame "^6.22.0" @@ -4641,8 +4613,8 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" flow-parser@^0.*: - version "0.54.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.54.0.tgz#82b3eea7a95561cb2f8d24d2068789e3491447a8" + version "0.54.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.54.1.tgz#5037778da8d8391192527f2b36853e98945ae390" fn-name@^2.0.1: version "2.0.1" @@ -4733,7 +4705,7 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^4.0.0, fs-extra@^4.0.1: +fs-extra@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" dependencies: @@ -4841,6 +4813,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +get-own-enumerable-property-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-1.0.1.tgz#f1d4e3ad1402e039898e56d1e9b9aa924c26e484" + get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -5090,21 +5066,6 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -got@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" - dependencies: - duplexify "^3.2.0" - infinity-agent "^2.0.0" - is-redirect "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - nested-error-stacks "^1.0.0" - object-assign "^3.0.0" - prepend-http "^1.0.0" - read-all-stream "^3.0.0" - timed-out "^2.0.0" - got@^5.0.0: version "5.7.1" resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" @@ -5533,7 +5494,7 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore-by-default@^1.0.0: +ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -5579,10 +5540,6 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" -infinity-agent@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -5689,9 +5646,9 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^3.0.6, inquirer@^3.1.0, inquirer@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.2.tgz#c2aaede1507cc54d826818737742d621bef2e823" +inquirer@^3.0.6, inquirer@^3.2.2, inquirer@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.3.tgz#1c7b1731cf77b934ec47d22c9ac5aa8fe7fbe095" dependencies: ansi-escapes "^2.0.0" chalk "^2.0.0" @@ -5831,7 +5788,7 @@ 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.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -5867,6 +5824,12 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + is-hexadecimal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz#6e084bbc92061fbb0971ec58b6ce6d404e24da69" @@ -5906,7 +5869,7 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-obj@^1.0.0: +is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -5966,6 +5929,10 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" @@ -6304,7 +6271,7 @@ jest-environment-node@^21.0.0: jest-mock "^21.0.0" jest-util "^21.0.0" -jest-enzyme@^3.8.1: +jest-enzyme@^3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-3.8.2.tgz#b0352ca90193b4acc15509206ec68ddc41d98b6d" dependencies: @@ -6823,12 +6790,6 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -latest-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" - dependencies: - package-json "^1.0.0" - latest-version@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" @@ -6859,7 +6820,7 @@ left-pad@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" -lerna@2.1.2: +lerna@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.1.2.tgz#b07eb7a4d7dd7d44a105262fef49b2229301c577" dependencies: @@ -6915,19 +6876,23 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lint-staged@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.4.tgz#9ca6968b30dfbfe81365b7a763cd4f4992896553" +lint-staged@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.1.0.tgz#5d983361566aa5974cd58f0a64afa5acbd9d6118" dependencies: app-root-path "^2.0.0" + chalk "^2.1.0" cosmiconfig "^1.1.0" execa "^0.8.0" + is-glob "^4.0.0" + jest-validate "^20.0.3" listr "^0.12.0" - lodash.chunk "^4.2.0" + lodash "^4.17.4" minimatch "^3.0.0" npm-which "^3.0.1" p-map "^1.1.1" staged-git-files "0.0.4" + stringify-object "^3.2.0" listr-silent-renderer@^1.1.1: version "1.1.1" @@ -7141,10 +7106,6 @@ lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.chunk@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" - lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" @@ -7773,12 +7734,6 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -nested-error-stacks@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - netrc@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/netrc/-/netrc-0.1.4.tgz#6be94fcaca8d77ade0a9670dc460914c94472444" @@ -7888,20 +7843,20 @@ node-version@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.1.0.tgz#f437d7ba407e65e2c4eaef8887b1718ba523d4f0" -nodemon@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" +nodemon@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.0.tgz#e538548a777340a19f855c4f087b7e528aa3feda" dependencies: - chokidar "^1.4.3" - debug "^2.2.0" - es6-promise "^3.0.2" - ignore-by-default "^1.0.0" + chokidar "^1.7.0" + debug "^2.6.8" + es6-promise "^3.3.1" + ignore-by-default "^1.0.1" lodash.defaults "^3.1.2" - minimatch "^3.0.0" - ps-tree "^1.0.1" - touch "1.0.0" + minimatch "^3.0.4" + ps-tree "^1.1.0" + touch "^3.1.0" undefsafe "0.0.3" - update-notifier "0.5.0" + update-notifier "^2.2.0" nomnom@^1.8.1: version "1.8.1" @@ -8258,13 +8213,6 @@ p-map@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" -package-json@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" - dependencies: - got "^3.2.0" - registry-url "^3.0.0" - package-json@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" @@ -8854,9 +8802,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.3.tgz#59dadc683345ec6b88f88b94ed4ae7e1da394bfe" +prettier@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.6.1.tgz#850f411a3116226193e32ea5acfc21c0f9a76d7d" pretty-bytes@^4.0.2: version "4.0.2" @@ -8963,7 +8911,7 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" -ps-tree@^1.0.1: +ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" dependencies: @@ -9788,7 +9736,7 @@ registry-auth-token@^3.0.1: rc "^1.1.6" safe-buffer "^5.0.1" -registry-url@^3.0.0, registry-url@^3.0.3: +registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: @@ -9964,7 +9912,7 @@ remark-lint-ordered-list-marker-style@^1.0.0: unist-util-position "^3.0.0" unist-util-visit "^1.1.1" -remark-lint@^6.0.0: +remark-lint@^6.0.0, remark-lint@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-6.0.1.tgz#68b10ec25d5145042f7cfa52649e20ef7bc91482" dependencies: @@ -9999,7 +9947,7 @@ remark-parse@^4.0.0: vfile-location "^2.0.0" xtend "^4.0.1" -remark-preset-lint-recommended@^3.0.0: +remark-preset-lint-recommended@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/remark-preset-lint-recommended/-/remark-preset-lint-recommended-3.0.1.tgz#75486577873e20f514cf66e399fcc0d872971049" dependencies: @@ -10807,10 +10755,6 @@ stream-http@^2.3.1: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - stream-to-observable@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" @@ -10819,7 +10763,7 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-length@^1.0.0, string-length@^1.0.1: +string-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" dependencies: @@ -10875,6 +10819,14 @@ stringify-entities@^1.0.1: is-alphanumerical "^1.0.0" is-hexadecimal "^1.0.0" +stringify-object@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.0.tgz#94370a135e41bc048358813bf99481f1315c6aa6" + dependencies: + get-own-enumerable-property-symbols "^1.0.1" + is-obj "^1.0.1" + is-regexp "^1.0.0" + stringmap@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1" @@ -11175,10 +11127,6 @@ time-stamp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" -timed-out@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" - timed-out@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" @@ -11232,9 +11180,9 @@ toposort@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" -touch@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" dependencies: nopt "~1.0.10" @@ -11529,18 +11477,6 @@ unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" -update-notifier@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" - dependencies: - chalk "^1.0.0" - configstore "^1.0.0" - is-npm "^1.0.0" - latest-version "^1.0.0" - repeating "^1.1.2" - semver-diff "^2.0.0" - string-length "^1.0.0" - update-notifier@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" @@ -11554,7 +11490,7 @@ update-notifier@^1.0.3: semver-diff "^2.0.0" xdg-basedir "^2.0.0" -update-notifier@^2.1.0: +update-notifier@^2.1.0, update-notifier@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" dependencies: From faa4803ca23a1c2ec40631555e410ca34a76d770 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 08:41:47 +0200 Subject: [PATCH 098/107] FIX snapshots --- .../src/stories/__snapshots__/index.storyshot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index a862be90e2b0..76bd3f3d9be9 100644 --- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -150,7 +150,7 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` } } > - Button with PropTypes and doc comments + Some Description

@@ -618,7 +618,7 @@ exports[`Storyshots AddonInfo.FlowTypeButton FlowTypeButton 1`] = ` } } > - Button with Flow type documentation comments + Some Description

@@ -3118,9 +3118,9 @@ exports[`Storyshots WithEvents Logger 1`] = ` Object { "color": "rgb(51, 51, 51)", "fontFamily": " - -apple-system, \\".SFNSText-Regular\\", \\"San Francisco\\", \\"Roboto\\", - \\"Segoe UI\\", \\"Helvetica Neue\\", \\"Lucida Grande\\", sans-serif - ", + -apple-system, \\".SFNSText-Regular\\", \\"San Francisco\\", \\"Roboto\\", + \\"Segoe UI\\", \\"Helvetica Neue\\", \\"Lucida Grande\\", sans-serif + ", "padding": 20, } } From bd6d8a64e62c60f34a632a83b5050e93e2a228f6 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 08:41:47 +0200 Subject: [PATCH 099/107] use HtmlWebpackPlugin for RN & CRNA --- app/react-native/package.json | 1 + .../src/server/config/webpack.config.js | 14 ++- .../src/server/config/webpack.config.prod.js | 112 ++++++++++-------- app/react-native/src/server/index.html.ejs | 34 ++++++ app/react-native/src/server/index.html.js | 41 ------- app/react-native/src/server/middleware.js | 11 +- .../.storybook/webpack.config.js | 1 - examples/crna-kitchen-sink/package.json | 3 +- .../storybook/webpack.config.js | 27 +++++ .../.storybook/webpack.config.js | 1 - 10 files changed, 140 insertions(+), 105 deletions(-) create mode 100644 app/react-native/src/server/index.html.ejs delete mode 100644 app/react-native/src/server/index.html.js create mode 100644 examples/crna-kitchen-sink/storybook/webpack.config.js diff --git a/app/react-native/package.json b/app/react-native/package.json index d2d78b903fb1..5716932f1b31 100644 --- a/app/react-native/package.json +++ b/app/react-native/package.json @@ -53,6 +53,7 @@ "file-loader": "^0.11.1", "find-cache-dir": "^1.0.0", "global": "^4.3.2", + "html-webpack-plugin": "^2.30.1", "json-loader": "^0.5.4", "json5": "^0.5.1", "postcss-loader": "^2.0.5", diff --git a/app/react-native/src/server/config/webpack.config.js b/app/react-native/src/server/config/webpack.config.js index ddd38a20d004..0e2f5c2ce09e 100644 --- a/app/react-native/src/server/config/webpack.config.js +++ b/app/react-native/src/server/config/webpack.config.js @@ -1,9 +1,10 @@ import path from 'path'; import webpack from 'webpack'; import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import { OccurenceOrderPlugin, includePaths, excludePaths } from './utils'; -const config = { +const getConfig = options => ({ devtool: '#cheap-module-eval-source-map', entry: { manager: [require.resolve('../../manager')], @@ -14,6 +15,13 @@ const config = { publicPath: '/', }, plugins: [ + new HtmlWebpackPlugin({ + filename: 'index.html', + data: { + options: JSON.stringify(options), + }, + template: require.resolve('../index.html.ejs'), + }), new OccurenceOrderPlugin(), new webpack.HotModuleReplacementPlugin(), new CaseSensitivePathsPlugin(), @@ -29,6 +37,6 @@ const config = { }, ], }, -}; +}); -export default config; +export default getConfig; diff --git a/app/react-native/src/server/config/webpack.config.prod.js b/app/react-native/src/server/config/webpack.config.prod.js index 841459f0c83f..b7c15794ef15 100644 --- a/app/react-native/src/server/config/webpack.config.prod.js +++ b/app/react-native/src/server/config/webpack.config.prod.js @@ -1,57 +1,69 @@ import path from 'path'; import webpack from 'webpack'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import { OccurenceOrderPlugin, includePaths, excludePaths } from './utils'; -const config = { - bail: true, - devtool: '#cheap-module-source-map', - entry: { - manager: [path.resolve(__dirname, '../../manager')], - }, - output: { - path: path.join(__dirname, 'dist'), - filename: 'static/[name].bundle.js', - // Here we set the publicPath to ''. - // This allows us to deploy storybook into subpaths like GitHub pages. - // This works with css and image loaders too. - // This is working for storybook since, we don't use pushState urls and - // relative URLs works always. - publicPath: '/', - }, - plugins: [ - new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"' }), - new webpack.optimize.DedupePlugin(), - new webpack.optimize.UglifyJsPlugin({ - compress: { - screw_ie8: true, - warnings: false, - }, - mangle: { - screw_ie8: true, - }, - output: { - comments: false, - screw_ie8: true, - }, - }), - ], - module: { - loaders: [ - { - test: /\.jsx?$/, - loader: require.resolve('babel-loader'), - query: require('./babel.prod.js'), // eslint-disable-line - include: includePaths, - exclude: excludePaths, - }, +const getConfig = options => { + const config = { + bail: true, + devtool: '#cheap-module-source-map', + entry: { + manager: [path.resolve(__dirname, '../../manager')], + }, + output: { + path: path.join(__dirname, 'dist'), + filename: 'static/[name].bundle.js', + // Here we set the publicPath to ''. + // This allows us to deploy storybook into subpaths like GitHub pages. + // This works with css and image loaders too. + // This is working for storybook since, we don't use pushState urls and + // relative URLs works always. + publicPath: '/', + }, + plugins: [ + new HtmlWebpackPlugin({ + filename: 'index.html', + data: { + options: JSON.stringify(options), + }, + template: require.resolve('../index.html.ejs'), + }), + new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"' }), + new webpack.optimize.DedupePlugin(), + new webpack.optimize.UglifyJsPlugin({ + compress: { + screw_ie8: true, + warnings: false, + }, + mangle: { + screw_ie8: true, + }, + output: { + comments: false, + screw_ie8: true, + }, + }), ], - }, -}; + module: { + loaders: [ + { + test: /\.jsx?$/, + loader: require.resolve('babel-loader'), + query: require('./babel.prod.js'), // eslint-disable-line + include: includePaths, + exclude: excludePaths, + }, + ], + }, + }; -// Webpack 2 doesn't have a OccurenceOrderPlugin plugin in the production mode. -// But webpack 1 has it. That's why we do this. -if (OccurenceOrderPlugin) { - config.plugins.unshift(new OccurenceOrderPlugin()); -} + // Webpack 2 doesn't have a OccurenceOrderPlugin plugin in the production mode. + // But webpack 1 has it. That's why we do this. + if (OccurenceOrderPlugin) { + config.plugins.unshift(new OccurenceOrderPlugin()); + } + + return config; +}; -export default config; +export default getConfig; diff --git a/app/react-native/src/server/index.html.ejs b/app/react-native/src/server/index.html.ejs new file mode 100644 index 000000000000..84b46693e476 --- /dev/null +++ b/app/react-native/src/server/index.html.ejs @@ -0,0 +1,34 @@ + + + + + + Storybook for React + + + +
+ + + diff --git a/app/react-native/src/server/index.html.js b/app/react-native/src/server/index.html.js deleted file mode 100644 index e3bc622c4e2f..000000000000 --- a/app/react-native/src/server/index.html.js +++ /dev/null @@ -1,41 +0,0 @@ -import url from 'url'; - -export default function(publicPath, options) { - return ` - - - - - - Storybook for React - - - -
- - - - - `; -} diff --git a/app/react-native/src/server/middleware.js b/app/react-native/src/server/middleware.js index 10ec0c03c14a..3aa404d17d24 100644 --- a/app/react-native/src/server/middleware.js +++ b/app/react-native/src/server/middleware.js @@ -7,7 +7,6 @@ import webpackHotMiddleware from 'webpack-hot-middleware'; import baseConfig from './config/webpack.config'; import baseProductionConfig from './config/webpack.config.prod'; import loadConfig from './config'; -import getIndexHtml from './index.html'; function getMiddleware(configDir) { const middlewarePath = path.resolve(configDir, 'middleware.js'); @@ -26,7 +25,7 @@ export default function({ projectDir, configDir, ...options }) { // custom `.babelrc` file and `webpack.config.js` files const environment = options.environment || 'DEVELOPMENT'; const isProd = environment === 'PRODUCTION'; - const currentWebpackConfig = isProd ? baseProductionConfig : baseConfig; + const currentWebpackConfig = isProd ? baseProductionConfig(options) : baseConfig(options); const config = loadConfig(environment, currentWebpackConfig, projectDir, configDir); // remove the leading '/' @@ -53,12 +52,8 @@ export default function({ projectDir, configDir, ...options }) { } router.get('/', (req, res) => { - res.send( - getIndexHtml(publicPath, { - manualId: options.manualId, - secured: options.secured, - }) - ); + res.set('Content-Type', 'text/html'); + res.sendFile(path.join(`${__dirname}/public/index.html`)); }); return router; diff --git a/examples/cra-kitchen-sink/.storybook/webpack.config.js b/examples/cra-kitchen-sink/.storybook/webpack.config.js index 3ced6fa641bb..001da2406dda 100644 --- a/examples/cra-kitchen-sink/.storybook/webpack.config.js +++ b/examples/cra-kitchen-sink/.storybook/webpack.config.js @@ -1,4 +1,3 @@ -const path = require('path'); const webpack = require('webpack'); // load the default config generator. diff --git a/examples/crna-kitchen-sink/package.json b/examples/crna-kitchen-sink/package.json index 4126c6c8233c..996107a55711 100644 --- a/examples/crna-kitchen-sink/package.json +++ b/examples/crna-kitchen-sink/package.json @@ -34,6 +34,7 @@ "expo": "19.0.0", "prop-types": "15.5.10", "react": "16.0.0-alpha.12", - "react-native": "0.46.1" + "react-native": "0.46.1", + "webpack": "^2.5.1 || ^3.0.0" } } diff --git a/examples/crna-kitchen-sink/storybook/webpack.config.js b/examples/crna-kitchen-sink/storybook/webpack.config.js new file mode 100644 index 000000000000..a2daea72816d --- /dev/null +++ b/examples/crna-kitchen-sink/storybook/webpack.config.js @@ -0,0 +1,27 @@ +const webpack = require('webpack'); + +// load the default config generator. +const genDefaultConfig = require('@storybook/react-native/dist/server/config/defaults/webpack.config.js'); + +// Export a function. Accept the base config as the only param. +module.exports = (storybookBaseConfig, configType) => { + // configType has a value of 'DEVELOPMENT' or 'PRODUCTION' + // You can change the configuration based on that. + // 'PRODUCTION' is used when building the static version of storybook. + + const config = genDefaultConfig(storybookBaseConfig, configType); + + // Make whatever fine-grained changes you need + config.plugins.push( + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks(module) { + // this assumes your vendor imports exist in the node_modules directory + return module.context && module.context.indexOf('node_modules') !== -1; + }, + }) + ); + + // Return the altered config + return config; +}; diff --git a/examples/vue-kitchen-sink/.storybook/webpack.config.js b/examples/vue-kitchen-sink/.storybook/webpack.config.js index f7cbac74a0b4..416bb092edd9 100644 --- a/examples/vue-kitchen-sink/.storybook/webpack.config.js +++ b/examples/vue-kitchen-sink/.storybook/webpack.config.js @@ -1,4 +1,3 @@ -const path = require('path'); const webpack = require('webpack'); // load the default config generator. From f1ff05a51e62e123061c7b2f46f299a001068d3f Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 19:53:01 +0200 Subject: [PATCH 100/107] FIX snapshots --- .../src/stories/__snapshots__/index.storyshot | 1006 +++++++++++++---- yarn.lock | 29 +- 2 files changed, 777 insertions(+), 258 deletions(-) diff --git a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot index 76bd3f3d9be9..8d56934664c1 100644 --- a/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot +++ b/examples/cra-kitchen-sink/src/stories/__snapshots__/index.storyshot @@ -290,45 +290,57 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` " Component - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - -
+ property + propType + required + default + description
+ disabled - bool + + - no + + - + +
+ label - string + + + yes + - +
+ onClick - func + + - no + + - + +
+ one - other + + - no + + - + - +
+ two - other + + - no + + - + - +
+ + obj + + + + - + + - + +
+ shape + + + + - + + - + +
+ arrayOf + + + + - + + - + +
msg - other + + - no + + - + - +
+ enm - other + + - no + + - + - +
+ union - other + + - no + + - + - +
@@ -758,41 +917,59 @@ exports[`Storyshots AddonInfo.FlowTypeButton FlowTypeButton 1`] = ` " Component - - - - - - - + + - - - + + -
+ property + propType + required + default + description
+ disabled - - + + + unknown + + + - + +
+ onClick - - + + + unknown + + + - + +
@@ -1128,45 +1323,57 @@ exports[`Storyshots AddonInfo.ImportedPropsButton ImportedPropsButton 1`] = ` " Component - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - -
+ property + propType + required + default + description
+ disabled - bool + + - no + + - + +
+ label - string + + + yes + - +
+ onClick - func + + - no + + - + +
+ one - other + + - no + + - + - +
+ two - other + + - no + + - + - +
+ + obj + + + + - + + - + +
+ shape + + + + - + + - + +
+ arrayOf + + + + - + + - + +
msg - other + + - no + + - + - +
+ enm - other + + - no + + - + - +
+ union - other + + - no + + - + - +
@@ -2204,60 +2558,82 @@ exports[`Storyshots Button with new info 1`] = ` " Component - - - - - - - - - - - - - - - - - - - - - - - - -
+ property + propType + required + default + description
+ children - node + + + yes + - +
+ isAmazing - bool + + - no + + - + +
+ age - number + + - no + + - + - 0 + { + + isOld + + : + + + false + + + , + + value + + : + + + 0 + + + } +
+ title - string + + - no + + - + +
@@ -2758,60 +3200,82 @@ exports[`Storyshots Button with some info 1`] = ` " Component - - - - - - - - - - - - - - - - - - - - - - - - -
+ property + propType + required + default + description
+ children - node + + + yes + - +
+ isAmazing - bool + + - no + + - + +
+ age - number + + - no + + - + - 0 + { + + isOld + + : + + + false + + + , + + value + + : + + + 0 + + + } +
+ title - string + + - no + + - + +
diff --git a/yarn.lock b/yarn.lock index 5f2700b9ee35..7a2e6405c1a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,11 +113,11 @@ add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" -address@1.0.1: +address@1.0.1, address@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" -address@1.0.2, address@^1.0.1: +address@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" @@ -2138,14 +2138,7 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c" - dependencies: - caniuse-lite "^1.0.30000715" - electron-to-chromium "^1.3.18" - -browserslist@^2.4.0: +browserslist@^2.1.2, browserslist@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" dependencies: @@ -2265,10 +2258,6 @@ caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000718: version "1.0.30000726" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000726.tgz#966a753fa107a09d4131cf8b3d616723a06ccf7e" -caniuse-lite@^1.0.30000715: - version "1.0.30000717" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000717.tgz#4539b126af787c1d4851944de22b2bd8780d3612" - capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" @@ -4721,14 +4710,14 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@1.0.17: +fsevents@1.0.17, fsevents@^1.0.0: version "1.0.17" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" dependencies: nan "^2.3.0" node-pre-gyp "^0.6.29" -fsevents@^1.0.0, fsevents@^1.1.1: +fsevents@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" dependencies: @@ -7565,13 +7554,13 @@ mime-db@~1.23.0: version "1.23.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" -mime-types@2.1.11: +mime-types@2.1.11, mime-types@~2.1.7: version "2.1.11" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" dependencies: mime-db "~1.23.0" -mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9: +mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.9: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: @@ -10911,13 +10900,13 @@ supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-co dependencies: has-flag "^1.0.0" -supports-color@^4.0.0, supports-color@^4.1.0, supports-color@^4.2.1: +supports-color@^4.0.0, supports-color@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" dependencies: has-flag "^2.0.0" -supports-color@^4.4.0: +supports-color@^4.1.0, supports-color@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" dependencies: From d51d0c74e5d745e940c6fa72271a4245ea732f48 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 20:37:34 +0200 Subject: [PATCH 101/107] FIX unit test --- addons/viewport/src/tests/manager.test.js | 2 +- yarn.lock | 35 ++++++++++++++++------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/addons/viewport/src/tests/manager.test.js b/addons/viewport/src/tests/manager.test.js index eaed9cd3111a..6f5bf00af8a5 100644 --- a/addons/viewport/src/tests/manager.test.js +++ b/addons/viewport/src/tests/manager.test.js @@ -1,5 +1,5 @@ import addons from '@storybook/addons'; -import { init, addChannel } from '../manager.jsx'; +import { init, addChannel } from '../manager'; jest.mock('@storybook/addons'); diff --git a/yarn.lock b/yarn.lock index 7a2e6405c1a7..8728762380a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,11 +113,11 @@ add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" -address@1.0.1, address@^1.0.1: +address@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" -address@1.0.2: +address@1.0.2, address@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" @@ -430,6 +430,10 @@ ast-types@0.8.12: version "0.8.12" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc" +ast-types@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" + ast-types@0.9.11: version "0.9.11" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" @@ -4930,8 +4934,8 @@ glamor@^2.20.40: through "^2.3.8" glamorous@^4.1.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.7.0.tgz#4327565f4a65895359e37ff63ec13becccd4fd58" + version "4.8.0" + resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.8.0.tgz#3c7416cd1045ed992953d545b6241d43dbbbbc75" dependencies: brcast "^3.0.0" fast-memoize "^2.2.7" @@ -9570,7 +9574,7 @@ rebound@^0.0.13: version "0.0.13" resolved "https://registry.yarnpkg.com/rebound/-/rebound-0.0.13.tgz#4a225254caf7da756797b19c5817bf7a7941fac1" -recast@0.10.33, recast@^0.10.10: +recast@0.10.33: version "0.10.33" resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697" dependencies: @@ -9579,6 +9583,15 @@ recast@0.10.33, recast@^0.10.10: private "~0.1.5" source-map "~0.5.0" +recast@^0.10.10: + version "0.10.43" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" + dependencies: + ast-types "0.8.15" + esprima-fb "~15001.1001.0-dev-harmony-fb" + private "~0.1.5" + source-map "~0.5.0" + recast@^0.11.17: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" @@ -10900,13 +10913,13 @@ supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-co dependencies: has-flag "^1.0.0" -supports-color@^4.0.0, supports-color@^4.2.1: +supports-color@^4.0.0, supports-color@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" dependencies: has-flag "^2.0.0" -supports-color@^4.1.0, supports-color@^4.4.0: +supports-color@^4.2.1, supports-color@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" dependencies: @@ -11842,8 +11855,8 @@ webpack-dev-server@^2.4.5: yargs "^6.0.0" webpack-hot-middleware@^2.18.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.18.2.tgz#84dee643f037c3d59c9de142548430371aa8d3b2" + version "2.19.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.19.0.tgz#7ab2607159496ff3f3314dda491cd96d8f2d5124" dependencies: ansi-html "0.0.7" html-entities "^1.2.0" @@ -11905,8 +11918,8 @@ webpack@2.5.1: yargs "^6.0.0" "webpack@^2.5.1 || ^3.0.0": - version "3.5.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" + version "3.5.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.6.tgz#a492fb6c1ed7f573816f90e00c8fbb5a20cc5c36" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" From 7ab74c6a34abcfc832fb3ec56d146b59d7713168 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 6 Sep 2017 20:57:31 +0200 Subject: [PATCH 102/107] LINTING --- .../src/components/ActionLogger/index.js | 16 ++---- addons/centered/src/react.js | 4 +- addons/comments/src/index.js | 5 +- .../manager/components/CommentItem/index.js | 12 ++--- .../manager/components/CommentList/index.js | 4 +- .../containers/CommentsPanel/dataStore.js | 52 +++++++++++-------- addons/comments/src/stories/index.js | 16 +++--- addons/events/src/components/Event.js | 20 ++++--- addons/graphql/demo/index.js | 5 +- .../src/components/FullScreen/index.js | 6 +-- addons/graphql/src/preview.js | 5 +- addons/info/src/components/Node.js | 20 +++---- addons/info/src/components/PropTable.js | 20 ++++--- addons/info/src/components/PropVal.js | 36 +++---------- addons/info/src/components/Props.js | 27 +++++----- addons/info/src/components/Story.js | 47 +++++------------ addons/info/src/components/markdown/code.js | 12 +---- addons/info/src/components/markdown/text.js | 18 ++----- addons/info/src/components/types/ArrayOf.js | 5 +- addons/info/src/components/types/Enum.js | 5 +- .../info/src/components/types/InstanceOf.js | 5 +- addons/info/src/components/types/Object.js | 5 +- addons/info/src/components/types/ObjectOf.js | 5 +- .../info/src/components/types/ObjectType.js | 5 +- addons/info/src/components/types/OneOf.js | 5 +- .../src/components/types/PrettyPropType.js | 6 +-- addons/info/src/components/types/Shape.js | 4 +- addons/info/src/components/types/Signature.js | 5 +- addons/info/src/index.js | 6 +-- addons/info/src/index.test.js | 5 +- addons/knobs/src/components/Panel.js | 4 +- addons/knobs/src/components/types/Color.js | 5 +- .../knobs/src/components/types/Date/index.js | 5 +- addons/knobs/src/components/types/Select.js | 6 +-- .../viewport/src/components/SelectViewport.js | 4 +- .../src/manager/components/PreviewHelp.js | 5 +- .../preview/components/OnDeviceUI/index.js | 10 ++-- .../preview/components/StoryListView/index.js | 31 +++++------ .../src/preview/components/StoryView/index.js | 20 +++---- app/react/src/client/preview/error_display.js | 13 ++--- docs/components/Breakpoint.js | 6 +-- docs/components/Docs/Container/index.js | 5 +- docs/components/Docs/Content/index.js | 13 ++--- docs/components/Docs/Nav/index.js | 13 +++-- docs/components/Docs/index.js | 5 +- docs/components/Footer/index.js | 5 +- docs/components/Grid/Examples/index.js | 5 +- docs/components/Grid/Grid/index.js | 5 +- docs/components/Grid/GridItem/index.js | 33 ++++++------ docs/components/Homepage/Demo/index.js | 5 +- docs/components/Homepage/Featured/index.js | 14 ++--- docs/components/Homepage/Heading/index.js | 5 +- docs/components/Homepage/MainLinks/index.js | 5 +- docs/components/Homepage/Platforms/index.js | 5 +- docs/components/Homepage/UsedBy/index.jsx | 19 +++---- docs/components/Homepage/index.js | 5 +- docs/html.js | 4 +- docs/pages/_template.jsx | 5 +- docs/utils/colors.js | 4 +- docs/wrappers/md.jsx | 4 +- examples/cra-kitchen-sink/src/App.js | 5 +- .../src/components/DocgenButton.js | 5 +- .../src/components/FlowTypeButton.js | 5 +- .../cra-kitchen-sink/src/stories/Logger.js | 4 +- .../src/stories/storybook-components.js | 8 +-- .../storybook/stories/Button/index.android.js | 4 +- .../storybook/stories/Button/index.ios.js | 6 +-- .../storybook/stories/CenterView/index.js | 6 +-- .../storybook/stories/Button/index.android.js | 4 +- .../storybook/stories/Button/index.ios.js | 6 +-- .../storybook/stories/CenterView/index.js | 6 +-- lib/addons/src/index.js | 4 +- lib/channel-postmessage/src/index.js | 4 +- .../storybook/stories/Button/index.android.js | 4 +- .../storybook/stories/Button/index.ios.js | 6 +-- .../storybook/stories/CenterView/index.js | 6 +-- .../template/storybook/stories/index.js | 14 ++--- .../storybook/stories/Button/index.android.js | 7 ++- .../storybook/stories/Button/index.ios.js | 7 ++- .../storybook/stories/CenterView/index.js | 5 +- .../template/storybook/stories/index.js | 14 ++--- lib/cli/lib/helpers.js | 10 +++- lib/components/src/navigation/routed_link.js | 6 +-- lib/ui/example/client/provider.js | 8 +-- package.json | 2 +- scripts/test.js | 2 - 86 files changed, 333 insertions(+), 479 deletions(-) diff --git a/addons/actions/src/components/ActionLogger/index.js b/addons/actions/src/components/ActionLogger/index.js index 1f0b0ad7296e..bd66f420af53 100644 --- a/addons/actions/src/components/ActionLogger/index.js +++ b/addons/actions/src/components/ActionLogger/index.js @@ -5,20 +5,14 @@ import style from './style'; class ActionLogger extends Component { getActionData() { - return this.props.actions.map((action, i) => this.renderAction(action, i)); + return this.props.actions.map(action => this.renderAction(action)); } renderAction(action) { - const counter = ( -
- {action.count} -
- ); + const counter =
{action.count}
; return (
-
- {action.count > 1 && counter} -
+
{action.count > 1 && counter}
-
-          {this.getActionData()}
-        
+
{this.getActionData()}
diff --git a/addons/centered/src/react.js b/addons/centered/src/react.js index 093fbdcff4da..00f0a4983b69 100644 --- a/addons/centered/src/react.js +++ b/addons/centered/src/react.js @@ -19,9 +19,7 @@ const innerStyle = { export default function(storyFn) { return (
-
- {storyFn()} -
+
{storyFn()}
); } diff --git a/addons/comments/src/index.js b/addons/comments/src/index.js index 3ac7f91f9a98..987a8e2256f6 100644 --- a/addons/comments/src/index.js +++ b/addons/comments/src/index.js @@ -10,10 +10,11 @@ const buttonStyles = { padding: '3px 10px', }; -const Button = ({ children, onClick, style = {} }) => +const Button = ({ children, onClick, style = {} }) => ( ; + +); Button.defaultProps = { onClick: () => {}, diff --git a/addons/comments/src/manager/components/CommentItem/index.js b/addons/comments/src/manager/components/CommentItem/index.js index 8a6244a3f26d..70b7f8202e37 100644 --- a/addons/comments/src/manager/components/CommentItem/index.js +++ b/addons/comments/src/manager/components/CommentItem/index.js @@ -59,16 +59,10 @@ export default class CommentItem extends Component {
- - {comment.user.name} - - - {time} - + {comment.user.name} + {time}
- - {body} - + {body} {showDelete ? this.renderDelete() : null}
diff --git a/addons/comments/src/manager/components/CommentList/index.js b/addons/comments/src/manager/components/CommentList/index.js index 268a1f53e865..bee37c0e493f 100644 --- a/addons/comments/src/manager/components/CommentList/index.js +++ b/addons/comments/src/manager/components/CommentList/index.js @@ -37,14 +37,14 @@ export default class CommentList extends Component { }} style={style.wrapper} > - {comments.map(comment => + {comments.map(comment => ( this.props.deleteComment(comment.id)} /> - )} + ))}
); } diff --git a/addons/comments/src/manager/containers/CommentsPanel/dataStore.js b/addons/comments/src/manager/containers/CommentsPanel/dataStore.js index f8c437636a90..e3659c142449 100644 --- a/addons/comments/src/manager/containers/CommentsPanel/dataStore.js +++ b/addons/comments/src/manager/containers/CommentsPanel/dataStore.js @@ -79,10 +79,12 @@ export default class DataStore { // TODO: send a null and handle the loading part in the UI side. this.eventStore.emit('loading', true); this.fireComments([]); - this.loadUsers().then(() => this.loadComments()).then(() => { - this.eventStore.emit('loading', false); - return Promise.resolve(null); - }); + this.loadUsers() + .then(() => this.loadComments()) + .then(() => { + this.eventStore.emit('loading', false); + return Promise.resolve(null); + }); return this.currentStory; } @@ -98,15 +100,18 @@ export default class DataStore { if (!info) { return null; } - return this.db.getCollection('users').get(query, options).then(users => { - this.users = users.reduce((newUsers, user) => { - const usersObj = { - ...newUsers, - }; - usersObj[user.id] = user; - return usersObj; - }, {}); - }); + return this.db + .getCollection('users') + .get(query, options) + .then(users => { + this.users = users.reduce((newUsers, user) => { + const usersObj = { + ...newUsers, + }; + usersObj[user.id] = user; + return usersObj; + }, {}); + }); }); } @@ -118,15 +123,18 @@ export default class DataStore { if (!info) { return null; } - return this.db.getCollection('comments').get(query, options).then(comments => { - // add to cache - this.addToCache(currentStory, comments); - - // set comments only if we are on the relavant story - if (deepEquals(currentStory, this.currentStory)) { - this.fireComments(comments); - } - }); + return this.db + .getCollection('comments') + .get(query, options) + .then(comments => { + // add to cache + this.addToCache(currentStory, comments); + + // set comments only if we are on the relavant story + if (deepEquals(currentStory, this.currentStory)) { + this.fireComments(comments); + } + }); }); } diff --git a/addons/comments/src/stories/index.js b/addons/comments/src/stories/index.js index 797bc4d97a7e..d06a13f82b01 100644 --- a/addons/comments/src/stories/index.js +++ b/addons/comments/src/stories/index.js @@ -58,14 +58,14 @@ storiesOf('Button', module) storiesOf('Components', module) .add('CommentForm', () => ) .add('CommentList - No Comments', () => ) - .add('CommentList - with comments', () => + .add('CommentList - with comments', () => ( - ) + )) .add('CommentPanel - not loggedIn', () => ) - .add('CommentPanel - app not available', () => + .add('CommentPanel - app not available', () => ( - ) - .add('CommentPanel - loggedIn with no comments', () => + )) + .add('CommentPanel - loggedIn with no comments', () => ( - ) - .add('CommentPanel - loggedIn with has comments', () => + )) + .add('CommentPanel - loggedIn with has comments', () => ( - ); + )); diff --git a/addons/events/src/components/Event.js b/addons/events/src/components/Event.js index 9c8df880bd60..5c71aca091da 100644 --- a/addons/events/src/components/Event.js +++ b/addons/events/src/components/Event.js @@ -156,17 +156,15 @@ export default class Item extends Component { value={this.state.payloadString} onChange={this.onChange} /> - {isTextAreaShowed - ? - : } + {isTextAreaShowed ? ( + + ) : ( + + )} ); } diff --git a/addons/graphql/demo/index.js b/addons/graphql/demo/index.js index debae1bb27e0..8f51f80b9bbf 100644 --- a/addons/graphql/demo/index.js +++ b/addons/graphql/demo/index.js @@ -44,6 +44,9 @@ const schema = new graphql.GraphQLSchema({ }), }); -express().use(cors()).use('/graphql', graphqlHTTP({ schema, pretty: true })).listen(3000); +express() + .use(cors()) + .use('/graphql', graphqlHTTP({ schema, pretty: true })) + .listen(3000); console.log('GraphQL server running on http://localhost:3000/graphql'); diff --git a/addons/graphql/src/components/FullScreen/index.js b/addons/graphql/src/components/FullScreen/index.js index b8ac2c700548..4126671d5c32 100644 --- a/addons/graphql/src/components/FullScreen/index.js +++ b/addons/graphql/src/components/FullScreen/index.js @@ -3,11 +3,7 @@ import PropTypes from 'prop-types'; import style from './style'; export default function FullScreen(props) { - return ( -
- {props.children} -
- ); + return
{props.children}
; } FullScreen.defaultProps = { children: null }; diff --git a/addons/graphql/src/preview.js b/addons/graphql/src/preview.js index 5d18a1180981..bccb90b2b3d7 100644 --- a/addons/graphql/src/preview.js +++ b/addons/graphql/src/preview.js @@ -28,9 +28,10 @@ export function setupGraphiQL(config) { return (_query, variables = '{}') => { const query = reIndentQuery(_query); const fetcher = config.fetcher || getDefautlFetcher(config.url); - return () => + return () => ( - ; + + ); }; } diff --git a/addons/info/src/components/Node.js b/addons/info/src/components/Node.js index 168d1d6bef40..34bf3aad17bb 100644 --- a/addons/info/src/components/Node.js +++ b/addons/info/src/components/Node.js @@ -66,9 +66,7 @@ export default function Node(props) { if (!name) { return (
- - {text} - + {text}
); } @@ -77,9 +75,7 @@ export default function Node(props) { if (!children) { return (
- - <{name} - + <{name}
- - <{name} - + <{name} >
- {React.Children.map(children, childElement => + {React.Children.map(children, childElement => ( - )} + ))}
- - </{name}> - + </{name}>
); diff --git a/addons/info/src/components/PropTable.js b/addons/info/src/components/PropTable.js index 301f7e341cbd..b943c5ab7f4a 100644 --- a/addons/info/src/components/PropTable.js +++ b/addons/info/src/components/PropTable.js @@ -114,7 +114,7 @@ export default function PropTable(props) { - {array.map(row => + {array.map(row => ( {row.property} @@ -122,19 +122,17 @@ export default function PropTable(props) { + {row.required ? 'yes' : '-'} - {row.required ? 'yes' : '-'} - - - {row.defaultValue === undefined - ? '-' - : } - - - {row.description} + {row.defaultValue === undefined ? ( + '-' + ) : ( + + )} + {row.description} - )} + ))} ); diff --git a/addons/info/src/components/PropVal.js b/addons/info/src/components/PropVal.js index 1e825f23eb2e..1e806974660c 100644 --- a/addons/info/src/components/PropVal.js +++ b/addons/info/src/components/PropVal.js @@ -48,22 +48,14 @@ function previewArray(val, maxPropArrayLength) { } else { delete items[`c${val.length - 1}`]; } - return ( - - [{createFragment(items)}] - - ); + return [{createFragment(items)}]; } function previewObject(val, maxPropObjectKeys) { const names = Object.keys(val); const items = {}; names.slice(0, maxPropObjectKeys).forEach((name, i) => { - items[`k${i}`] = ( - - {name} - - ); + items[`k${i}`] = {name}; items[`c${i}`] = ': '; items[`v${i}`] = ; items[`m${i}`] = ', '; @@ -89,31 +81,19 @@ export default function PropVal(props) { let content = null; if (typeof val === 'number') { - content = ( - - {val} - - ); + content = {val}; } else if (typeof val === 'string') { if (val.length > maxPropStringLength) { val = `${val.slice(0, maxPropStringLength)}…`; } - content = ( - - "{val}" - - ); + content = "{val}"; braceWrap = false; } else if (typeof val === 'boolean') { content = {`${val}`}; } else if (Array.isArray(val)) { content = previewArray(val, maxPropArrayLength); } else if (typeof val === 'function') { - content = ( - - {val.name ? `${val.name}()` : 'anonymous()'} - - ); + content = {val.name ? `${val.name}()` : 'anonymous()'}; } else if (!val) { content = {`${val}`}; } else if (typeof val !== 'object') { @@ -130,11 +110,7 @@ export default function PropVal(props) { if (!braceWrap) return content; - return ( - - {content} - - ); + return {content}; } PropVal.defaultProps = { diff --git a/addons/info/src/components/Props.js b/addons/info/src/components/Props.js index 6dd57d463f3b..738e3545f34e 100644 --- a/addons/info/src/components/Props.js +++ b/addons/info/src/components/Props.js @@ -32,16 +32,16 @@ export default function Props(props) { names.forEach((name, i) => { items.push( - {breakIntoNewLines - ? -
   -
- : ' '} - - {name} - + {breakIntoNewLines ? ( + +
   +
+ ) : ( + ' ' + )} + {name} {/* Use implicit true: */} - {(!nodeProps[name] || typeof nodeProps[name] !== 'boolean') && + {(!nodeProps[name] || typeof nodeProps[name] !== 'boolean') && ( = @@ -52,18 +52,15 @@ export default function Props(props) { maxPropStringLength={maxPropStringLength} /> - } +
+ )} {i === names.length - 1 && (breakIntoNewLines ?
: endingSpace)} ); }); - return ( - - {items} - - ); + return {items}; } Props.defaultProps = { diff --git a/addons/info/src/components/Story.js b/addons/info/src/components/Story.js index cd61b34b5d25..025e22da2b07 100644 --- a/addons/info/src/components/Story.js +++ b/addons/info/src/components/Story.js @@ -116,11 +116,7 @@ export default class Story extends React.Component { } _renderStory() { - return ( -
- {this.props.children} -
- ); + return
{this.props.children}
; } _renderInline() { @@ -144,12 +140,11 @@ export default class Story extends React.Component { const infoHeader = this._getInfoHeader(); return ( - infoHeader && -
{conditionalRender( displayColorPicker, - () => + () => (
{ @@ -84,7 +84,8 @@ class ColorType extends React.Component { }} > onChange(color.hex)} /> -
, + + ), () => null )} diff --git a/addons/knobs/src/components/types/Date/index.js b/addons/knobs/src/components/types/Date/index.js index 0320d33905c7..965d22f4a686 100644 --- a/addons/knobs/src/components/types/Date/index.js +++ b/addons/knobs/src/components/types/Date/index.js @@ -21,7 +21,7 @@ const customStyle = ` insertCss(style); insertCss(customStyle); -const DateType = ({ knob, onChange }) => +const DateType = ({ knob, onChange }) => (
type="date" onChange={date => onChange(date.valueOf())} /> -
; + +); DateType.defaultProps = { knob: {}, diff --git a/addons/knobs/src/components/types/Select.js b/addons/knobs/src/components/types/Select.js index 1777dce1603b..a0a5366af625 100644 --- a/addons/knobs/src/components/types/Select.js +++ b/addons/knobs/src/components/types/Select.js @@ -24,11 +24,7 @@ class SelectType extends React.Component { value: key, }; - return ( - - ); + return ; } _options(values) { let data = []; diff --git a/addons/viewport/src/components/SelectViewport.js b/addons/viewport/src/components/SelectViewport.js index d9d33ad1bec8..c711ccc54864 100644 --- a/addons/viewport/src/components/SelectViewport.js +++ b/addons/viewport/src/components/SelectViewport.js @@ -10,11 +10,11 @@ export function SelectViewport({ activeViewport, onChange }) { ); diff --git a/app/react-native/src/manager/components/PreviewHelp.js b/app/react-native/src/manager/components/PreviewHelp.js index be3822695969..c981200e2400 100644 --- a/app/react-native/src/manager/components/PreviewHelp.js +++ b/app/react-native/src/manager/components/PreviewHelp.js @@ -25,7 +25,7 @@ const styles = { }, }; -const PreviewHelp = () => +const PreviewHelp = () => (

Welcome to storybook

This is a UI component dev environment for your app.

@@ -54,6 +54,7 @@ const PreviewHelp = () =>
react-native run-<platform>
-
; + +); export { PreviewHelp as default }; diff --git a/app/react-native/src/preview/components/OnDeviceUI/index.js b/app/react-native/src/preview/components/OnDeviceUI/index.js index a1581f195aa6..aa4fd04f6083 100644 --- a/app/react-native/src/preview/components/OnDeviceUI/index.js +++ b/app/react-native/src/preview/components/OnDeviceUI/index.js @@ -126,8 +126,8 @@ export default class OnDeviceUI extends Component { @@ -146,9 +146,9 @@ export default class OnDeviceUI extends Component { + testID="Storybook.OnDeviceUI.close" + accessibilityLabel="Storybook.OnDeviceUI.close" + > diff --git a/app/react-native/src/preview/components/StoryListView/index.js b/app/react-native/src/preview/components/StoryListView/index.js index 075fe70db237..f5904bf84773 100644 --- a/app/react-native/src/preview/components/StoryListView/index.js +++ b/app/react-native/src/preview/components/StoryListView/index.js @@ -4,19 +4,18 @@ import { ListView, View, Text, TouchableOpacity } from 'react-native'; import { MinMaxView } from 'react-native-compat'; import style from './style'; -const SectionHeader = ({ title, selected }) => +const SectionHeader = ({ title, selected }) => ( - - {title} - - ; + {title} + +); SectionHeader.propTypes = { title: PropTypes.string.isRequired, selected: PropTypes.bool.isRequired, }; -const ListItem = ({ title, selected, onPress }) => +const ListItem = ({ title, selected, onPress }) => ( testID={`Storybook.ListItem.${title}`} accessibilityLabel={`Storybook.ListItem.${title}`} > - - {title} - - ; + {title} + +); ListItem.propTypes = { title: PropTypes.string.isRequired, @@ -97,19 +95,18 @@ export default class StoryListView extends Component { + renderRow={item => ( this.changeStory(item.kind, item.name)} - />} - renderSectionHeader={(sectionData, sectionName) => - } + /> + )} + renderSectionHeader={(sectionData, sectionName) => ( + + )} dataSource={this.state.dataSource} stickySectionHeadersEnabled={false} /> diff --git a/app/react-native/src/preview/components/StoryView/index.js b/app/react-native/src/preview/components/StoryView/index.js index e4bbbc9189e5..6db708df54e8 100644 --- a/app/react-native/src/preview/components/StoryView/index.js +++ b/app/react-native/src/preview/components/StoryView/index.js @@ -24,15 +24,17 @@ export default class StoryView extends Component { renderHelp() { return ( - {this.props.url - ? - Please open the Storybook UI ( - {this.props.url} - ) with a web browser and select a story for preview. - - : - Please open the Storybook UI with a web browser and select a story for preview. - } + {this.props.url ? ( + + Please open the Storybook UI ( + {this.props.url} + ) with a web browser and select a story for preview. + + ) : ( + + Please open the Storybook UI with a web browser and select a story for preview. + + )} ); } diff --git a/app/react/src/client/preview/error_display.js b/app/react/src/client/preview/error_display.js index 18cbaab8b3cf..597aab090a15 100644 --- a/app/react/src/client/preview/error_display.js +++ b/app/react/src/client/preview/error_display.js @@ -30,17 +30,14 @@ const codeStyle = { overflow: 'auto', }; -const ErrorDisplay = ({ error }) => +const ErrorDisplay = ({ error }) => (
-
- {error.message} -
+
{error.message}
-      
-        {error.stack}
-      
+      {error.stack}
     
-
; + +); ErrorDisplay.propTypes = { error: PropTypes.shape({ diff --git a/docs/components/Breakpoint.js b/docs/components/Breakpoint.js index f0633d8757d9..40105b4cbc26 100644 --- a/docs/components/Breakpoint.js +++ b/docs/components/Breakpoint.js @@ -5,11 +5,7 @@ import './breakpoints.css'; const Breakpoint = ({ mobile, children }) => { const className = mobile ? 'breakpoint-min-width-700' : 'breakpoint-max-width-700'; - return ( -
- {children} -
- ); + return
{children}
; }; Breakpoint.propTypes = { diff --git a/docs/components/Docs/Container/index.js b/docs/components/Docs/Container/index.js index 7dd23b5afcc1..99f4275bc88b 100644 --- a/docs/components/Docs/Container/index.js +++ b/docs/components/Docs/Container/index.js @@ -12,7 +12,7 @@ const getEditUrl = (selectedSectionId, selectedItemId) => { return `${gitHubRepoUrl}/tree/master/docs/pages/${docPath}/index.md`; }; -const Container = ({ sections, selectedItem, selectedSectionId, selectedItemId }) => +const Container = ({ sections, selectedItem, selectedSectionId, selectedItemId }) => (
- ; + +); Container.propTypes = { sections: PropTypes.array, // eslint-disable-line selectedItem: PropTypes.object, // eslint-disable-line diff --git a/docs/components/Docs/Content/index.js b/docs/components/Docs/Content/index.js index 40aeda2b5a83..5858530b8600 100644 --- a/docs/components/Docs/Content/index.js +++ b/docs/components/Docs/Content/index.js @@ -5,24 +5,21 @@ import 'highlight.js/styles/github-gist.css'; import Highlight from '../../Highlight'; import './style.css'; -const DocsContent = ({ title, content, editUrl }) => +const DocsContent = ({ title, content, editUrl }) => (
-

- {title} -

+

{title}

Edit this page

- - {content} - + {content}
-
; + +); DocsContent.propTypes = { title: PropTypes.string.isRequired, diff --git a/docs/components/Docs/Nav/index.js b/docs/components/Docs/Nav/index.js index 915b594a596c..e055b32a3dcb 100644 --- a/docs/components/Docs/Nav/index.js +++ b/docs/components/Docs/Nav/index.js @@ -3,13 +3,11 @@ import PropTypes from 'prop-types'; import { Link } from 'react-router'; import './style.css'; -const Nav = ({ sections, selectedSectionId, selectedItemId }) => +const Nav = ({ sections, selectedSectionId, selectedItemId }) => ( ; + ))} + +); Nav.propTypes = { sections: PropTypes.array, // eslint-disable-line selectedSectionId: PropTypes.string.isRequired, diff --git a/docs/components/Docs/index.js b/docs/components/Docs/index.js index 2a49345c6172..df70cfc8ab00 100644 --- a/docs/components/Docs/index.js +++ b/docs/components/Docs/index.js @@ -7,7 +7,7 @@ import Container from './Container'; import Footer from '../Footer'; import './style.css'; -const Docs = ({ sections, selectedItem, selectedSectionId, selectedItemId }) => +const Docs = ({ sections, selectedItem, selectedSectionId, selectedItemId }) => (
@@ -18,7 +18,8 @@ const Docs = ({ sections, selectedItem, selectedSectionId, selectedItemId }) => selectedItemId={selectedItemId} />
-
; + +); Docs.propTypes = { sections: PropTypes.array, // eslint-disable-line selectedItem: PropTypes.object, // eslint-disable-line diff --git a/docs/components/Footer/index.js b/docs/components/Footer/index.js index 66842f49de76..fb24db9aef55 100644 --- a/docs/components/Footer/index.js +++ b/docs/components/Footer/index.js @@ -4,7 +4,7 @@ import slackIcon from './images/slack-icon.png'; import githubIcon from './images/github-icon.png'; import './style.css'; -const Footer = () => +const Footer = () => ( - ; + +); export default Footer; diff --git a/docs/components/Grid/Examples/index.js b/docs/components/Grid/Examples/index.js index 511abcd65a58..9fd017146f18 100644 --- a/docs/components/Grid/Examples/index.js +++ b/docs/components/Grid/Examples/index.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import Grid from '../Grid'; import './style.css'; -const Examples = ({ items }) => +const Examples = ({ items }) => (

Storybook Examples

@@ -17,7 +17,8 @@ const Examples = ({ items }) =>
-
; + +); Examples.propTypes = { items: PropTypes.array, // eslint-disable-line react/forbid-prop-types }; diff --git a/docs/components/Grid/Grid/index.js b/docs/components/Grid/Grid/index.js index 3c8cf942c0bf..d0693bf6f88a 100644 --- a/docs/components/Grid/Grid/index.js +++ b/docs/components/Grid/Grid/index.js @@ -5,10 +5,11 @@ import PropTypes from 'prop-types'; import StackGrid from 'react-stack-grid'; import GridItem from '../GridItem'; -const Grid = ({ items, columnWidth }) => +const Grid = ({ items, columnWidth }) => ( {items.map((item, idx) => )} - ; + +); Grid.propTypes = { items: PropTypes.array, // eslint-disable-line columnWidth: PropTypes.number, diff --git a/docs/components/Grid/GridItem/index.js b/docs/components/Grid/GridItem/index.js index 718028ac58fa..71f14c0aa233 100644 --- a/docs/components/Grid/GridItem/index.js +++ b/docs/components/Grid/GridItem/index.js @@ -8,32 +8,29 @@ const linkProps = { className: 'link', }; -const GridItem = ({ title, description, source, demo, thumbnail }) => +const GridItem = ({ title, description, source, demo, thumbnail }) => (
-

- {title} -

-

- {description} -

+

{title}

+

{description}

- {demo - ? - Demo - - : null} - {source - ? - Source - - : null} + {demo ? ( + + Demo + + ) : null} + {source ? ( + + Source + + ) : null}
-
; +
+); GridItem.propTypes = { title: PropTypes.string.isRequired, description: PropTypes.string.isRequired, diff --git a/docs/components/Homepage/Demo/index.js b/docs/components/Homepage/Demo/index.js index f546e877e1cc..e0b426a25c48 100644 --- a/docs/components/Homepage/Demo/index.js +++ b/docs/components/Homepage/Demo/index.js @@ -2,13 +2,14 @@ import React from 'react'; import demoImg from './images/demo.gif'; import './style.css'; -const Demo = () => +const Demo = () => (
-
; + +); export default Demo; diff --git a/docs/components/Homepage/Featured/index.js b/docs/components/Homepage/Featured/index.js index d10b2717c05d..0eb082bdcf2e 100644 --- a/docs/components/Homepage/Featured/index.js +++ b/docs/components/Homepage/Featured/index.js @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import './style.css'; -const Item = ({ storybook, owner, source }) => +const Item = ({ storybook, owner, source }) => ( ; + +); Item.propTypes = { storybook: PropTypes.object.isRequired, // eslint-disable-line owner: PropTypes.string.isRequired, source: PropTypes.string.isRequired, }; -const Featured = ({ featuredStorybooks }) => +const Featured = ({ featuredStorybooks }) => ( ; + +); Featured.propTypes = { featuredStorybooks: PropTypes.array, // eslint-disable-line diff --git a/docs/components/Homepage/Heading/index.js b/docs/components/Homepage/Heading/index.js index 3147efe1d866..56cc7d441b66 100644 --- a/docs/components/Homepage/Heading/index.js +++ b/docs/components/Homepage/Heading/index.js @@ -3,7 +3,7 @@ import './style.css'; import storybookLogo from '../../../design/homepage/storybook-logo.svg'; -const Heading = () => +const Heading = () => (
Storybook Logo @@ -13,6 +13,7 @@ const Heading = () => You'll β™₯️ to use
-
; + +); export default Heading; diff --git a/docs/components/Homepage/MainLinks/index.js b/docs/components/Homepage/MainLinks/index.js index 1019c1b77960..eb9c453e665d 100644 --- a/docs/components/Homepage/MainLinks/index.js +++ b/docs/components/Homepage/MainLinks/index.js @@ -3,7 +3,7 @@ import { Link } from 'react-router'; import { UsedByBg } from '../UsedBy/'; import './style.css'; -const MainLinks = () => +const MainLinks = () => ( - ; + +); export default MainLinks; diff --git a/docs/components/Homepage/Platforms/index.js b/docs/components/Homepage/Platforms/index.js index 63c5d750a252..2baf3481f576 100644 --- a/docs/components/Homepage/Platforms/index.js +++ b/docs/components/Homepage/Platforms/index.js @@ -1,7 +1,7 @@ import React from 'react'; import './style.css'; -const Platform = () => +const Platform = () => (

Built for

@@ -25,6 +25,7 @@ const Platform = () =>
-
; + +); export default Platform; diff --git a/docs/components/Homepage/UsedBy/index.jsx b/docs/components/Homepage/UsedBy/index.jsx index 1afc296c3087..84b3d73aef10 100644 --- a/docs/components/Homepage/UsedBy/index.jsx +++ b/docs/components/Homepage/UsedBy/index.jsx @@ -3,7 +3,7 @@ import React from 'react'; import { Link } from 'react-router'; import './style.css'; -export const UsedByBg = ({ color, style }) => +export const UsedByBg = ({ color, style }) => (
-
; + +); UsedByBg.propTypes = { color: PropTypes.string, // eslint-disable-next-line @@ -36,7 +37,7 @@ UsedByBg.defaultProps = { style: {}, }; -const User = ({ logo, demo, site, title }) => +const User = ({ logo, demo, site, title }) => ( rel="noopener nofollow noreferrer" > {title} - ; + +); User.propTypes = { logo: PropTypes.string.isRequired, demo: PropTypes.string, @@ -56,21 +58,20 @@ User.defaultProps = { title: '', }; -const UsedBy = ({ users }) => +const UsedBy = ({ users }) => (

Used by these fine folks:

-
- {users.map(user => )} -
+
{users.map(user => )}
See more examples…
-
; + +); UsedBy.propTypes = { users: PropTypes.array, // eslint-disable-line }; diff --git a/docs/components/Homepage/index.js b/docs/components/Homepage/index.js index 0c7041892772..3fa8bd94a280 100644 --- a/docs/components/Homepage/index.js +++ b/docs/components/Homepage/index.js @@ -40,7 +40,7 @@ import Footer from '../Footer'; // }, // ]; -const Homepage = ({ users }) => +const Homepage = ({ users }) => (
{/*
*/} @@ -51,7 +51,8 @@ const Homepage = ({ users }) => {/* */}
-
; + +); Homepage.propTypes = { featuredStorybooks: PropTypes.array, // eslint-disable-line diff --git a/docs/html.js b/docs/html.js index 2b691dc88120..38b1ed3f1a1e 100644 --- a/docs/html.js +++ b/docs/html.js @@ -41,9 +41,7 @@ const HTML = props => { - - {title} - + {title} {css} diff --git a/docs/pages/_template.jsx b/docs/pages/_template.jsx index 6dd1ff23457e..e11dbc92bfb5 100644 --- a/docs/pages/_template.jsx +++ b/docs/pages/_template.jsx @@ -13,7 +13,7 @@ import 'bootstrap/dist/css/bootstrap.css'; import '../css/main.css'; import '../css/github.css'; -const PageTemplate = ({ children }) => +const PageTemplate = ({ children }) => (
{children} -
; + +); PageTemplate.propTypes = { children: PropTypes.object, // eslint-disable-line diff --git a/docs/utils/colors.js b/docs/utils/colors.js index 5d991514a222..482e55dfe015 100644 --- a/docs/utils/colors.js +++ b/docs/utils/colors.js @@ -7,7 +7,9 @@ export const colors = colorPairsPicker(config.baseColor, { contrast: 5.5, }); -const darker = chroma(config.baseColor).darken(10).hex(); +const darker = chroma(config.baseColor) + .darken(10) + .hex(); export const activeColors = colorPairsPicker(darker, { contrast: 7, }); diff --git a/docs/wrappers/md.jsx b/docs/wrappers/md.jsx index 7cc8b5e65002..0fd2fb3bce08 100644 --- a/docs/wrappers/md.jsx +++ b/docs/wrappers/md.jsx @@ -10,9 +10,7 @@ const Markdown = ({ route }) => { return (
-

- {post.title} -

+

{post.title}

Edit this page diff --git a/examples/cra-kitchen-sink/src/App.js b/examples/cra-kitchen-sink/src/App.js index 74635391da60..2c49d780e9a9 100644 --- a/examples/cra-kitchen-sink/src/App.js +++ b/examples/cra-kitchen-sink/src/App.js @@ -2,7 +2,7 @@ import React from 'react'; import logo from './logo.svg'; import './App.css'; -const App = () => +const App = () => (

+); export default App; diff --git a/examples/cra-kitchen-sink/src/components/DocgenButton.js b/examples/cra-kitchen-sink/src/components/DocgenButton.js index 20e997d58eb1..a5309bd322d7 100644 --- a/examples/cra-kitchen-sink/src/components/DocgenButton.js +++ b/examples/cra-kitchen-sink/src/components/DocgenButton.js @@ -2,10 +2,11 @@ import React from 'react'; import PropTypes from 'prop-types'; /** Button component description */ -const DocgenButton = ({ disabled, label, onClick }) => +const DocgenButton = ({ disabled, label, onClick }) => ( ; + +); DocgenButton.defaultProps = { disabled: false, diff --git a/examples/cra-kitchen-sink/src/components/FlowTypeButton.js b/examples/cra-kitchen-sink/src/components/FlowTypeButton.js index 3ef725f86de1..d008dec3a755 100644 --- a/examples/cra-kitchen-sink/src/components/FlowTypeButton.js +++ b/examples/cra-kitchen-sink/src/components/FlowTypeButton.js @@ -11,10 +11,11 @@ type PropsType = { }; /** Flow type button description */ -const FlowTypeButton = ({ label, onClick, disabled }: PropsType) => +const FlowTypeButton = ({ label, onClick, disabled }: PropsType) => ( ; + +); FlowTypeButton.defaultProps = { disabled: false, diff --git a/examples/cra-kitchen-sink/src/stories/Logger.js b/examples/cra-kitchen-sink/src/stories/Logger.js index ec3bfaa8cee0..5078018c7966 100644 --- a/examples/cra-kitchen-sink/src/stories/Logger.js +++ b/examples/cra-kitchen-sink/src/stories/Logger.js @@ -58,7 +58,7 @@ export default class Logger extends Component {

Logger

- {events.map(({ id, name, payload }) => + {events.map(({ id, name, payload }) => (
Event name: {name} @@ -67,7 +67,7 @@ export default class Logger extends Component { Event payload: {json.plain(payload)}
- )} + ))}
); diff --git a/examples/cra-kitchen-sink/src/stories/storybook-components.js b/examples/cra-kitchen-sink/src/stories/storybook-components.js index a74e0e965266..dfca633211f4 100644 --- a/examples/cra-kitchen-sink/src/stories/storybook-components.js +++ b/examples/cra-kitchen-sink/src/stories/storybook-components.js @@ -11,16 +11,16 @@ import { baseFonts, RoutedLink, MenuLink } from '@storybook/components'; css.global('body', baseFonts); storiesOf('Navigation', module) - .add('Routed link', () => + .add('Routed link', () => ( Try clicking with different mouse buttons and modifier keys (shift/ctrl/alt/cmd) - ) + )) .addDecorator(withKnobs) - .add('Menu link', () => + .add('Menu link', () => (
{text('Text', 'Menu link item')}
- ); + )); diff --git a/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js b/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js index 44d99c37f12b..767da77a264c 100644 --- a/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js +++ b/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js @@ -4,9 +4,7 @@ import { TouchableNativeFeedback } from 'react-native'; export default function Button(props) { return ( - - {props.children} - + {props.children} ); } diff --git a/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js b/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js index a20a7685b2d5..ad76aec50e30 100644 --- a/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js +++ b/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js @@ -3,11 +3,7 @@ import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; export default function Button(props) { - return ( - - {props.children} - - ); + return {props.children}; } Button.defaultProps = { diff --git a/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js b/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js index d4e042e505b0..8fa23359ed88 100644 --- a/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js +++ b/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js @@ -4,11 +4,7 @@ import { View } from 'react-native'; import style from './style'; export default function CenterView(props) { - return ( - - {props.children} - - ); + return {props.children}; } CenterView.defaultProps = { diff --git a/examples/react-native-vanilla/storybook/stories/Button/index.android.js b/examples/react-native-vanilla/storybook/stories/Button/index.android.js index 44d99c37f12b..767da77a264c 100644 --- a/examples/react-native-vanilla/storybook/stories/Button/index.android.js +++ b/examples/react-native-vanilla/storybook/stories/Button/index.android.js @@ -4,9 +4,7 @@ import { TouchableNativeFeedback } from 'react-native'; export default function Button(props) { return ( - - {props.children} - + {props.children} ); } diff --git a/examples/react-native-vanilla/storybook/stories/Button/index.ios.js b/examples/react-native-vanilla/storybook/stories/Button/index.ios.js index a20a7685b2d5..ad76aec50e30 100644 --- a/examples/react-native-vanilla/storybook/stories/Button/index.ios.js +++ b/examples/react-native-vanilla/storybook/stories/Button/index.ios.js @@ -3,11 +3,7 @@ import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; export default function Button(props) { - return ( - - {props.children} - - ); + return {props.children}; } Button.defaultProps = { diff --git a/examples/react-native-vanilla/storybook/stories/CenterView/index.js b/examples/react-native-vanilla/storybook/stories/CenterView/index.js index d4e042e505b0..8fa23359ed88 100644 --- a/examples/react-native-vanilla/storybook/stories/CenterView/index.js +++ b/examples/react-native-vanilla/storybook/stories/CenterView/index.js @@ -4,11 +4,7 @@ import { View } from 'react-native'; import style from './style'; export default function CenterView(props) { - return ( - - {props.children} - - ); + return {props.children}; } CenterView.defaultProps = { diff --git a/lib/addons/src/index.js b/lib/addons/src/index.js index a669b37dd5e3..548103c170c8 100644 --- a/lib/addons/src/index.js +++ b/lib/addons/src/index.js @@ -51,7 +51,9 @@ export class AddonStore { } loadAddons(api) { - Object.keys(this.loaders).map(name => this.loaders[name]).forEach(loader => loader(api)); + Object.keys(this.loaders) + .map(name => this.loaders[name]) + .forEach(loader => loader(api)); } } diff --git a/lib/channel-postmessage/src/index.js b/lib/channel-postmessage/src/index.js index 47e3d5818764..2395164de92b 100644 --- a/lib/channel-postmessage/src/index.js +++ b/lib/channel-postmessage/src/index.js @@ -39,7 +39,9 @@ export class PostmsgTransport { const buffer = this._buffer; this._buffer = []; buffer.forEach(item => { - this.send(item.event).then(item.resolve).catch(item.reject); + this.send(item.event) + .then(item.resolve) + .catch(item.reject); }); } diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js index 44d99c37f12b..767da77a264c 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js @@ -4,9 +4,7 @@ import { TouchableNativeFeedback } from 'react-native'; export default function Button(props) { return ( - - {props.children} - + {props.children} ); } diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js index a20a7685b2d5..ad76aec50e30 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js @@ -3,11 +3,7 @@ import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; export default function Button(props) { - return ( - - {props.children} - - ); + return {props.children}; } Button.defaultProps = { diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js index d4e042e505b0..8fa23359ed88 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js @@ -4,11 +4,7 @@ import { View } from 'react-native'; import style from './style'; export default function CenterView(props) { - return ( - - {props.children} - - ); + return {props.children}; } CenterView.defaultProps = { diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js index 99ab2205a9d0..63f1a6266717 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js @@ -12,18 +12,14 @@ import Welcome from './Welcome'; storiesOf('Welcome', module).add('to Storybook', () => ); storiesOf('Button', module) - .addDecorator(getStory => - - {getStory()} - - ) - .add('with text', () => + .addDecorator(getStory => {getStory()}) + .add('with text', () => ( - ) - .add('with some emoji', () => + )) + .add('with some emoji', () => ( - ); + )); diff --git a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.android.js b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.android.js index 178e9ba70878..5888d5d18806 100644 --- a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.android.js +++ b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.android.js @@ -2,10 +2,9 @@ import React from 'react'; import PropTypes from 'prop-types'; import { TouchableNativeFeedback } from 'react-native'; -const Button = props => - - {props.children} - ; +const Button = props => ( + {props.children} +); Button.propTypes = { children: PropTypes.node.isRequired, diff --git a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.ios.js b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.ios.js index fb647e78a82c..4e6dcd4772c3 100644 --- a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.ios.js +++ b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/Button/index.ios.js @@ -2,10 +2,9 @@ import React from 'react'; import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; -const Button = props => - - {props.children} - ; +const Button = props => ( + {props.children} +); Button.propTypes = { children: PropTypes.node.isRequired, diff --git a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/CenterView/index.js b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/CenterView/index.js index 93c04ff6e8cf..586827e64d05 100644 --- a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/CenterView/index.js +++ b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/CenterView/index.js @@ -3,10 +3,7 @@ import PropTypes from 'prop-types'; import { View } from 'react-native'; import style from './style'; -const CenterView = props => - - {props.children} - ; +const CenterView = props => {props.children}; CenterView.propTypes = { children: PropTypes.node.isRequired, diff --git a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/index.js b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/index.js index 99ab2205a9d0..63f1a6266717 100644 --- a/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/index.js +++ b/lib/cli/generators/REACT_NATIVE_SCRIPTS/template/storybook/stories/index.js @@ -12,18 +12,14 @@ import Welcome from './Welcome'; storiesOf('Welcome', module).add('to Storybook', () => ); storiesOf('Button', module) - .addDecorator(getStory => - - {getStory()} - - ) - .add('with text', () => + .addDecorator(getStory => {getStory()}) + .add('with text', () => ( - ) - .add('with some emoji', () => + )) + .add('with some emoji', () => ( - ); + )); diff --git a/lib/cli/lib/helpers.js b/lib/cli/lib/helpers.js index 590d035a4ef4..0288cd9185be 100644 --- a/lib/cli/lib/helpers.js +++ b/lib/cli/lib/helpers.js @@ -31,7 +31,10 @@ exports.commandLog = function commandLog(message) { if (!errorInfo) return; - const newErrorInfo = errorInfo.split('\n').map(line => ` ${chalk.dim(line)}`).join('\n'); + const newErrorInfo = errorInfo + .split('\n') + .map(line => ` ${chalk.dim(line)}`) + .join('\n'); logger.error(`${newErrorInfo}\n`); return; } @@ -43,7 +46,10 @@ exports.commandLog = function commandLog(message) { }; exports.paddedLog = function paddedLog(message) { - const newMessage = message.split('\n').map(line => ` ${line}`).join('\n'); + const newMessage = message + .split('\n') + .map(line => ` ${line}`) + .join('\n'); logger.log(newMessage); }; diff --git a/lib/components/src/navigation/routed_link.js b/lib/components/src/navigation/routed_link.js index 53840700d8c9..eab73e97f724 100644 --- a/lib/components/src/navigation/routed_link.js +++ b/lib/components/src/navigation/routed_link.js @@ -24,11 +24,7 @@ export default class RoutedLink extends React.Component { const { onClick } = this; const { href, children, ...rest } = this.props; const props = { href, ...rest, onClick }; - return ( -
- {children} - - ); + return {children}; } } diff --git a/lib/ui/example/client/provider.js b/lib/ui/example/client/provider.js index 39792120dbe1..e19f17b97266 100644 --- a/lib/ui/example/client/provider.js +++ b/lib/ui/example/client/provider.js @@ -32,9 +32,11 @@ export default class ReactProvider extends Provider { inp = i; }} value={ - this.api.getQueryParam('text') === undefined - ? 'ONE' - : this.api.getQueryParam('text') + this.api.getQueryParam('text') === undefined ? ( + 'ONE' + ) : ( + this.api.getQueryParam('text') + ) } onChange={() => { this.api.setQueryParams({ text: inp.value }); diff --git a/package.json b/package.json index 5ecf6eeae713..5842c2359254 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "jest": "^21.0.1", "jest-enzyme": "^3.8.2", "lerna": "^2.1.2", - "lint-staged": "^4.1.0", + "lint-staged": "^4.1.2", "lodash": "^4.17.4", "nodemon": "^1.12.0", "npmlog": "^4.1.2", diff --git a/scripts/test.js b/scripts/test.js index 45bf3b9c4242..50e92484f754 100755 --- a/scripts/test.js +++ b/scripts/test.js @@ -9,10 +9,8 @@ log.heading = 'storybook'; const prefix = 'test'; log.addLevel('aborted', 3001, { fg: 'red', bold: true }); - const spawn = command => { const out = childProcess.spawnSync(`${command}`, { - shell: true, stdio: 'inherit', }); From ba29bb50eab9cd8f797c5d57648297f8f7b1c1a7 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 6 Sep 2017 13:28:00 -0700 Subject: [PATCH 103/107] 3.3.0-alpha.0 changelog --- CHANGELOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c295b2c5b0..88da17fe72bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,53 @@ +# 3.3.0-alpha.0 + +2017-September-06 + +#### Features + +- Viewport addon: simulate device sizes in preview window [#1753](https://github.com/storybooks/storybook/pull/1753) +- CLI: Add codemod for deprecated addon-links and addon-actions from app [#1368](https://github.com/storybooks/storybook/pull/1368) +- Info addon: More detailed props table [#1485](https://github.com/storybooks/storybook/pull/1485) +- React native: Add accessibility labels to OnDeviceUI [#1780](https://github.com/storybooks/storybook/pull/1780) +- Stories panel: Stories on each hierarchy level [#1763](https://github.com/storybooks/storybook/pull/1763) +- Storyshots: Generate snapshot per story file [#1584](https://github.com/storybooks/storybook/pull/1584) +- CLI: Add support for Vue projects using Nuxt [#1794](https://github.com/storybooks/storybook/pull/1794) + +#### Bug Fixes + +- Import chunks/assets in correct order using HtmlWebpackPlugin [#1775](https://github.com/storybooks/storybook/pull/1775) +- Fix preview scrolling [#1782](https://github.com/storybooks/storybook/pull/1782) +- Height aligned 2 buttons in manager's header [#1769](https://github.com/storybooks/storybook/pull/1769) +- Search box: make found options selectable with click [#1697](https://github.com/storybooks/storybook/pull/1697) +- Info addon: Fix Docgen in static builds [#1725](https://github.com/storybooks/storybook/pull/1725) + +#### Documentation + +- Improve linkTo documentation [#1793](https://github.com/storybooks/storybook/pull/1793) +- Add carbon to examples page [#1764](https://github.com/storybooks/storybook/pull/1764) +- Minor grammar fixes and clarification to Vue documentation [#1756](https://github.com/storybooks/storybook/pull/1756) +- Fix incorrect yarn command in docs [#1758](https://github.com/storybooks/storybook/pull/1758) +- Add storybook-chrome-screenshot to addon gallery [#1761](https://github.com/storybooks/storybook/pull/1761) +- Fixing typo on VueJS withNotes Example [#1787](https://github.com/storybooks/storybook/pull/1787) + +#### Maintenance + +- Knobs: allow arrays in object knob proptypes [#1701](https://github.com/storybooks/storybook/pull/1701) +- Deprecate confusing option names [#1692](https://github.com/storybooks/storybook/pull/1692) +- A CLI for running specific tests suites, like bootstrap CLI [#1752](https://github.com/storybooks/storybook/pull/1752) +- Remove check for sender on channel. [#1407](https://github.com/storybooks/storybook/pull/1407) +- Use yarn instead of NPM [#1703](https://github.com/storybooks/storybook/pull/1703) +- Add config for dependencies.io [#1770](https://github.com/storybooks/storybook/pull/1770) +- Added addon-knobs to crna and vanilla react native. [#1636](https://github.com/storybooks/storybook/pull/1636) +- Fixed Jest warnings [#1744](https://github.com/storybooks/storybook/pull/1744) +- Smoke test master [#1801](https://github.com/storybooks/storybook/pull/1801) + +#### Dependency Upgrades + +- Upgrade root dependencies and sync with packages [#1802](https://github.com/storybooks/storybook/pull/1802) +- Update jest to the latest version πŸš€ [#1799](https://github.com/storybooks/storybook/pull/1799) +- Update eslint-plugin-jest to the latest version πŸš€ [#1795](https://github.com/storybooks/storybook/pull/1795) +- Update lerna to the latest version πŸš€ [#1768](https://github.com/storybooks/storybook/pull/1768) + # 3.2.9 2017-August-26 From 94723262d9e51fe2a59cc5d49b3ab85c49aee6f7 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 6 Sep 2017 13:46:17 -0700 Subject: [PATCH 104/107] v3.3.0-alpha.0 --- addons/actions/package.json | 4 ++-- addons/centered/package.json | 2 +- addons/comments/package.json | 8 ++++---- addons/events/package.json | 4 ++-- addons/graphql/package.json | 2 +- addons/info/package.json | 6 +++--- addons/knobs/package.json | 4 ++-- addons/links/package.json | 4 ++-- addons/notes/package.json | 4 ++-- addons/options/package.json | 4 ++-- addons/storyshots/package.json | 20 ++++++++++---------- addons/viewport/package.json | 4 ++-- app/react-native/package.json | 12 ++++++------ app/react/package.json | 12 ++++++------ app/vue/package.json | 12 ++++++------ lerna.json | 2 +- lib/addons/package.json | 2 +- lib/channel-postmessage/package.json | 4 ++-- lib/channel-websocket/package.json | 4 ++-- lib/channels/package.json | 2 +- lib/cli/package.json | 4 ++-- lib/codemod/package.json | 2 +- lib/components/package.json | 2 +- lib/ui/package.json | 4 ++-- 24 files changed, 64 insertions(+), 64 deletions(-) diff --git a/addons/actions/package.json b/addons/actions/package.json index d96165ba80e8..2b2ada65acbd 100644 --- a/addons/actions/package.json +++ b/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "Action Logger addon for storybook", "keywords": [ "storybook" @@ -21,7 +21,7 @@ "storybook": "start-storybook -p 9001" }, "dependencies": { - "@storybook/addons": "^3.2.6", + "@storybook/addons": "^3.3.0-alpha.0", "deep-equal": "^1.0.1", "json-stringify-safe": "^5.0.1", "prop-types": "^15.5.10", diff --git a/addons/centered/package.json b/addons/centered/package.json index 1dadfdb05754..93a13404fdeb 100644 --- a/addons/centered/package.json +++ b/addons/centered/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-centered", - "version": "3.2.7", + "version": "3.3.0-alpha.0", "description": "Storybook decorator to center components", "license": "MIT", "author": "Muhammed Thanish ", diff --git a/addons/comments/package.json b/addons/comments/package.json index 6afc7d279478..fcbdff9ffc16 100644 --- a/addons/comments/package.json +++ b/addons/comments/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-comments", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "Comments addon for Storybook", "keywords": [ "storybook" @@ -23,7 +23,7 @@ "storybook-remote": "start-storybook -p 3006" }, "dependencies": { - "@storybook/addons": "^3.2.6", + "@storybook/addons": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "deep-equal": "^1.0.1", "events": "^1.1.1", @@ -38,8 +38,8 @@ "devDependencies": { "@kadira/storybook-database-cloud": "*", "@kadira/storybook-deployer": "*", - "@storybook/addon-actions": "^3.2.0", - "@storybook/react": "^3.2.8", + "@storybook/addon-actions": "^3.3.0-alpha.0", + "@storybook/react": "^3.3.0-alpha.0", "git-url-parse": "^6.2.2", "react": "^15.6.1", "react-dom": "^15.6.1", diff --git a/addons/events/package.json b/addons/events/package.json index be2eec649001..591c5537e6e0 100644 --- a/addons/events/package.json +++ b/addons/events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-events", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "Add events to your Storybook stories.", "keywords": [ "addon", @@ -20,7 +20,7 @@ "storybook": "start-storybook -p 6006" }, "dependencies": { - "@storybook/addons": "^3.2.6", + "@storybook/addons": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "format-json": "^1.0.3", "prop-types": "^15.5.10", diff --git a/addons/graphql/package.json b/addons/graphql/package.json index 2982d0049ddb..8a471e2b501a 100644 --- a/addons/graphql/package.json +++ b/addons/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-graphql", - "version": "3.2.0", + "version": "3.3.0-alpha.0", "description": "Storybook addon to display the GraphiQL IDE", "keywords": [ "storybook" diff --git a/addons/info/package.json b/addons/info/package.json index 2c42615e0fe4..51fcfa1813a5 100644 --- a/addons/info/package.json +++ b/addons/info/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-info", - "version": "3.2.9", + "version": "3.3.0-alpha.0", "description": "A Storybook addon to show additional information for your stories.", "license": "MIT", "main": "dist/index.js", @@ -14,8 +14,8 @@ "storybook": "start-storybook -p 9010" }, "dependencies": { - "@storybook/addons": "^3.2.6", - "@storybook/components": "^3.2.7", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/components": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "global": "^4.3.2", "marksy": "^2.0.0", diff --git a/addons/knobs/package.json b/addons/knobs/package.json index 0e31a7883940..88ff3d33ccdb 100644 --- a/addons/knobs/package.json +++ b/addons/knobs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-knobs", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "Storybook Addon Prop Editor Component", "license": "MIT", "main": "dist/index.js", @@ -15,7 +15,7 @@ "storybook": "start-storybook -p 9010" }, "dependencies": { - "@storybook/addons": "^3.2.6", + "@storybook/addons": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "deep-equal": "^1.0.1", "global": "^4.3.2", diff --git a/addons/links/package.json b/addons/links/package.json index eda165ac448d..1d570779dfa4 100644 --- a/addons/links/package.json +++ b/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "Story Links addon for storybook", "keywords": [ "storybook" @@ -21,7 +21,7 @@ "storybook": "start-storybook -p 9001" }, "dependencies": { - "@storybook/addons": "^3.2.6" + "@storybook/addons": "^3.3.0-alpha.0" }, "devDependencies": { "react": "^15.6.1", diff --git a/addons/notes/package.json b/addons/notes/package.json index 2168fa24fae9..e4b47131d309 100644 --- a/addons/notes/package.json +++ b/addons/notes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-notes", - "version": "3.2.7", + "version": "3.3.0-alpha.0", "description": "Write notes for your Storybook stories.", "keywords": [ "addon", @@ -19,7 +19,7 @@ "storybook": "start-storybook -p 9010" }, "dependencies": { - "@storybook/addons": "^3.2.6", + "@storybook/addons": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "prop-types": "^15.5.10", "util-deprecate": "^1.0.2" diff --git a/addons/options/package.json b/addons/options/package.json index 09508f8c2663..3d8711b1075f 100644 --- a/addons/options/package.json +++ b/addons/options/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-options", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "Options addon for storybook", "keywords": [ "storybook" @@ -20,7 +20,7 @@ "storybook": "start-storybook -p 9001" }, "dependencies": { - "@storybook/addons": "^3.2.6" + "@storybook/addons": "^3.3.0-alpha.0" }, "devDependencies": { "react": "^15.6.1", diff --git a/addons/storyshots/package.json b/addons/storyshots/package.json index 958c5878e553..8bbddf72235d 100644 --- a/addons/storyshots/package.json +++ b/addons/storyshots/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "StoryShots is a Jest Snapshot Testing Addon for Storybook.", "license": "MIT", "main": "dist/index.js", @@ -23,23 +23,23 @@ "read-pkg-up": "^2.0.0" }, "devDependencies": { - "@storybook/addons": "^3.2.6", - "@storybook/channels": "^3.2.0", - "@storybook/react": "^3.2.8", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/channels": "^3.3.0-alpha.0", + "@storybook/react": "^3.3.0-alpha.0", "babel-cli": "^6.26.0", "babel-jest": "^20.0.3", "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-env": "^1.6.0", "babel-preset-react": "^6.24.1", - "react": "^15.6.1", - "react-dom": "^15.6.1", "jest": "^20.0.4", - "jest-cli": "^20.0.4" + "jest-cli": "^20.0.4", + "react": "^15.6.1", + "react-dom": "^15.6.1" }, "peerDependencies": { - "@storybook/addons": "^3.2.6", - "@storybook/channels": "^3.2.0", - "@storybook/react": "^3.2.8", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/channels": "^3.3.0-alpha.0", + "@storybook/react": "^3.3.0-alpha.0", "babel-core": "^6.26.0", "react": "*", "react-test-renderer": "*" diff --git a/addons/viewport/package.json b/addons/viewport/package.json index 38b9d8fa35f2..7ad3170f32c5 100644 --- a/addons/viewport/package.json +++ b/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "3.2.0", + "version": "3.3.0-alpha.0", "description": "Storybook addon to change the viewport size to mobile", "main": "dist/index.js", "keywords": [ @@ -11,7 +11,7 @@ }, "license": "MIT", "dependencies": { - "@storybook/components": "^3.2.7", + "@storybook/components": "^3.3.0-alpha.0", "global": "^4.3.2", "prop-types": "^15.5.10" }, diff --git a/app/react-native/package.json b/app/react-native/package.json index 5716932f1b31..858181a9c505 100644 --- a/app/react-native/package.json +++ b/app/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-native", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "A better way to develop React Native Components for your app", "keywords": [ "react", @@ -24,11 +24,11 @@ "prepublish": "node ../../scripts/prepublish.js" }, "dependencies": { - "@storybook/addon-actions": "^3.2.6", - "@storybook/addon-links": "^3.2.6", - "@storybook/addons": "^3.2.6", - "@storybook/channel-websocket": "^3.2.0", - "@storybook/ui": "^3.2.7", + "@storybook/addon-actions": "^3.3.0-alpha.0", + "@storybook/addon-links": "^3.3.0-alpha.0", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/channel-websocket": "^3.3.0-alpha.0", + "@storybook/ui": "^3.3.0-alpha.0", "autoprefixer": "^7.1.1", "babel-core": "^6.26.0", "babel-loader": "^7.0.0", diff --git a/app/react/package.json b/app/react/package.json index af55142edbb0..6c30d5357e3b 100644 --- a/app/react/package.json +++ b/app/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybooks/storybook/tree/master/apps/react", "bugs": { @@ -22,11 +22,11 @@ "prepublish": "node ../../scripts/prepublish.js" }, "dependencies": { - "@storybook/addon-actions": "^3.2.6", - "@storybook/addon-links": "^3.2.6", - "@storybook/addons": "^3.2.6", - "@storybook/channel-postmessage": "^3.2.0", - "@storybook/ui": "^3.2.7", + "@storybook/addon-actions": "^3.3.0-alpha.0", + "@storybook/addon-links": "^3.3.0-alpha.0", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/channel-postmessage": "^3.3.0-alpha.0", + "@storybook/ui": "^3.3.0-alpha.0", "airbnb-js-shims": "^1.1.1", "autoprefixer": "^7.1.1", "babel-core": "^6.26.0", diff --git a/app/vue/package.json b/app/vue/package.json index 006c18c5374d..7af1d7d982bd 100644 --- a/app/vue/package.json +++ b/app/vue/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue", - "version": "3.2.8", + "version": "3.3.0-alpha.0", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybooks/storybook/tree/master/apps/vue", "bugs": { @@ -22,11 +22,11 @@ "prepublish": "node ../../scripts/prepublish.js" }, "dependencies": { - "@storybook/addon-actions": "^3.2.6", - "@storybook/addon-links": "^3.2.6", - "@storybook/addons": "^3.2.6", - "@storybook/channel-postmessage": "^3.2.0", - "@storybook/ui": "^3.2.7", + "@storybook/addon-actions": "^3.3.0-alpha.0", + "@storybook/addon-links": "^3.3.0-alpha.0", + "@storybook/addons": "^3.3.0-alpha.0", + "@storybook/channel-postmessage": "^3.3.0-alpha.0", + "@storybook/ui": "^3.3.0-alpha.0", "airbnb-js-shims": "^1.1.1", "autoprefixer": "^7.1.1", "babel-core": "^6.26.0", diff --git a/lerna.json b/lerna.json index f152558da781..9b1256fe6ca8 100644 --- a/lerna.json +++ b/lerna.json @@ -23,5 +23,5 @@ "examples/*" ], "concurrency": 1, - "version": "3.2.9" + "version": "3.3.0-alpha.0" } diff --git a/lib/addons/package.json b/lib/addons/package.json index 822d37c06412..cc1781b1886c 100644 --- a/lib/addons/package.json +++ b/lib/addons/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addons", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "Storybook addons store", "keywords": [ "storybook" diff --git a/lib/channel-postmessage/package.json b/lib/channel-postmessage/package.json index f82c584ad711..241a688b1fc7 100644 --- a/lib/channel-postmessage/package.json +++ b/lib/channel-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-postmessage", - "version": "3.2.0", + "version": "3.3.0-alpha.0", "description": "", "license": "MIT", "main": "dist/index.js", @@ -8,7 +8,7 @@ "prepublish": "node ../../scripts/prepublish.js" }, "dependencies": { - "@storybook/channels": "^3.2.0", + "@storybook/channels": "^3.3.0-alpha.0", "global": "^4.3.2", "json-stringify-safe": "^5.0.1" }, diff --git a/lib/channel-websocket/package.json b/lib/channel-websocket/package.json index 1139dd19de40..ebd4f0a86d07 100644 --- a/lib/channel-websocket/package.json +++ b/lib/channel-websocket/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-websocket", - "version": "3.2.0", + "version": "3.3.0-alpha.0", "description": "", "license": "MIT", "main": "dist/index.js", @@ -8,7 +8,7 @@ "prepublish": "node ../../scripts/prepublish.js" }, "dependencies": { - "@storybook/channels": "^3.2.0", + "@storybook/channels": "^3.3.0-alpha.0", "global": "^4.3.2" }, "devDependencies": { diff --git a/lib/channels/package.json b/lib/channels/package.json index eb6ab8db2002..1aa502d3ec98 100644 --- a/lib/channels/package.json +++ b/lib/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "3.2.0", + "version": "3.3.0-alpha.0", "description": "", "license": "MIT", "main": "dist/index.js", diff --git a/lib/cli/package.json b/lib/cli/package.json index ffcb0816360b..c87e5c20f922 100644 --- a/lib/cli/package.json +++ b/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "3.2.9", + "version": "3.3.0-alpha.0", "description": "Storybook's CLI - easiest method of adding storybook to your projects", "keywords": [ "cli", @@ -24,7 +24,7 @@ "postinstall": "opencollective postinstall --collective=storybook" }, "dependencies": { - "@storybook/codemod": "^3.2.6", + "@storybook/codemod": "^3.3.0-alpha.0", "chalk": "^2.1.0", "child-process-promise": "^2.2.1", "commander": "^2.11.0", diff --git a/lib/codemod/package.json b/lib/codemod/package.json index 1c9d283f7526..62472814a8bc 100644 --- a/lib/codemod/package.json +++ b/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "3.2.6", + "version": "3.3.0-alpha.0", "description": "A collection of codemod scripts written with JSCodeshift", "license": "MIT", "main": "dist/index.js", diff --git a/lib/components/package.json b/lib/components/package.json index f7c19f43cba1..7fe22510b535 100644 --- a/lib/components/package.json +++ b/lib/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "3.2.7", + "version": "3.3.0-alpha.0", "description": "Core Storybook Components", "license": "MIT", "main": "dist/index.js", diff --git a/lib/ui/package.json b/lib/ui/package.json index 40176cdad273..09ed3bdc2ad7 100644 --- a/lib/ui/package.json +++ b/lib/ui/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ui", - "version": "3.2.7", + "version": "3.3.0-alpha.0", "description": "Core Storybook UI", "license": "MIT", "main": "dist/index.js", @@ -15,7 +15,7 @@ }, "dependencies": { "@hypnosphi/fuse.js": "^3.0.9", - "@storybook/components": "^3.2.7", + "@storybook/components": "^3.3.0-alpha.0", "babel-runtime": "^6.23.0", "deep-equal": "^1.0.1", "events": "^1.1.1", From c9c59be40b76c17e3fab74c028baa27abb0e514d Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 6 Sep 2017 14:10:46 -0700 Subject: [PATCH 105/107] Update examples package versions to match alpha release Also tweaks to CHANGELOG --- CHANGELOG.md | 2 +- examples/cra-kitchen-sink/package.json | 26 ++--- examples/vue-kitchen-sink/package.json | 16 ++-- yarn.lock | 125 ++++++++++++++++++++----- 4 files changed, 123 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88da17fe72bf..ddf72125bcc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - Height aligned 2 buttons in manager's header [#1769](https://github.com/storybooks/storybook/pull/1769) - Search box: make found options selectable with click [#1697](https://github.com/storybooks/storybook/pull/1697) - Info addon: Fix Docgen in static builds [#1725](https://github.com/storybooks/storybook/pull/1725) +- Knobs: allow arrays in object knob proptypes [#1701](https://github.com/storybooks/storybook/pull/1701) #### Documentation @@ -31,7 +32,6 @@ #### Maintenance -- Knobs: allow arrays in object knob proptypes [#1701](https://github.com/storybooks/storybook/pull/1701) - Deprecate confusing option names [#1692](https://github.com/storybooks/storybook/pull/1692) - A CLI for running specific tests suites, like bootstrap CLI [#1752](https://github.com/storybooks/storybook/pull/1752) - Remove check for sender on channel. [#1407](https://github.com/storybooks/storybook/pull/1407) diff --git a/examples/cra-kitchen-sink/package.json b/examples/cra-kitchen-sink/package.json index 1f8cfb4cbc32..679fe784c221 100644 --- a/examples/cra-kitchen-sink/package.json +++ b/examples/cra-kitchen-sink/package.json @@ -21,19 +21,19 @@ "uuid": "^3.1.0" }, "devDependencies": { - "@storybook/addon-actions": "^3.2.0", - "@storybook/addon-centered": "^3.2.0", - "@storybook/addon-events": "^3.2.0", - "@storybook/addon-knobs": "^3.2.0", - "@storybook/addon-info": "^3.2.0", - "@storybook/addon-links": "^3.2.0", - "@storybook/addon-notes": "^3.2.0", - "@storybook/addon-options": "^3.2.0", - "@storybook/addon-storyshots": "^3.2.0", - "@storybook/addon-viewport": "^3.2.0", - "@storybook/addons": "^3.2.0", - "@storybook/components": "^3.2.0", - "@storybook/react": "^3.2.0", + "@storybook/addon-actions": "3.3.0-alpha.0", + "@storybook/addon-centered": "3.3.0-alpha.0", + "@storybook/addon-events": "3.3.0-alpha.0", + "@storybook/addon-knobs": "3.3.0-alpha.0", + "@storybook/addon-info": "3.3.0-alpha.0", + "@storybook/addon-links": "3.3.0-alpha.0", + "@storybook/addon-notes": "3.3.0-alpha.0", + "@storybook/addon-options": "3.3.0-alpha.0", + "@storybook/addon-storyshots": "3.3.0-alpha.0", + "@storybook/addon-viewport": "3.3.0-alpha.0", + "@storybook/addons": "3.3.0-alpha.0", + "@storybook/components": "3.3.0-alpha.0", + "@storybook/react": "3.3.0-alpha.0", "react-scripts": "1.0.1" }, "private": true diff --git a/examples/vue-kitchen-sink/package.json b/examples/vue-kitchen-sink/package.json index de4973ac6953..9cb5d6349940 100644 --- a/examples/vue-kitchen-sink/package.json +++ b/examples/vue-kitchen-sink/package.json @@ -3,14 +3,14 @@ "version": "0.1.0", "private": true, "devDependencies": { - "@storybook/vue": "^3.2.0", - "@storybook/addon-actions": "^3.2.0", - "@storybook/addon-links": "^3.2.0", - "@storybook/addons": "^3.2.0", - "@storybook/addon-centered": "^3.2.1", - "@storybook/addon-notes": "^3.2.0", - "@storybook/addon-knobs": "^3.2.0", - "@storybook/addon-viewport": "^3.2.0", + "@storybook/vue": "3.3.0-alpha.0", + "@storybook/addon-actions": "3.3.0-alpha.0", + "@storybook/addon-links": "3.3.0-alpha.0", + "@storybook/addons": "3.3.0-alpha.0", + "@storybook/addon-centered": "3.3.0-alpha.0", + "@storybook/addon-notes": "3.3.0-alpha.0", + "@storybook/addon-knobs": "3.3.0-alpha.0", + "@storybook/addon-viewport": "3.3.0-alpha.0", "babel-core": "^6.26.0", "babel-loader": "^7.0.0", "babel-preset-env": "^1.6.0", diff --git a/yarn.lock b/yarn.lock index 8728762380a1..aa9249a94275 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,7 +42,11 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -"@types/react@>=15", "@types/react@^15.0.21", "@types/react@^15.0.22": +"@types/react@>=15": + version "16.0.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.5.tgz#d713cf67cc211dea20463d2a0b66005c22070c4b" + +"@types/react@^15.0.21", "@types/react@^15.0.22": version "15.6.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.2.tgz#2c8495aa853cb37591d0046e9afe544fb837c612" @@ -105,7 +109,11 @@ acorn@^4.0.3, acorn@^4.0.4: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.1.1: +acorn@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" + +acorn@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" @@ -117,10 +125,14 @@ address@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" -address@1.0.2, address@^1.0.1: +address@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af" +address@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" + agent-base@2: version "2.1.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" @@ -446,7 +458,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@2.1.4, async@^2.0.1, async@^2.1.2, async@^2.1.4: +async@2.1.4, async@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" dependencies: @@ -456,6 +468,12 @@ async@^1.4.0, async@^1.5.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" +async@^2.0.1, async@^2.1.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2149,12 +2167,18 @@ browserslist@^2.1.2, browserslist@^2.4.0: caniuse-lite "^1.0.30000718" electron-to-chromium "^1.3.18" -bser@1.0.2, bser@^1.0.2: +bser@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" dependencies: node-int64 "^0.4.0" +bser@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.3.tgz#d63da19ee17330a0e260d2a34422b21a89520317" + dependencies: + node-int64 "^0.4.0" + bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -2963,7 +2987,11 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: +core-js@^2.2.2, core-js@^2.4.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-js@^2.4.0, core-js@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" @@ -3663,7 +3691,11 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.18: +electron-to-chromium@^1.2.7: + version "1.3.20" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5" + +electron-to-chromium@^1.3.18: version "1.3.18" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" @@ -3774,7 +3806,17 @@ errorhandler@~1.4.2: accepts "~1.3.0" escape-html "~1.0.3" -es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: +es-abstract@^1.4.3, es-abstract@^1.5.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-abstract@^1.6.1, es-abstract@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" dependencies: @@ -4634,7 +4676,15 @@ 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.1.1, form-data@~2.1.1: +form-data@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" dependencies: @@ -4749,6 +4799,10 @@ function-bind@^1.0.2, function-bind@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + function.prototype.name@^1.0.0, function.prototype.name@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" @@ -6876,9 +6930,9 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lint-staged@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.1.0.tgz#5d983361566aa5974cd58f0a64afa5acbd9d6118" +lint-staged@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.1.2.tgz#d49caa518032eba51a45a5ce9a13d8641c0cf0c0" dependencies: app-root-path "^2.0.0" chalk "^2.1.0" @@ -7294,7 +7348,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@3.7.x, lodash@^3.6.0: +lodash@3.7.x: version "3.7.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" @@ -7302,7 +7356,7 @@ lodash@4.x.x, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lo version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@^3.10.0, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.9.3: +lodash@^3.10.0, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.6.0, lodash@^3.9.3: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -7550,34 +7604,48 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" +"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" mime-db@~1.23.0: version "1.23.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659" +mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" + mime-types@2.1.11, mime-types@~2.1.7: version "2.1.11" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c" dependencies: mime-db "~1.23.0" -mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.9: +mime-types@^2.1.12: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: mime-db "~1.29.0" +mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.9: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -mime@1.3.x, mime@^1.2.11, mime@^1.3.4: +mime@1.3.x, mime@^1.2.11: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343" + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -8947,11 +9015,11 @@ qs@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" -qs@6.5.0: +qs@6.5.0, qs@^6.4.0: version "6.5.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" -qs@^6.4.0, qs@~6.4.0: +qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -9220,8 +9288,8 @@ react-komposer@^2.0.0: shallowequal "^0.2.2" react-modal@^2.2.4: - version "2.3.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-2.3.1.tgz#ee1039d5d4287ad88722fa274c276c8554fc2b1b" + version "2.3.2" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-2.3.2.tgz#af9d625da218461de3e87551609dfca12d8d4946" dependencies: exenv "^1.2.0" prop-types "^15.5.10" @@ -9526,7 +9594,7 @@ readable-stream@1.0: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@1.1, readable-stream@~1.1.8, readable-stream@~1.1.9: +readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" dependencies: @@ -9547,6 +9615,15 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@~1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" From 80f3280a27d6d08caf59a5323439bcdaad87a383 Mon Sep 17 00:00:00 2001 From: hypnos Date: Thu, 7 Sep 2017 02:21:27 +0300 Subject: [PATCH 106/107] CI: Remove "Install root dependencies" phase where possible, as it's now part of bootstrap:core --- .circleci/config.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 40fed8faa967..09cf0b0233c8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -56,10 +56,6 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- - - run: - name: "Install root dependencies" - command: | - yarn install - run: name: "Bootstrapping" command: | @@ -84,10 +80,6 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- - - run: - name: "Install root dependencies" - command: | - yarn install - run: name: "Bootstrapping packages" command: | @@ -110,10 +102,6 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- - - run: - name: "Install root dependencies" - command: | - yarn install - run: name: "Bootstrapping" command: | @@ -146,10 +134,6 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- - - run: - name: "Install root dependencies" - command: | - yarn install - run: name: "Bootstrapping" command: | From 48d04c356527922e0e9de4ce79722ddef97829f5 Mon Sep 17 00:00:00 2001 From: hypnos Date: Thu, 7 Sep 2017 02:25:21 +0300 Subject: [PATCH 107/107] Revert "CI: Remove "Install root dependencies" phase where possible, as it's now part of bootstrap:core" This reverts commit 80f3280a27d6d08caf59a5323439bcdaad87a383. --- .circleci/config.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 09cf0b0233c8..40fed8faa967 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -56,6 +56,10 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- + - run: + name: "Install root dependencies" + command: | + yarn install - run: name: "Bootstrapping" command: | @@ -80,6 +84,10 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- + - run: + name: "Install root dependencies" + command: | + yarn install - run: name: "Bootstrapping packages" command: | @@ -102,6 +110,10 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- + - run: + name: "Install root dependencies" + command: | + yarn install - run: name: "Bootstrapping" command: | @@ -134,6 +146,10 @@ jobs: keys: - root-dependencies-{{ checksum "package.json" }} - root-dependencies- + - run: + name: "Install root dependencies" + command: | + yarn install - run: name: "Bootstrapping" command: |
-
- {infoHeader} + infoHeader && ( +
+
{infoHeader}
-
+ ) ); } @@ -176,9 +171,7 @@ export default class Story extends React.Component { return (
-
- {this.props.children} -
+
{this.props.children}
Show Info @@ -207,12 +200,8 @@ export default class Story extends React.Component { return (
-

- {this.props.context.kind} -

-

- {this.props.context.story} -

+

{this.props.context.kind}

+

{this.props.context.story}

); } @@ -240,11 +229,7 @@ export default class Story extends React.Component { padding = matches[0].length; } const source = lines.map(s => s.slice(padding)).join('\n'); - return ( -
- {this.marksy(source).tree} -
- ); + return
{this.marksy(source).tree}
; } _getComponentDescription() { @@ -253,11 +238,7 @@ export default class Story extends React.Component { if (Object.keys(STORYBOOK_REACT_CLASSES).length) { Object.keys(STORYBOOK_REACT_CLASSES).forEach(key => { if (STORYBOOK_REACT_CLASSES[key].name === this.props.context.kind) { - retDiv = ( -
- {STORYBOOK_REACT_CLASSES[key].docgenInfo.description} -
- ); + retDiv =
{STORYBOOK_REACT_CLASSES[key].docgenInfo.description}
; } }); } @@ -281,7 +262,7 @@ export default class Story extends React.Component {

Story Source

-          {React.Children.map(this.props.children, (root, idx) =>
+          {React.Children.map(this.props.children, (root, idx) => (
             
-          )}
+          ))}
         
); @@ -346,7 +327,7 @@ export default class Story extends React.Component { array.sort((a, b) => (a.displayName || a.name) > (b.displayName || b.name)); const { maxPropObjectKeys, maxPropArrayLength, maxPropStringLength } = this.props; - const propTables = array.map(type => + const propTables = array.map(type => (

"{type.displayName || type.name}" Component @@ -358,7 +339,7 @@ export default class Story extends React.Component { maxPropStringLength={maxPropStringLength} />

- ); + )); if (!propTables || propTables.length === 0) { return null; diff --git a/addons/info/src/components/markdown/code.js b/addons/info/src/components/markdown/code.js index e48550518d92..f43d67955b89 100644 --- a/addons/info/src/components/markdown/code.js +++ b/addons/info/src/components/markdown/code.js @@ -61,11 +61,7 @@ export function Pre(props) { lineHeight: 1.5, overflowX: 'scroll', }; - return ( -
-      {props.children}
-    
- ); + return
{props.children}
; } Pre.propTypes = { children: PropTypes.node }; @@ -78,11 +74,7 @@ export function Blockquote(props) { borderLeft: '8px solid #fafafa', padding: '1rem', }; - return ( -
- {props.children} -
- ); + return
{props.children}
; } Blockquote.propTypes = { children: PropTypes.node }; diff --git a/addons/info/src/components/markdown/text.js b/addons/info/src/components/markdown/text.js index a11a153dca37..221f760b382b 100644 --- a/addons/info/src/components/markdown/text.js +++ b/addons/info/src/components/markdown/text.js @@ -10,11 +10,7 @@ export function P(props) { ...baseFonts, fontSize: '15px', }; - return ( -

- {props.children} -

- ); + return

{props.children}

; } P.defaultProps = defaultProps; @@ -25,11 +21,7 @@ export function LI(props) { ...baseFonts, fontSize: '15px', }; - return ( -
  • - {props.children} -
  • - ); + return
  • {props.children}
  • ; } LI.defaultProps = defaultProps; @@ -40,11 +32,7 @@ export function UL(props) { ...baseFonts, fontSize: '15px', }; - return ( -
      - {props.children} -
    - ); + return
      {props.children}
    ; } UL.defaultProps = defaultProps; diff --git a/addons/info/src/components/types/ArrayOf.js b/addons/info/src/components/types/ArrayOf.js index 5ec615798de1..ce78fc6fb65f 100644 --- a/addons/info/src/components/types/ArrayOf.js +++ b/addons/info/src/components/types/ArrayOf.js @@ -3,14 +3,15 @@ import React from 'react'; import PrettyPropType from './PrettyPropType'; import { TypeInfo } from './proptypes'; -const ArrayOf = ({ propType }) => +const ArrayOf = ({ propType }) => ( [ ] - ; + +); ArrayOf.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/components/types/Enum.js b/addons/info/src/components/types/Enum.js index de574d88598d..83b017eed92e 100644 --- a/addons/info/src/components/types/Enum.js +++ b/addons/info/src/components/types/Enum.js @@ -1,10 +1,7 @@ import React from 'react'; import { TypeInfo } from './proptypes'; -const Enum = ({ propType }) => - - {propType.value.map(({ value }) => value).join(' | ')} - ; +const Enum = ({ propType }) => {propType.value.map(({ value }) => value).join(' | ')}; Enum.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/components/types/InstanceOf.js b/addons/info/src/components/types/InstanceOf.js index 27cc8ca8e318..94577c950954 100644 --- a/addons/info/src/components/types/InstanceOf.js +++ b/addons/info/src/components/types/InstanceOf.js @@ -1,10 +1,7 @@ import React from 'react'; import { TypeInfo } from './proptypes'; -const InstanceOf = ({ propType }) => - - {propType.value} - ; +const InstanceOf = ({ propType }) => {propType.value}; InstanceOf.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/components/types/Object.js b/addons/info/src/components/types/Object.js index b9fa4cfd0662..a7b736a8f5cb 100644 --- a/addons/info/src/components/types/Object.js +++ b/addons/info/src/components/types/Object.js @@ -1,8 +1,5 @@ import React from 'react'; -const ObjectType = () => - - {'{}'} - ; +const ObjectType = () => {'{}'}; export default ObjectType; diff --git a/addons/info/src/components/types/ObjectOf.js b/addons/info/src/components/types/ObjectOf.js index c4d7d61a146e..c9604d299017 100644 --- a/addons/info/src/components/types/ObjectOf.js +++ b/addons/info/src/components/types/ObjectOf.js @@ -3,12 +3,13 @@ import React from 'react'; import PrettyPropType from './PrettyPropType'; import { TypeInfo } from './proptypes'; -const ObjectOf = ({ propType }) => +const ObjectOf = ({ propType }) => ( {'{[]: '} {'}'} - ; + +); ObjectOf.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/components/types/ObjectType.js b/addons/info/src/components/types/ObjectType.js index b9fa4cfd0662..a7b736a8f5cb 100644 --- a/addons/info/src/components/types/ObjectType.js +++ b/addons/info/src/components/types/ObjectType.js @@ -1,8 +1,5 @@ import React from 'react'; -const ObjectType = () => - - {'{}'} - ; +const ObjectType = () => {'{}'}; export default ObjectType; diff --git a/addons/info/src/components/types/OneOf.js b/addons/info/src/components/types/OneOf.js index 65177f77e165..a771772d8e1f 100644 --- a/addons/info/src/components/types/OneOf.js +++ b/addons/info/src/components/types/OneOf.js @@ -1,10 +1,7 @@ import React from 'react'; import { TypeInfo } from './proptypes'; -const OneOf = ({ propType }) => - - {propType.value.map(({ value }) => value).join(' | ')} - ; +const OneOf = ({ propType }) => {propType.value.map(({ value }) => value).join(' | ')}; OneOf.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/components/types/PrettyPropType.js b/addons/info/src/components/types/PrettyPropType.js index fe50881408f7..14f32bad7ecb 100644 --- a/addons/info/src/components/types/PrettyPropType.js +++ b/addons/info/src/components/types/PrettyPropType.js @@ -39,11 +39,7 @@ const PrettyPropType = props => { } // Otherwise, propType does not have a dedicated component, display proptype name by default - return ( - - {name} - - ); + return {name}; }; PrettyPropType.displayName = 'PrettyPropType'; diff --git a/addons/info/src/components/types/Shape.js b/addons/info/src/components/types/Shape.js index 7a2f114ef178..fc366b935a79 100644 --- a/addons/info/src/components/types/Shape.js +++ b/addons/info/src/components/types/Shape.js @@ -45,7 +45,7 @@ class Shape extends React.Component { ... {!this.state.minimized && - Object.keys(propType.value).map(childProperty => + Object.keys(propType.value).map(childProperty => (
    ,
    - )} + ))} - - {propType.raw} - ; +const Signature = ({ propType }) => {propType.raw}; Signature.propTypes = { propType: TypeInfo.isRequired, diff --git a/addons/info/src/index.js b/addons/info/src/index.js index 135497491988..f4a645bf8ec8 100644 --- a/addons/info/src/index.js +++ b/addons/info/src/index.js @@ -60,11 +60,7 @@ function addInfo(storyFn, context, infoOptions) { maxPropsIntoLine: options.maxPropsIntoLine, maxPropStringLength: options.maxPropStringLength, }; - return ( - - {storyFn(context)} - - ); + return {storyFn(context)}; } export const withInfo = textOrOptions => { diff --git a/addons/info/src/index.test.js b/addons/info/src/index.test.js index 96c1f40cdfaf..fc67dc098759 100644 --- a/addons/info/src/index.test.js +++ b/addons/info/src/index.test.js @@ -27,7 +27,7 @@ const testContext = { kind: 'addon_info', story: 'jest_test' }; const testOptions = { propTables: false }; describe('addon Info', () => { - const story = context => + const story = context => (
    It's a {context.story} story: { string={'seven'} bool /> -
    ; +
    + ); const api = { add: (name, fn) => fn(testContext), }; diff --git a/addons/knobs/src/components/Panel.js b/addons/knobs/src/components/Panel.js index caeda402b827..429958e71b29 100644 --- a/addons/knobs/src/components/Panel.js +++ b/addons/knobs/src/components/Panel.js @@ -135,7 +135,9 @@ export default class Panel extends React.Component { render() { const { knobs } = this.state; - const knobsArray = Object.keys(knobs).filter(key => knobs[key].used).map(key => knobs[key]); + const knobsArray = Object.keys(knobs) + .filter(key => knobs[key].used) + .map(key => knobs[key]); if (knobsArray.length === 0) { return
    NO KNOBS
    ; diff --git a/addons/knobs/src/components/types/Color.js b/addons/knobs/src/components/types/Color.js index 53e053bd8930..81e2bd79ad02 100644 --- a/addons/knobs/src/components/types/Color.js +++ b/addons/knobs/src/components/types/Color.js @@ -76,7 +76,7 @@ class ColorType extends React.Component {