@samitouri / QOS-React / commits / 5e0dfdac54

Initial commit

Brian Vaughn committed Jan 22, 2019 at 11:04 UTC 5e0dfdac54e509a97483af1f78af09451c03bfbb
43 files changed +12581
.babelrc new
+7
@@ -0,0 +1,7 @@
1 +{
2 + "plugins": [
3 + ["@babel/plugin-transform-flow-strip-types"],
4 + ["@babel/plugin-proposal-class-properties", { "loose": false }]
5 + ],
6 + "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-flow"]
7 +}
.flowconfig new
+31
@@ -0,0 +1,31 @@
1 +[ignore]
2 +.*/react/node_modules/.*
3 +.*/electron/node_modules/.*
4 +.*node_modules/archiver-utils
5 +.*node_modules/babel.*
6 +.*node_modules/browserify-zlib/.*
7 +.*node_modules/classnames.*
8 +.*node_modules/gh-pages/.*
9 +.*node_modules/invariant/.*
10 +.*node_modules/json-loader.*
11 +.*node_modules/json5.*
12 +.*node_modules/node-libs-browser.*
13 +.*node_modules/webpack.*
14 +.*node_modules/fbjs/flow.*
15 +.*node_modules/web-ext.*
16 +
17 +[include]
18 +
19 +[libs]
20 +./flow.js
21 +
22 +[lints]
23 +
24 +[options]
25 +esproposal.class_instance_fields=enable
26 +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe
27 +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue
28 +suppress_comment=\\(.\\|\n\\)*\\$FlowIgnore
29 +module.name_mapper='^src' ->'<PROJECT_ROOT>/src'
30 +
31 +[strict]
.gitignore new
+9
@@ -0,0 +1,9 @@
1 +/shells/chrome.crx
2 +/shells/chrome.pem
3 +/shells/firefox/*.xpi
4 +build
5 +node_modules
6 +npm-debug.log
7 +yarn-error.log
8 +.DS_Store
9 +yarn-error.log
README.md
flow.js new
+11
@@ -0,0 +1,11 @@
1 +// @flow
2 +
3 +declare module 'events' {
4 + declare class EventEmitter {
5 + addListener: (type: string, fn: Function) => void;
6 + emit: (type: string, data: any) => void;
7 + removeListener: (type: string, fn: Function) => void;
8 + }
9 +
10 + declare export default typeof EventEmitter;
11 +}
package.json new
+80
@@ -0,0 +1,80 @@
1 +{
2 + "dependencies": {
3 + "@babel/core": "^7.1.6",
4 + "@babel/plugin-proposal-class-properties": "^7.1.0",
5 + "@babel/plugin-transform-flow-strip-types": "^7.1.6",
6 + "@babel/preset-env": "^7.1.6",
7 + "@babel/preset-flow": "^7.0.0",
8 + "@babel/preset-react": "^7.0.0",
9 + "adm-zip": "^0.4.7",
10 + "babel-core": "^7.0.0-bridge",
11 + "babel-eslint": "6",
12 + "babel-jest": "^23.6.0",
13 + "babel-loader": "^8.0.4",
14 + "child-process-promise": "^2.2.1",
15 + "classnames": "2.2.1",
16 + "cli-spinners": "^1.0.0",
17 + "clipboard-js": "^0.3.3",
18 + "css-loader": "^1.0.1",
19 + "error-stack-parser": "^2.0.2",
20 + "es6-symbol": "3.0.2",
21 + "eslint": "2.10.2",
22 + "eslint-plugin-react": "5.1.1",
23 + "events": "^3.0.0",
24 + "fbjs": "0.5.1",
25 + "fbjs-scripts": "0.7.0",
26 + "flow-bin": "^0.91.0",
27 + "fs-extra": "^3.0.1",
28 + "gh-pages": "^1.0.0",
29 + "immutable": "3.7.6",
30 + "jest": "22.1.4",
31 + "log-update": "^2.0.0",
32 + "lru-cache": "^4.1.3",
33 + "memoize-one": "^3.1.1",
34 + "node-libs-browser": "0.5.3",
35 + "nullthrows": "^1.0.0",
36 + "object-assign": "4.0.1",
37 + "prop-types": "^15.6.1",
38 + "react": "^16.8.0-alpha.1",
39 + "react-color": "^2.11.7",
40 + "react-dom": "^16.8.0-alpha.1",
41 + "react-portal": "^3.1.0",
42 + "react-virtualized-auto-sizer": "^1.0.2",
43 + "react-window": "^1.1.1",
44 + "semver": "^5.5.1",
45 + "style-loader": "^0.23.1",
46 + "webpack": "^4.26.0",
47 + "webpack-cli": "^3.1.2"
48 + },
49 + "license": "BSD-3-Clause",
50 + "repository": "facebook/react-devtools",
51 + "private": true,
52 + "workspaces": [
53 + "packages/*"
54 + ],
55 + "scripts": {
56 + "build:extension": "yarn run build:extension:chrome && yarn run build:extension:firefox",
57 + "build:extension:chrome": "node ./shells/chrome/build",
58 + "build:extension:firefox": "node ./shells/firefox/build",
59 + "build:standalone": "cd packages/react-devtools-core && yarn run build",
60 + "deploy": "cd ./shells/theme-preview && ./build.sh && gh-pages -d .",
61 + "lint": "eslint .",
62 + "start": "cd ./shells/dev && open ./index.html && webpack --config webpack.config.js --watch",
63 + "test": "jest",
64 + "test:chrome": "node ./shells/chrome/test",
65 + "test:firefox": "node ./shells/firefox/test",
66 + "test:standalone": "cd packages/react-devtools && yarn start",
67 + "typecheck": "flow check"
68 + },
69 + "jest": {
70 + "modulePathIgnorePatterns": [
71 + "<rootDir>/shells"
72 + ]
73 + },
74 + "devDependencies": {
75 + "chrome-launch": "^1.1.4",
76 + "firefox-profile": "^1.0.2",
77 + "lerna": "^2.8.0",
78 + "web-ext": "^1.10.1"
79 + }
80 +}
shells/browser/chrome/manifest.json new
+6
@@ -0,0 +1,6 @@
1 +{
2 + "name": "React v16 DevTools",
3 + "version": "0.1",
4 + "description": "DevTools for React version 16.0+",
5 + "manifest_version": 2
6 +}
shells/browser/webpack.backend.js new
+36
@@ -0,0 +1,36 @@
1 +/**
2 + * Copyright (c) 2015-present, Facebook, Inc.
3 + * All rights reserved.
4 + *
5 + * This source code is licensed under the BSD-style license found in the
6 + * LICENSE file in the root directory of this source tree. An additional grant
7 + * of patent rights can be found in the PATENTS file in the same directory.
8 + *
9 + */
10 +'use strict';
11 +
12 +const {readFileSync} = require('fs');
13 +const {resolve} = require('path');
14 +
15 +const __DEV__ = process.env.NODE_ENV !== 'production';
16 +
17 +module.exports = {
18 + mode: __DEV__ ? 'development' : 'production',
19 + devtool: __DEV__ ? 'cheap-module-eval-source-map' : false,
20 + entry: {
21 + backend: './src/backend.js',
22 + },
23 + output: {
24 + path: __dirname + '/build',
25 + filename: '[name].js',
26 + },
27 + module: {
28 + rules: [
29 + {
30 + test: /\.js$/,
31 + loader: 'babel-loader',
32 + options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
33 + },
34 + ],
35 + },
36 +};
shells/browser/webpack.config.js new
+63
@@ -0,0 +1,63 @@
1 +/**
2 + * Copyright (c) 2015-present, Facebook, Inc.
3 + * All rights reserved.
4 + *
5 + * This source code is licensed under the BSD-style license found in the
6 + * LICENSE file in the root directory of this source tree. An additional grant
7 + * of patent rights can be found in the PATENTS file in the same directory.
8 + *
9 + */
10 +'use strict';
11 +
12 +const {readFileSync} = require('fs');
13 +const {resolve} = require('path');
14 +const webpack = require('webpack');
15 +
16 +const __DEV__ = process.env.NODE_ENV !== 'production';
17 +
18 +module.exports = {
19 + mode: __DEV__ ? 'development' : 'production',
20 + devtool: __DEV__ ? 'cheap-module-eval-source-map' : false,
21 + entry: {
22 + background: './src/background.js',
23 + contentScript: './src/contentScript.js',
24 + inject: './src/GlobalHook.js',
25 + main: './src/main.js',
26 + panel: './src/panel.js',
27 + },
28 + output: {
29 + path: __dirname + '/build',
30 + filename: '[name].js',
31 + },
32 + plugins: __DEV__ ? [] : [
33 + // Ensure we get production React
34 + new webpack.DefinePlugin({
35 + 'process.env.NODE_ENV': '"production"',
36 + }),
37 + ],
38 + module: {
39 + rules: [
40 + {
41 + test: /\.js$/,
42 + loader: 'babel-loader',
43 + options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
44 + },
45 + {
46 + test: /\.css$/,
47 + use: [
48 + {
49 + loader: 'style-loader',
50 + },
51 + {
52 + loader: 'css-loader',
53 + options: {
54 + sourceMap: true,
55 + modules: true,
56 + localIdentName: '[local]___[hash:base64:5]',
57 + },
58 + },
59 + ],
60 + },
61 + ],
62 + },
63 +};
shells/createConfig.js new
+150
@@ -0,0 +1,150 @@
1 +const path = require('path')
2 +const webpack = require('webpack')
3 +const merge = require('webpack-merge')
4 +const { VueLoaderPlugin } = require('vue-loader')
5 +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
6 +
7 +module.exports = (config, target = { chrome: 52, firefox: 48 }) => {
8 + const bubleOptions = {
9 + target,
10 + objectAssign: 'Object.assign',
11 + transforms: {
12 + forOf: false,
13 + modules: false
14 + }
15 + }
16 +
17 + const baseConfig = {
18 + mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
19 + resolve: {
20 + alias: {
21 + src: path.resolve(__dirname, '../src'),
22 + views: path.resolve(__dirname, '../src/devtools/views'),
23 + components: path.resolve(__dirname, '../src/devtools/components'),
24 + filters: path.resolve(__dirname, '../src/devtools/filters')
25 + }
26 + },
27 + module: {
28 + rules: [
29 + {
30 + test: /\.js$/,
31 + loader: 'buble-loader',
32 + exclude: /node_modules|vue\/dist|vuex\/dist/,
33 + options: bubleOptions
34 + },
35 + {
36 + test: /\.vue$/,
37 + loader: 'vue-loader',
38 + options: {
39 + compilerOptions: {
40 + preserveWhitespace: false
41 + },
42 + transpileOptions: bubleOptions
43 + }
44 + },
45 + {
46 + test: /\.css$/,
47 + use: [
48 + 'vue-style-loader',
49 + 'css-loader',
50 + 'postcss-loader'
51 + ]
52 + },
53 + {
54 + test: /\.styl(us)?$/,
55 + use: [
56 + 'vue-style-loader',
57 + 'css-loader',
58 + 'postcss-loader',
59 + 'stylus-loader',
60 + {
61 + loader: 'style-resources-loader',
62 + options: {
63 + patterns: [
64 + path.resolve(__dirname, '../src/devtools/style/imports.styl')
65 + ]
66 + }
67 + }
68 + ]
69 + },
70 + {
71 + test: /\.(png|woff2)$/,
72 + loader: 'url-loader?limit=0'
73 + }
74 + ]
75 + },
76 + performance: {
77 + hints: false
78 + },
79 + plugins: [
80 + new VueLoaderPlugin(),
81 + ...(process.env.VUE_DEVTOOL_TEST ? [] : [new FriendlyErrorsPlugin()]),
82 + new webpack.DefinePlugin({
83 + 'process.env.RELEASE_CHANNEL': JSON.stringify(process.env.RELEASE_CHANNEL || 'stable')
84 + })
85 + ],
86 + devServer: {
87 + port: process.env.PORT
88 + },
89 + stats: {
90 + colors: true
91 + }
92 + }
93 +
94 + if (process.env.NODE_ENV === 'production') {
95 + const UglifyPlugin = require('uglifyjs-webpack-plugin')
96 + baseConfig.plugins.push(
97 + new webpack.DefinePlugin({
98 + 'process.env.NODE_ENV': '"production"'
99 + })
100 + )
101 + baseConfig.optimization = {
102 + minimizer: [
103 + new UglifyPlugin({
104 + exclude: /backend/,
105 + uglifyOptions: {
106 + compress: {
107 + // turn off flags with small gains to speed up minification
108 + arrows: false,
109 + collapse_vars: false, // 0.3kb
110 + comparisons: false,
111 + computed_props: false,
112 + hoist_funs: false,
113 + hoist_props: false,
114 + hoist_vars: false,
115 + inline: false,
116 + loops: false,
117 + negate_iife: false,
118 + properties: false,
119 + reduce_funcs: false,
120 + reduce_vars: false,
121 + switches: false,
122 + toplevel: false,
123 + typeofs: false,
124 +
125 + // a few flags with noticable gains/speed ratio
126 + // numbers based on out of the box vendor bundle
127 + booleans: true, // 0.7kb
128 + if_return: true, // 0.4kb
129 + sequences: true, // 0.7kb
130 + unused: true, // 2.3kb
131 +
132 + // required features to drop conditional branches
133 + conditionals: true,
134 + dead_code: true,
135 + evaluate: true
136 + },
137 + mangle: {
138 + safari10: true
139 + }
140 + },
141 + sourceMap: false,
142 + cache: true,
143 + parallel: true
144 + })
145 + ]
146 + }
147 + }
148 +
149 + return merge(baseConfig, config)
150 +}
\ No newline at end of file
shells/dev/app/App.css new
+6
@@ -0,0 +1,6 @@
1 +.App {
2 + /* GitHub.com frontend fonts */
3 + font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
4 + font-size: 14px;
5 + line-height: 1.5;
6 +}
\ No newline at end of file
shells/dev/app/ElementTypes/index.js new
+54
@@ -0,0 +1,54 @@
1 +// @flow
2 +
3 +import React, {
4 + createContext,
5 + forwardRef,
6 + lazy,
7 + memo,
8 + Component,
9 + ConcurrentMode,
10 + Fragment,
11 + Profiler,
12 + StrictMode,
13 + Suspense,
14 +} from 'react';
15 +
16 +class ClassComponent extends Component {
17 + render() {
18 + return null;
19 + }
20 +}
21 +
22 +function FunctionComponent() {
23 + return null;
24 +}
25 +
26 +const MemoFunctionComponent = memo(FunctionComponent);
27 +
28 +const ForwardRefComponent = forwardRef((props, ref) => (
29 + <ClassComponent ref={ref} {...props} />
30 +));
31 +
32 +const LazyComponent = lazy(() => Promise.resolve({
33 + default: FunctionComponent,
34 +}));
35 +
36 +export default function ElementTypes() {
37 + return (
38 + <Profiler id="test" onRender={() => {}}>
39 + <Fragment>
40 + <StrictMode>
41 + <ConcurrentMode>
42 + <Suspense fallback={<div>Loading...</div>}>
43 + <ClassComponent />
44 + <FunctionComponent />
45 + <MemoFunctionComponent />
46 + <ForwardRefComponent />
47 + <LazyComponent />
48 + </Suspense>
49 + </ConcurrentMode>
50 + </StrictMode>
51 + </Fragment>
52 + </Profiler>
53 + )
54 +}
\ No newline at end of file
shells/dev/app/ToDoList/List.css new
+22
@@ -0,0 +1,22 @@
1 +.Header {
2 + font-size: 1.5rem;
3 + font-weight: bold;
4 + margin-bottom: 0.5rem;
5 +}
6 +
7 +.Input {
8 + font-size: 1rem;
9 + padding: 0.25rem;
10 +}
11 +
12 +.IconButton {
13 + padding: 0.25rem;
14 + border: none;
15 + background: none;
16 + cursor: pointer;
17 +}
18 +
19 +.List {
20 + margin: 0.5rem 0 0;
21 + padding: 0;
22 +}
shells/dev/app/ToDoList/List.js new
+94
@@ -0,0 +1,94 @@
1 +// @flow
2 +
3 +import React, { Fragment, useCallback, useState } from 'react';
4 +import ListItem from './ListItem';
5 +import styles from './List.css';
6 +
7 +export type Item = {|
8 + id: number,
9 + isComplete: boolean,
10 + text: string,
11 +|};
12 +
13 +type Props = {||};
14 +
15 +export default function List({}: Props) {
16 + const [newItemText, setNewItemText] = useState<string>('');
17 + const [items, setItems] = useState<Array<Item>>([
18 + {id: 1, isComplete: true, text: "First"},
19 + {id: 2, isComplete: true, text: "Second"},
20 + {id: 3, isComplete: false, text: "Third"},
21 + ]);
22 + const [uid, setUID] = useState<number>(4);
23 +
24 + const handleClick = useCallback(() => {
25 + if (newItemText !== '') {
26 + setItems([...items, {
27 + id: uid,
28 + isComplete: false,
29 + text: newItemText,
30 + }]);
31 + setUID(uid + 1);
32 + setNewItemText('');
33 + }
34 + }, [newItemText]);
35 +
36 + const handleKeyPress = useCallback(event => {
37 + if (event.key === 'Enter') {
38 + handleClick();
39 + }
40 + }, [handleClick]);
41 +
42 + const handleChange = useCallback(event => {
43 + setNewItemText(event.currentTarget.value);
44 + }, [setNewItemText]);
45 +
46 + const removeItem = useCallback(itemToRemove => {
47 + setItems(
48 + items.filter(item => item !== itemToRemove)
49 + );
50 + }, [items]);
51 +
52 + const toggleItem = useCallback(itemToToggle => {
53 + const index = items.indexOf(itemToToggle);
54 +
55 + setItems(
56 + items
57 + .slice(0, index)
58 + .concat({
59 + ...itemToToggle,
60 + isComplete: !itemToToggle.isComplete,
61 + })
62 + .concat(items.slice(index + 1))
63 + );
64 + }, [items]);
65 +
66 + return (
67 + <Fragment>
68 + <div className={styles.Header}>List</div>
69 + <input
70 + type="text"
71 + placeholder="New list item..."
72 + className={styles.Input}
73 + value={newItemText}
74 + onChange={handleChange}
75 + onKeyPress={handleKeyPress}
76 + />
77 + <button
78 + className={styles.IconButton}
79 + disabled={newItemText === ''}
80 + onClick={handleClick}
81 + >➕</button>
82 + <ul className={styles.List}>
83 + {items.map(item => (
84 + <ListItem
85 + key={item.id}
86 + item={item}
87 + removeItem={removeItem}
88 + toggleItem={toggleItem}
89 + />
90 + ))}
91 + </ul>
92 + </Fragment>
93 + );
94 +}
\ No newline at end of file
shells/dev/app/ToDoList/ListItem.css new
+23
@@ -0,0 +1,23 @@
1 +.ListItem {
2 + list-style-type: none;
3 +}
4 +
5 +.Input {
6 + cursor: pointer;
7 +}
8 +
9 +.Label {
10 + cursor: pointer;
11 + padding: 0.25rem;
12 + color: #555;
13 +}
14 +.Label:hover {
15 + color: #000;
16 +}
17 +
18 +.IconButton {
19 + padding: 0.25rem;
20 + border: none;
21 + background: none;
22 + cursor: pointer;
23 +}
shells/dev/app/ToDoList/ListItem.js new
+36
@@ -0,0 +1,36 @@
1 +// @flow
2 +
3 +import React, { Fragment, useCallback, useState } from 'react';
4 +import styles from './ListItem.css';
5 +
6 +import type {Item} from './List';
7 +
8 +type Props = {|
9 + item: Item,
10 + removeItem: (item: Item) => void,
11 + toggleItem: (item: Item) => void,
12 +|};
13 +
14 +export default function ListItem({ item, removeItem, toggleItem }: Props) {
15 + const handleDelete = useCallback(() => {
16 + removeItem(item);
17 + }, [item, removeItem]);
18 +
19 + const handleToggle = useCallback(() => {
20 + toggleItem(item);
21 + }, [item, toggleItem]);
22 +
23 + return (
24 + <li className={styles.ListItem}>
25 + <button className={styles.IconButton} onClick={handleDelete}>🗑</button>
26 + <label className={styles.Label}>
27 + <input
28 + className={styles.Input}
29 + checked={item.isComplete}
30 + onChange={handleToggle}
31 + type="checkbox"
32 + /> {item.text}
33 + </label>
34 + </li>
35 + )
36 +}
\ No newline at end of file
shells/dev/app/ToDoList/index.js new
+5
@@ -0,0 +1,5 @@
1 +// @flow
2 +
3 +import List from './List';
4 +
5 +export default List;
\ No newline at end of file
shells/dev/app/app.js new
+15
@@ -0,0 +1,15 @@
1 +// @flow
2 +
3 +import React from 'react';
4 +import List from './ToDoList';
5 +import ElementTypes from './ElementTypes';
6 +import styles from './App.css';
7 +
8 +export default function App() {
9 + return (
10 + <div className={styles.App}>
11 + <List />
12 + <ElementTypes />
13 + </div>
14 + )
15 +}
\ No newline at end of file
shells/dev/app/index.js new
+11
@@ -0,0 +1,11 @@
1 +/** @flow */
2 +
3 +import { createElement } from 'react';
4 +import { render } from 'react-dom';
5 +import App from './App';
6 +
7 +const container = document.createElement('div');
8 +
9 +render(createElement(App), container);
10 +
11 +((document.body: any): HTMLBodyElement).appendChild(container);
\ No newline at end of file
shells/dev/index.html new
+44
@@ -0,0 +1,44 @@
1 +<!doctype html>
2 +<html>
3 + <head>
4 + <meta charset="utf8">
5 + <title>React DevTools</title>
6 + <meta name="viewport" content="width=device-width, initial-scale=1">
7 + <style>
8 + #target {
9 + flex: 1;
10 + border: none;
11 + border-bottom: 1px solid #ccc;
12 + }
13 + #devtools {
14 + display: flex;
15 + height: 400px;
16 + max-height: 50%;
17 + overflow: hidden;
18 + }
19 + body {
20 + display: flex;
21 + flex-direction: column;
22 + position: absolute;
23 + top: 0;
24 + left: 0;
25 + right: 0;
26 + bottom: 0;
27 + margin: 0;
28 + padding: 0;
29 + }
30 + </style>
31 + </head>
32 + <body>
33 + <!-- React test app (shells/dev/app) is injected here -->
34 + <!-- DevTools backend (shells/dev/src) is injected here -->
35 + <!-- global "hook" is defined on the iframe's contentWindow -->
36 + <iframe id="target"></iframe>
37 +
38 + <!-- DevTools frontend UI (shells/dev/src) renders here -->
39 + <div id="devtools"></div>
40 +
41 + <!-- This script installs the hook, injects the backend, and renders the DevTools UI -->
42 + <script src="build/devtools.js"></script>
43 + </body>
44 +</html>
\ No newline at end of file
shells/dev/src/backend.js new
+21
@@ -0,0 +1,21 @@
1 +/** @flow */
2 +
3 +import Agent from 'src/backend/agent';
4 +import Bridge from 'src/bridge'
5 +import { initBackend } from 'src/backend';
6 +
7 +const bridge = new Bridge({
8 + listen (fn) {
9 + window.addEventListener('message', event => {
10 + fn(event.data);
11 + });
12 + },
13 + send (data) {
14 + window.parent.postMessage(data, '*')
15 + }
16 +})
17 +
18 +const agent = new Agent();
19 +agent.addBridge(bridge);
20 +
21 +initBackend(window.__REACT_DEVTOOLS_GLOBAL_HOOK__, agent);
shells/dev/src/devtools.js new
+52
@@ -0,0 +1,52 @@
1 +/** @flow */
2 +
3 +import { createElement } from 'react';
4 +import {render } from 'react-dom';
5 +import Bridge from 'src/bridge';
6 +import { installHook } from 'src/hook';
7 +import { initDevTools } from 'src/devtools';
8 +import App from 'src/devtools/views/App';
9 +
10 +const iframe = ((document.getElementById('target'): any): HTMLIFrameElement);
11 +
12 +const {contentDocument, contentWindow} = iframe;
13 +
14 +installHook(contentWindow);
15 +
16 +initDevTools({
17 + connect(cb) {
18 + inject('./build/backend.js', () => {
19 + const bridge = new Bridge({
20 + listen(fn) {
21 + contentWindow.parent.addEventListener('message', ({ data }) => {
22 + fn(data)
23 + });
24 + },
25 + send(data) {
26 + contentWindow.postMessage(data, '*');
27 + }
28 + });
29 +
30 + cb(bridge);
31 +
32 + render(
33 + createElement(App, {bridge}),
34 + ((document.getElementById('devtools'): any): HTMLElement),
35 + );
36 + });
37 + },
38 +
39 + onReload(reloadFn) {
40 + iframe.onload = reloadFn;
41 + }
42 +});
43 +
44 +inject('./build/app.js');
45 +
46 +function inject(sourcePath, callback) {
47 + const script = contentDocument.createElement('script')
48 + script.onload = callback;
49 + script.src = sourcePath;
50 +
51 + ((contentDocument.body: any): HTMLBodyElement).appendChild(script);
52 +}
\ No newline at end of file
shells/dev/webpack.config.js new
+48
@@ -0,0 +1,48 @@
1 +const {readFileSync} = require('fs');
2 +const {resolve} = require('path');
3 +
4 +// TODO Share Webpack configs like alias
5 +
6 +module.exports = {
7 + mode: 'development',
8 + devtool: false,
9 + entry: {
10 + app: './app/index.js',
11 + backend: './src/backend.js',
12 + devtools: './src/devtools.js',
13 + },
14 + output: {
15 + path: __dirname + '/build',
16 + filename: '[name].js',
17 + },
18 + resolve: {
19 + alias: {
20 + src: resolve(__dirname, '../../src'),
21 + },
22 + },
23 + module: {
24 + rules: [
25 + {
26 + test: /\.js$/,
27 + loader: 'babel-loader',
28 + options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
29 + },
30 + {
31 + test: /\.css$/,
32 + use: [
33 + {
34 + loader: 'style-loader',
35 + },
36 + {
37 + loader: 'css-loader',
38 + options: {
39 + sourceMap: true,
40 + modules: true,
41 + localIdentName: '[local]___[hash:base64:5]',
42 + },
43 + },
44 + ],
45 + },
46 + ],
47 + },
48 +};
src/backend/agent.js new
+159
@@ -0,0 +1,159 @@
1 +// @flow
2 +
3 +import nullthrows from 'nullthrows';
4 +import EventEmitter from 'events';
5 +import {guid} from './utils';
6 +import {ElementTypeOtherOrUnknown} from 'src/devtools/types';
7 +
8 +import type {Fiber, RendererData, RendererID, RendererInterface} from './types';
9 +import type {Bridge} from '../types';
10 +import type {Element} from 'src/devtools/types';
11 +
12 +export default class Agent extends EventEmitter {
13 + fiberToID: WeakMap<Fiber, string> = new WeakMap();
14 + idToElement: Map<string, Element> = new Map();
15 + idToFiber: Map<string, Fiber> = new Map();
16 + idToRendererData: Map<string, RendererData> = new Map();
17 + idToRendererID: Map<string, RendererID> = new Map();
18 + rendererInterfaces: {[key: RendererID]: RendererInterface} = {};
19 + roots: Set<RendererID> = new Set();
20 +
21 + addBridge(bridge: Bridge) {
22 + // TODO Listen to bridge for things like selection.
23 + // bridge.on('...'), this...);
24 +
25 + this.addListener('root', id => bridge.send('root', id));
26 + this.addListener('mount', data => bridge.send('mount', data));
27 + this.addListener('update', data => bridge.send('update', data));
28 + this.addListener('unmount', data => bridge.send('unmount', data));
29 + // TODO Add other methods for e.g. profiling.
30 + }
31 +
32 + setRendererInterface(rendererID: RendererID, rendererInterface: RendererInterface) {
33 + this.rendererInterfaces[rendererID] = rendererInterface;
34 + }
35 +
36 + _getId(fiber: Fiber): string {
37 + if (typeof fiber !== 'object' || !fiber) {
38 + return fiber;
39 + }
40 + if (!this.fiberToID.has(fiber)) {
41 + this.fiberToID.set(fiber, guid());
42 + this.idToFiber.set(
43 + nullthrows(this.fiberToID.get(fiber)),
44 + fiber
45 + );
46 + }
47 + return nullthrows(this.fiberToID.get(fiber));
48 + }
49 +
50 + _crawl(parent: Element, id: string): void {
51 + const data: RendererData = ((this.idToRendererData.get(id): any): RendererData);
52 + if (data.type === ElementTypeOtherOrUnknown) {
53 + data.children.forEach(childFiber => {
54 + if (childFiber !== null) {
55 + this._crawl(parent, this._getId(childFiber))
56 + }
57 + });
58 + } else {
59 + parent.children.push(id);
60 +
61 + this._createOrUpdateElement(id, data);
62 + }
63 + }
64 +
65 + _createOrUpdateElement(id: string, data: RendererData): void {
66 + const prevElement: ?Element = this.idToElement.get(id);
67 + const nextElement: Element = {
68 + id,
69 + key: data.key,
70 + displayName: data.displayName,
71 + children: [],
72 + type: data.type,
73 + };
74 +
75 + this.idToElement.set(id, nextElement);
76 +
77 + data.children.forEach(childFiber => {
78 + if (childFiber !== null) {
79 + this._crawl(nextElement, this._getId(childFiber))
80 + }
81 + });
82 +
83 + if (prevElement == null) {
84 +console.log('%cAgent%c emit("mount")', 'color: blue; font-weight: bold;', 'font-weight: bold;', id, nextElement)
85 + this.emit('mount', nextElement);
86 + } else if (!areElementsEqual(prevElement, nextElement)) {
87 +console.log('%cAgent%c emit("update")', 'color: blue; font-weight: bold;', 'font-weight: bold;', id, nextElement)
88 + this.emit('update', nextElement);
89 + }
90 + }
91 +
92 + onHookMount = ({data, fiber, renderer}: {data: RendererData, fiber: Fiber, renderer: RendererID}) => {
93 + const id = this._getId(fiber);
94 +
95 + this.idToRendererData.set(id, data);
96 + this.idToRendererID.set(id, renderer);
97 + };
98 +
99 + onHookRootCommitted = ({data, fiber, renderer}: {data: RendererData, fiber: Fiber, renderer: RendererID}) => {
100 + const id = this._getId(fiber);
101 +console.log('%cAgent%c onHookRootCommitted()', 'color: blue; font-weight: bold;', 'font-weight: bold;', id);
102 +
103 + this._createOrUpdateElement(id, data);
104 +
105 + if (!this.roots.has(id)) {
106 + this.roots.add(id);
107 +
108 + this.emit('root', id);
109 + }
110 + };
111 +
112 + onHookUnmount = ({fiber}: {fiber: Fiber}) => {
113 + const id = this._getId(fiber);
114 +
115 + if (this.roots.has(id)) {
116 + this.roots.delete(id);
117 + this.emit('rootUnmounted', id);
118 + }
119 +
120 + if (this.idToElement.has(id)) {
121 + this.idToElement.delete(id);
122 +console.log('%cAgent%c emit("unmount")', 'color: blue; font-weight: bold;', 'font-weight: bold;', id)
123 + this.emit('unmount', id);
124 + }
125 +
126 + this.fiberToID.delete(fiber);
127 + this.idToRendererData.delete(id);
128 + this.idToRendererID.delete(id);
129 + };
130 +
131 + onHookUpdate = ({data, fiber}: {data: RendererData, fiber: Fiber}) => {
132 + const id = this._getId(fiber);
133 +
134 + this.idToRendererData.set(id, data);
135 + };
136 +}
137 +
138 +function areElementsEqual(prevElement: ?Element, nextElement: ?Element): boolean {
139 + if (!prevElement || !nextElement) {
140 + return false;
141 + }
142 +
143 + if (
144 + prevElement.key !== nextElement.key ||
145 + prevElement.displayName !== nextElement.displayName ||
146 + prevElement.children.length !== nextElement.children.length ||
147 + prevElement.type !== nextElement.type
148 + ) {
149 + return false;
150 + }
151 +
152 + for (let i = 0; i < prevElement.children.length; i++) {
153 + if (prevElement.children[i] !== nextElement.children[i]) {
154 + return false;
155 + }
156 + }
157 +
158 + return true;
159 +}
src/backend/index.js new
+51
@@ -0,0 +1,51 @@
1 +// @flow
2 +
3 +import type {Hook} from './types';
4 +import type {Bridge} from '../types';
5 +import Agent from './agent';
6 +
7 +import { attach } from './renderer';
8 +
9 +export function initBackend(hook: Hook, agent: Agent): void {
10 + const subs = [
11 + hook.sub('renderer-attached', ({id, renderer, rendererInterface}) => {
12 + agent.setRendererInterface(id, rendererInterface);
13 + rendererInterface.walkTree();
14 + }),
15 +
16 + hook.sub('rootCommitted', agent.onHookRootCommitted),
17 + hook.sub('mount', agent.onHookMount),
18 + hook.sub('update', agent.onHookUpdate),
19 + hook.sub('unmount', agent.onHookUnmount),
20 +
21 + // TODO Add additional subscriptions required for profiling mode
22 + ];
23 +
24 + const attachRenderer = (id, renderer) => {
25 + const rendererInterface = attach(hook, id, renderer);
26 + hook.rendererInterfaces[id] = rendererInterface;
27 + hook.emit('renderer-attached', {
28 + id,
29 + renderer,
30 + rendererInterface
31 + });
32 + };
33 +
34 + // Connect renderers that have already injected themselves.
35 + for (let id in hook.renderers) {
36 + const renderer = hook.renderers[id];
37 + attachRenderer(id, renderer);
38 + }
39 +
40 + // Connect any new renderers that injected themselves.
41 + hook.on('renderer', ({id, renderer}) => {
42 + attachRenderer(id, renderer);
43 + });
44 +
45 + hook.emit('react-devtools', agent);
46 + hook.reactDevtoolsAgent = agent;
47 + agent.addListener('shutdown', () => {
48 + subs.forEach(fn => fn());
49 + hook.reactDevtoolsAgent = null;
50 + });
51 +};
src/backend/renderer.js new
+718
@@ -0,0 +1,718 @@
1 +// @flow
2 +
3 +import {gte} from 'semver';
4 +import {
5 + ElementTypeClassOrFunction,
6 + ElementTypeContext,
7 + ElementTypeForwardRef,
8 + ElementTypeMemo,
9 + ElementTypeOtherOrUnknown,
10 + ElementTypeProfiler,
11 + ElementTypeSuspense,
12 +} from 'src/devtools/types';
13 +import { getDisplayName } from './utils';
14 +
15 +import type {Fiber, Hook, ReactRenderer, RendererData, RendererInterface} from './types';
16 +
17 +// TODO: If we're profiling, process update
18 +// TODO: Throttle process update to app tree
19 +
20 +// Taken from ReactElement.
21 +function resolveDefaultProps(Component: any, baseProps: Object): Object {
22 + if (Component && Component.defaultProps) {
23 + // Resolve default props. Taken from ReactElement
24 + const props = Object.assign({}, baseProps);
25 + const defaultProps = Component.defaultProps;
26 + for (const propName in defaultProps) {
27 + if (props[propName] === undefined) {
28 + props[propName] = defaultProps[propName];
29 + }
30 + }
31 + return props;
32 + }
33 + return baseProps;
34 +}
35 +
36 +function getInternalReactConstants(version) {
37 + const ReactSymbols = {
38 + CONCURRENT_MODE_NUMBER: 0xeacf,
39 + CONCURRENT_MODE_SYMBOL_STRING: 'Symbol(react.concurrent_mode)',
40 + DEPRECATED_ASYNC_MODE_SYMBOL_STRING: 'Symbol(react.async_mode)',
41 + CONTEXT_CONSUMER_NUMBER: 0xeace,
42 + CONTEXT_CONSUMER_SYMBOL_STRING: 'Symbol(react.context)',
43 + CONTEXT_PROVIDER_NUMBER: 0xeacd,
44 + CONTEXT_PROVIDER_SYMBOL_STRING: 'Symbol(react.provider)',
45 + FORWARD_REF_NUMBER: 0xead0,
46 + FORWARD_REF_SYMBOL_STRING: 'Symbol(react.forward_ref)',
47 + MEMO_NUMBER: 0xead3,
48 + MEMO_SYMBOL_STRING: 'Symbol(react.memo)',
49 + PROFILER_NUMBER: 0xead2,
50 + PROFILER_SYMBOL_STRING: 'Symbol(react.profiler)',
51 + STRICT_MODE_NUMBER: 0xeacc,
52 + STRICT_MODE_SYMBOL_STRING: 'Symbol(react.strict_mode)',
53 + SUSPENSE_NUMBER: 0xead1,
54 + SUSPENSE_SYMBOL_STRING: 'Symbol(react.suspense)',
55 + DEPRECATED_PLACEHOLDER_SYMBOL_STRING: 'Symbol(react.placeholder)',
56 + };
57 +
58 + const ReactTypeOfSideEffect = {
59 + PerformedWork: 1,
60 + };
61 +
62 + let ReactTypeOfWork;
63 +
64 + // **********************************************************
65 + // The section below is copied from files in React repo.
66 + // Keep it in sync, and add version guards if it changes.
67 + // **********************************************************
68 + if (gte(version, '16.6.0-beta.0')) {
69 + ReactTypeOfWork = {
70 + ClassComponent: 1,
71 + ContextConsumer: 9,
72 + ContextProvider: 10,
73 + CoroutineComponent: -1, // Removed
74 + CoroutineHandlerPhase: -1, // Removed
75 + ForwardRef: 11,
76 + Fragment: 7,
77 + FunctionComponent: 0,
78 + HostComponent: 5,
79 + HostPortal: 4,
80 + HostRoot: 3,
81 + HostText: 6,
82 + IncompleteClassComponent: 17,
83 + IndeterminateComponent: 2,
84 + LazyComponent: 16,
85 + MemoComponent: 14,
86 + Mode: 8,
87 + Profiler: 12,
88 + SimpleMemoComponent: 15,
89 + SuspenseComponent: 13,
90 + YieldComponent: -1, // Removed
91 + };
92 + } else if (gte(version, '16.4.3-alpha')) {
93 + ReactTypeOfWork = {
94 + ClassComponent: 2,
95 + ContextConsumer: 11,
96 + ContextProvider: 12,
97 + CoroutineComponent: -1, // Removed
98 + CoroutineHandlerPhase: -1, // Removed
99 + ForwardRef: 13,
100 + Fragment: 9,
101 + FunctionComponent: 0,
102 + HostComponent: 7,
103 + HostPortal: 6,
104 + HostRoot: 5,
105 + HostText: 8,
106 + IncompleteClassComponent: -1, // Doesn't exist yet
107 + IndeterminateComponent: 4,
108 + LazyComponent: -1, // Doesn't exist yet
109 + MemoComponent: -1, // Doesn't exist yet
110 + Mode: 10,
111 + Profiler: 15,
112 + SimpleMemoComponent: -1, // Doesn't exist yet
113 + SuspenseComponent: 16,
114 + YieldComponent: -1, // Removed
115 + };
116 + } else {
117 + ReactTypeOfWork = {
118 + ClassComponent: 2,
119 + ContextConsumer: 12,
120 + ContextProvider: 13,
121 + CoroutineComponent: 7,
122 + CoroutineHandlerPhase: 8,
123 + ForwardRef: 14,
124 + Fragment: 10,
125 + FunctionComponent: 1,
126 + HostComponent: 5,
127 + HostPortal: 4,
128 + HostRoot: 3,
129 + HostText: 6,
130 + IncompleteClassComponent: -1, // Doesn't exist yet
131 + IndeterminateComponent: 0,
132 + LazyComponent: -1, // Doesn't exist yet
133 + MemoComponent: -1, // Doesn't exist yet
134 + Mode: 11,
135 + Profiler: 15,
136 + SimpleMemoComponent: -1, // Doesn't exist yet
137 + SuspenseComponent: 16,
138 + YieldComponent: 9,
139 + };
140 + }
141 + // **********************************************************
142 + // End of copied code.
143 + // **********************************************************
144 +
145 + return {
146 + ReactTypeOfWork,
147 + ReactSymbols,
148 + ReactTypeOfSideEffect,
149 + };
150 +}
151 +
152 +export function attach(
153 + hook: Hook,
154 + rendererID: string,
155 + renderer: ReactRenderer,
156 +): RendererInterface {
157 + const {overrideProps} = renderer;
158 + const {ReactTypeOfWork, ReactSymbols, ReactTypeOfSideEffect} = getInternalReactConstants(renderer.version);
159 + const {PerformedWork} = ReactTypeOfSideEffect;
160 + const {
161 + FunctionComponent,
162 + ClassComponent,
163 + ContextConsumer,
164 + Fragment,
165 + ForwardRef,
166 + HostRoot,
167 + HostPortal,
168 + HostComponent,
169 + HostText,
170 + IncompleteClassComponent,
171 + IndeterminateComponent,
172 + MemoComponent,
173 + SimpleMemoComponent,
174 + } = ReactTypeOfWork;
175 + const {
176 + CONCURRENT_MODE_NUMBER,
177 + CONCURRENT_MODE_SYMBOL_STRING,
178 + DEPRECATED_ASYNC_MODE_SYMBOL_STRING,
179 + CONTEXT_CONSUMER_NUMBER,
180 + CONTEXT_CONSUMER_SYMBOL_STRING,
181 + CONTEXT_PROVIDER_NUMBER,
182 + CONTEXT_PROVIDER_SYMBOL_STRING,
183 + PROFILER_NUMBER,
184 + PROFILER_SYMBOL_STRING,
185 + STRICT_MODE_NUMBER,
186 + STRICT_MODE_SYMBOL_STRING,
187 + SUSPENSE_NUMBER,
188 + SUSPENSE_SYMBOL_STRING,
189 + DEPRECATED_PLACEHOLDER_SYMBOL_STRING,
190 + } = ReactSymbols;
191 +
192 + const primaryFibers: WeakSet<Fiber> = new WeakSet();
193 +
194 + // TODO: we might want to change the data structure
195 + // once we no longer suppport Stack versions of `getData`.
196 + // TODO: Keep in sync with getElementType()
197 + function getRendererDataFromFiber(fiber: Fiber): RendererData {
198 + const { elementType, type, key, tag } = fiber;
199 +
200 + // This is to support lazy components with a Promise as the type.
201 + // see https://github.com/facebook/react/pull/13397
202 + let resolvedType = type;
203 + if (typeof type === 'object' && type !== null) {
204 + if (typeof type.then === 'function') {
205 + resolvedType = type._reactResult;
206 + }
207 + }
208 +
209 + // Suspense has some special behavior when timed out that we have to handle.
210 + // see https://github.com/facebook/react/pull/13823
211 + let isTimedOutSuspense: boolean = false;
212 +
213 + let rendererData: RendererData = ((null: any): RendererData);
214 + let displayName: string = ((null: any): string);
215 + let resolvedContext: any = null;
216 +
217 + switch (tag) {
218 + case ClassComponent:
219 + case FunctionComponent:
220 + case IncompleteClassComponent:
221 + case IndeterminateComponent:
222 + rendererData = {
223 + children: [],
224 + displayName: getDisplayName(resolvedType),
225 + key,
226 + type: ElementTypeClassOrFunction,
227 + };
228 + break;
229 + case ForwardRef:
230 + const functionName = getDisplayName(resolvedType.render, '');
231 + displayName = resolvedType.displayName || (
232 + functionName !== ''
233 + ? `ForwardRef(${functionName})`
234 + : 'ForwardRef'
235 + );
236 + rendererData = {
237 + children: [],
238 + displayName,
239 + key,
240 + type: ElementTypeForwardRef,
241 + };
242 + break;
243 + case HostRoot:
244 + case HostPortal:
245 + case HostComponent:
246 + case HostText:
247 + case Fragment:
248 + // Not displayed in Elements tree
249 + rendererData = {
250 + children: [],
251 + displayName: null,
252 + key,
253 + type: ElementTypeOtherOrUnknown,
254 + };
255 + break;
256 + case MemoComponent:
257 + case SimpleMemoComponent:
258 + if (elementType.displayName) {
259 + displayName = elementType.displayName;
260 + } else {
261 + displayName = type.displayName || type.name;
262 + displayName = displayName ? `Memo(${displayName})` : 'Memo';
263 + }
264 + rendererData = {
265 + children: [],
266 + displayName,
267 + key,
268 + type: ElementTypeMemo,
269 + };
270 + break;
271 + default:
272 + const symbolOrNumber = typeof type === 'object' && type !== null
273 + ? type.$$typeof
274 + : type;
275 +
276 + // $FlowFixMe facebook/flow/issues/2362
277 + const switchValue = typeof symbolOrNumber === 'symbol'
278 + ? symbolOrNumber.toString()
279 + : symbolOrNumber;
280 +
281 + switch (switchValue) {
282 + case CONCURRENT_MODE_NUMBER:
283 + case CONCURRENT_MODE_SYMBOL_STRING:
284 + case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:
285 + // Not displayed in Elements tree
286 + rendererData = {
287 + children: [],
288 + displayName: null,
289 + key,
290 + type: ElementTypeOtherOrUnknown,
291 + };
292 + break;
293 + case CONTEXT_PROVIDER_NUMBER:
294 + case CONTEXT_PROVIDER_SYMBOL_STRING:
295 + // 16.3.0 exposed the context object as "context"
296 + // PR #12501 changed it to "_context" for 16.3.1+
297 + resolvedContext = fiber.type._context || fiber.type.context;
298 + displayName = `${resolvedContext.displayName || 'Context'}.Provider`;
299 +
300 + rendererData = {
301 + children: [],
302 + displayName,
303 + key,
304 + type: ElementTypeContext,
305 + };
306 + break;
307 + case CONTEXT_CONSUMER_NUMBER:
308 + case CONTEXT_CONSUMER_SYMBOL_STRING:
309 + // 16.3-16.5 read from "type" because the Consumer is the actual context object.
310 + // 16.6+ should read from "type._context" because Consumer can be different (in DEV).
311 + resolvedContext = fiber.type._context || fiber.type;
312 +
313 + // NOTE: TraceUpdatesBackendManager depends on the name ending in '.Consumer'
314 + // If you change the name, figure out a more resilient way to detect it.
315 + displayName = `${resolvedContext.displayName || 'Context'}.Consumer`;
316 +
317 + rendererData = {
318 + children: [],
319 + displayName,
320 + key,
321 + type: ElementTypeContext,
322 + };
323 + break;
324 + case STRICT_MODE_NUMBER:
325 + case STRICT_MODE_SYMBOL_STRING:
326 + rendererData = {
327 + children: [],
328 + displayName: null,
329 + key,
330 + type: ElementTypeOtherOrUnknown,
331 + };
332 + break;
333 + case SUSPENSE_NUMBER:
334 + case SUSPENSE_SYMBOL_STRING:
335 + case DEPRECATED_PLACEHOLDER_SYMBOL_STRING:
336 + // Suspense components only have a non-null memoizedState if they're timed-out.
337 + isTimedOutSuspense = fiber.memoizedState !== null;
338 +
339 + rendererData = {
340 + children: [],
341 + displayName: 'Suspense',
342 + key,
343 + type: ElementTypeSuspense,
344 + };
345 + break;
346 + case PROFILER_NUMBER:
347 + case PROFILER_SYMBOL_STRING:
348 + rendererData = {
349 + children: [],
350 + displayName: `Profiler(${fiber.memoizedProps.id})`,
351 + key,
352 + type: ElementTypeProfiler,
353 + };
354 + break;
355 + default:
356 + // Unknown element type.
357 + // This may mean a new element type that has not yet been added to DevTools.
358 + rendererData = {
359 + children: [],
360 + displayName: null,
361 + key,
362 + type: ElementTypeOtherOrUnknown,
363 + };
364 + break;
365 + }
366 + break;
367 + }
368 +
369 + const {children} = rendererData;
370 + if (isTimedOutSuspense) {
371 + // The behavior of timed-out Suspense trees is unique.
372 + // Rather than unmount the timed out content (and possibly lose important state),
373 + // React re-parents this content within a hidden Fragment while the fallback is showing.
374 + // This behavior doesn't need to be observable in the DevTools though.
375 + // It might even result in a bad user experience for e.g. node selection in the Elements panel.
376 + // The easiest fix is to strip out the intermediate Fragment fibers,
377 + // so the Elements panel and Profiler don't need to special case them.
378 + const primaryChildFragment = fiber.child;
379 + const primaryChild = primaryChildFragment.child;
380 + const fallbackChildFragment = primaryChildFragment.sibling;
381 + const fallbackChild = fallbackChildFragment.child;
382 + children.push(primaryChild);
383 + children.push(fallbackChild);
384 + } else {
385 + let child = fiber.child;
386 + while (child) {
387 + children.push(getPrimaryFiber(child));
388 + child = child.sibling;
389 + }
390 + }
391 +
392 + return rendererData;
393 + }
394 +
395 + // This is a slightly annoying indirection.
396 + // It is currently necessary because DevTools wants to use unique objects as keys for instances.
397 + // However fibers have two versions.
398 + // We use this set to remember first encountered fiber for each conceptual instance.
399 + function getPrimaryFiber(fiber: Fiber): Fiber {
400 + if (primaryFibers.has(fiber)) {
401 + return fiber;
402 + }
403 + const {alternate} = fiber;
404 + if (alternate != null && primaryFibers.has(alternate)) {
405 + return alternate;
406 + }
407 + primaryFibers.add(fiber);
408 + return fiber;
409 + }
410 +
411 + function hasDataChanged(prevFiber: Fiber, nextFiber: Fiber): boolean {
412 + switch (nextFiber.tag) {
413 + case ClassComponent:
414 + case FunctionComponent:
415 + case ContextConsumer:
416 + case MemoComponent:
417 + case SimpleMemoComponent:
418 + // For types that execute user code, we check PerformedWork effect.
419 + // We don't reflect bailouts (either referential or sCU) in DevTools.
420 + // eslint-disable-next-line no-bitwise
421 + return (nextFiber.effectTag & PerformedWork) === PerformedWork;
422 + // Note: ContextConsumer only gets PerformedWork effect in 16.3.3+
423 + // so it won't get highlighted with React 16.3.0 to 16.3.2.
424 + default:
425 + // For host components and other types, we compare inputs
426 + // to determine whether something is an update.
427 + return (
428 + prevFiber.memoizedProps !== nextFiber.memoizedProps ||
429 + prevFiber.memoizedState !== nextFiber.memoizedState ||
430 + prevFiber.ref !== nextFiber.ref
431 + );
432 + }
433 + }
434 +
435 + function haveProfilerTimesChanged(prevFiber: Fiber, nextFiber: Fiber): boolean {
436 + return (
437 + prevFiber.actualDuration !== undefined && // Short-circuit check for non-profiling builds
438 + (
439 + prevFiber.actualDuration !== nextFiber.actualDuration ||
440 + prevFiber.actualStartTime !== nextFiber.actualStartTime ||
441 + prevFiber.treeBaseDuration !== nextFiber.treeBaseDuration
442 + )
443 + );
444 + }
445 +
446 + let pendingEvents = [];
447 +
448 + // TODO: Do we still need to send events like this?
449 + function flushPendingEvents() {
450 + const events = pendingEvents;
451 + pendingEvents = [];
452 + for (let i = 0; i < events.length; i++) {
453 + const event = events[i];
454 + hook.emit(event.type, event);
455 + }
456 + }
457 +
458 + function enqueueMount(fiber) {
459 + pendingEvents.push({
460 + fiber: getPrimaryFiber(fiber),
461 + data: getRendererDataFromFiber(fiber),
462 + renderer: rendererID,
463 + type: 'mount',
464 + });
465 +
466 + const isRoot = fiber.tag === HostRoot;
467 + if (isRoot) {
468 + pendingEvents.push({
469 + fiber: getPrimaryFiber(fiber),
470 + renderer: rendererID,
471 + type: 'root',
472 + });
473 + }
474 + }
475 +
476 + function enqueueUpdateIfNecessary(fiber, hasChildOrderChanged) {
477 + const data = getRendererDataFromFiber(fiber);
478 +
479 + if (
480 + !hasChildOrderChanged &&
481 + !hasDataChanged(fiber.alternate, fiber)
482 + ) {
483 + // If only timing information has changed, we still need to update the nodes.
484 + // But we can do it in a faster way since we know it's safe to skip the children.
485 + // It's also important to avoid emitting an "update" signal for the node in this case,
486 + // Since that would indicate to the Profiler that it was part of the "commit" when it wasn't.
487 + if (haveProfilerTimesChanged(fiber.alternate, fiber)) {
488 + pendingEvents.push({
489 + fiber: getPrimaryFiber(fiber),
490 + data,
491 + renderer: rendererID,
492 + type: 'updateProfileTimes',
493 + });
494 + }
495 + return;
496 + }
497 + pendingEvents.push({
498 + fiber: getPrimaryFiber(fiber),
499 + data,
500 + renderer: rendererID,
501 + type: 'update',
502 + });
503 + }
504 +
505 + function enqueueUnmount(fiber) {
506 + const isRoot = fiber.tag === HostRoot;
507 + const primaryFiber = getPrimaryFiber(fiber);
508 + const event = {
509 + fiber: primaryFiber,
510 + renderer: rendererID,
511 + type: 'unmount',
512 + };
513 + if (isRoot) {
514 + pendingEvents.push(event);
515 + } else {
516 + // Non-root fibers are deleted during the commit phase.
517 + // They are deleted in the child-first order. However
518 + // DevTools currently expects deletions to be parent-first.
519 + // This is why we unshift deletions rather than push them.
520 + pendingEvents.unshift(event);
521 + }
522 + primaryFibers.delete(primaryFiber);
523 + }
524 +
525 + function markRootCommitted(fiber) {
526 + pendingEvents.push({
527 + fiber: getPrimaryFiber(fiber),
528 + data: getRendererDataFromFiber(fiber),
529 + renderer: rendererID,
530 + type: 'rootCommitted',
531 + });
532 + }
533 +
534 + function mountFiber(fiber) {
535 + // Depth-first.
536 + // Logs mounting of children first, parents later.
537 + let node = fiber;
538 + outer: while (true) {
539 + if (node.child) {
540 + node.child.return = node;
541 + node = node.child;
542 + continue;
543 + }
544 + enqueueMount(node);
545 + if (node == fiber) {
546 + return;
547 + }
548 + if (node.sibling) {
549 + node.sibling.return = node.return;
550 + node = node.sibling;
551 + continue;
552 + }
553 + while (node.return) {
554 + node = node.return;
555 + enqueueMount(node);
556 + if (node == fiber) {
557 + return;
558 + }
559 + if (node.sibling) {
560 + node.sibling.return = node.return;
561 + node = node.sibling;
562 + continue outer;
563 + }
564 + }
565 + return;
566 + }
567 + }
568 +
569 + function updateFiber(nextFiber, prevFiber) {
570 + // Suspense components only have a non-null memoizedState if they're timed-out.
571 + const isTimedOutSuspense = (
572 + nextFiber.tag === ReactTypeOfWork.SuspenseComponent &&
573 + nextFiber.memoizedState !== null
574 + );
575 +
576 + if (isTimedOutSuspense) {
577 + // The behavior of timed-out Suspense trees is unique.
578 + // Rather than unmount the timed out content (and possibly lose important state),
579 + // React re-parents this content within a hidden Fragment while the fallback is showing.
580 + // This behavior doesn't need to be observable in the DevTools though.
581 + // It might even result in a bad user experience for e.g. node selection in the Elements panel.
582 + // The easiest fix is to strip out the intermediate Fragment fibers,
583 + // so the Elements panel and Profiler don't need to special case them.
584 + const primaryChildFragment = nextFiber.child;
585 + const fallbackChildFragment = primaryChildFragment.sibling;
586 + const fallbackChild = fallbackChildFragment.child;
587 + // The primary, hidden child is never actually updated in this case,
588 + // so we can skip any updates to its tree.
589 + // We only need to track updates to the Fallback UI for now.
590 + if (fallbackChild.alternate) {
591 + updateFiber(fallbackChild, fallbackChild.alternate);
592 + } else {
593 + mountFiber(fallbackChild);
594 + }
595 + enqueueUpdateIfNecessary(nextFiber, false);
596 + } else {
597 + let hasChildOrderChanged = false;
598 + if (nextFiber.child !== prevFiber.child) {
599 + // If the first child is different, we need to traverse them.
600 + // Each next child will be either a new child (mount) or an alternate (update).
601 + let nextChild = nextFiber.child;
602 + let prevChildAtSameIndex = prevFiber.child;
603 + while (nextChild) {
604 + // We already know children will be referentially different because
605 + // they are either new mounts or alternates of previous children.
606 + // Schedule updates and mounts depending on whether alternates exist.
607 + // We don't track deletions here because they are reported separately.
608 + if (nextChild.alternate) {
609 + const prevChild = nextChild.alternate;
610 + updateFiber(nextChild, prevChild);
611 + // However we also keep track if the order of the children matches
612 + // the previous order. They are always different referentially, but
613 + // if the instances line up conceptually we'll want to know that.
614 + if (!hasChildOrderChanged && prevChild !== prevChildAtSameIndex) {
615 + hasChildOrderChanged = true;
616 + }
617 + } else {
618 + mountFiber(nextChild);
619 + if (!hasChildOrderChanged) {
620 + hasChildOrderChanged = true;
621 + }
622 + }
623 + // Try the next child.
624 + nextChild = nextChild.sibling;
625 + // Advance the pointer in the previous list so that we can
626 + // keep comparing if they line up.
627 + if (!hasChildOrderChanged && prevChildAtSameIndex != null) {
628 + prevChildAtSameIndex = prevChildAtSameIndex.sibling;
629 + }
630 + }
631 + // If we have no more children, but used to, they don't line up.
632 + if (!hasChildOrderChanged && prevChildAtSameIndex != null) {
633 + hasChildOrderChanged = true;
634 + }
635 + }
636 + enqueueUpdateIfNecessary(nextFiber, hasChildOrderChanged);
637 + }
638 + }
639 +
640 + function cleanup() {
641 + // We don't patch any methods so there is no cleanup.
642 + }
643 +
644 + function walkTree() {
645 + hook.getFiberRoots(rendererID).forEach(root => {
646 + // Hydrate all the roots for the first time.
647 + mountFiber(root.current);
648 + markRootCommitted(root.current);
649 + });
650 + flushPendingEvents();
651 + }
652 +
653 + function handleCommitFiberUnmount(fiber) {
654 + // This is not recursive.
655 + // We can't traverse fibers after unmounting so instead
656 + // we rely on React telling us about each unmount.
657 + enqueueUnmount(fiber);
658 + }
659 +
660 + function handleCommitFiberRoot(root) {
661 + const current = root.current;
662 + const alternate = current.alternate;
663 +
664 + if (alternate) {
665 + // TODO: relying on this seems a bit fishy.
666 + const wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;
667 + const isMounted = current.memoizedState != null && current.memoizedState.element != null;
668 + if (!wasMounted && isMounted) {
669 + // Mount a new root.
670 + mountFiber(current);
671 + } else if (wasMounted && isMounted) {
672 + // Update an existing root.
673 + updateFiber(current, alternate);
674 + } else if (wasMounted && !isMounted) {
675 + // Unmount an existing root.
676 + enqueueUnmount(current);
677 + }
678 + } else {
679 + // Mount a new root.
680 + mountFiber(current);
681 + }
682 + markRootCommitted(current);
683 + // We're done here.
684 + flushPendingEvents();
685 + }
686 +
687 + // The naming is confusing.
688 + // They deal with opaque nodes (fibers), not elements.
689 + function getNativeFromReactElement(fiber) {
690 + try {
691 + const primaryFiber = fiber;
692 + const hostInstance = renderer.findHostInstanceByFiber(primaryFiber);
693 + return hostInstance;
694 + } catch (err) {
695 + // The fiber might have unmounted by now.
696 + return null;
697 + }
698 + }
699 + function getReactElementFromNative(hostInstance) {
700 + const fiber = renderer.findFiberByHostInstance(hostInstance);
701 + if (fiber != null) {
702 + // TODO: type fibers.
703 + const primaryFiber = getPrimaryFiber((fiber: any));
704 + return primaryFiber;
705 + }
706 + return null;
707 + }
708 +
709 + return {
710 + getNativeFromReactElement,
711 + getReactElementFromNative,
712 + handleCommitFiberRoot,
713 + handleCommitFiberUnmount,
714 + cleanup,
715 + walkTree,
716 + renderer,
717 + };
718 +}
\ No newline at end of file
src/backend/types.js new
+77
@@ -0,0 +1,77 @@
1 +// @flow
2 +
3 +import type {ElementType} from 'src/devtools/types';
4 +
5 +type BundleType =
6 + | 0 // PROD
7 + | 1; // DEV
8 +
9 +type CompositeUpdater = {
10 + canUpdate: boolean,
11 + setInProps: ?(path: Array<string>, value: any) => void,
12 + setInState: ?(path: Array<string>, value: any) => void,
13 + setInContext: ?(path: Array<string>, value: any) => void,
14 +};
15 +
16 +type NativeUpdater = {
17 + setNativeProps: ?(nativeProps: {[key: string]: any}) => void,
18 +};
19 +
20 +// TODO: Better type for Fiber
21 +export type Fiber = Object;
22 +
23 +// TODO: If it's useful for the frontend to know which types of data an Element has
24 +// (e.g. props, state, context, hooks) then we could add a bitmask field for this
25 +// to keep the number of attributes small.
26 +export type RendererData = {|
27 + key: React$Key | null,
28 + displayName: string | null,
29 + children: Array<Fiber>,
30 + type: ElementType,
31 +|};
32 +
33 +export type Interaction = {|
34 + name: string,
35 + timestamp: number,
36 +|};
37 +
38 +export type NativeType = {};
39 +export type RendererID = string;
40 +
41 +export type ReactRenderer = {
42 + findHostInstanceByFiber: (fiber: Object) => ?NativeType,
43 + findFiberByHostInstance: (hostInstance: NativeType) => ?Fiber,
44 + version: string,
45 + bundleType: BundleType,
46 + overrideProps?: ?(fiber: Object, path: Array<string | number>, value: any) => void,
47 +};
48 +
49 +export type RendererInterface = {
50 + cleanup: () => void,
51 + getNativeFromReactElement?: ?(component: Fiber) => ?NativeType,
52 + getReactElementFromNative?: ?(component: NativeType) => ?Fiber,
53 + handleCommitFiberRoot: (fiber: Object) => void,
54 + renderer: ReactRenderer | null,
55 + walkTree: () => void,
56 +};
57 +
58 +export type Handler = (data: any) => void;
59 +
60 +export type Hook = {
61 + listeners: {[key: string]: Array<Handler>},
62 + rendererInterfaces: {[key: string]: RendererInterface},
63 + renderers: {[key: string]: ReactRenderer},
64 +
65 + emit: (evt: string, data: any) => void,
66 + getFiberRoots: (rendererID : string) => Set<Object>,
67 + inject: (renderer: ReactRenderer) => string | null,
68 + on: (evt: string, handler: Handler) => void,
69 + off: (evt: string, handler: Handler) => void,
70 + reactDevtoolsAgent?: ?Object,
71 + sub: (evt: string, handler: Handler) => () => void,
72 +
73 + // React uses these methods.
74 + checkDCE: (fn: Function) => void,
75 + onCommitFiberUnmount: (rendererID: RendererID, fiber: Object) => void,
76 + onCommitFiberRoot: (rendererID: RendererID, fiber: Object) => void,
77 +};
src/backend/utils.js new
+47
@@ -0,0 +1,47 @@
1 +// @flow
2 +
3 +const FB_MODULE_RE = /^(.*) \[from (.*)\]$/;
4 +const cachedDisplayNames: WeakMap<Function, string> = new WeakMap();
5 +
6 +export function getDisplayName(type: Function, fallbackName: string = 'Unknown'): string {
7 + const nameFromCache = cachedDisplayNames.get(type);
8 + if (nameFromCache != null) {
9 + return nameFromCache;
10 + }
11 +
12 + let displayName;
13 +
14 + // The displayName property is not guaranteed to be a string.
15 + // It's only safe to use for our purposes if it's a string.
16 + // github.com/facebook/react-devtools/issues/803
17 + if (typeof type.displayName === 'string') {
18 + displayName = type.displayName;
19 + }
20 +
21 + if (!displayName) {
22 + displayName = type.name || fallbackName;
23 + }
24 +
25 + // Facebook-specific hack to turn "Image [from Image.react]" into just "Image".
26 + // We need displayName with module name for error reports but it clutters the DevTools.
27 + const match = displayName.match(FB_MODULE_RE);
28 + if (match) {
29 + const componentName = match[1];
30 + const moduleName = match[2];
31 + if (componentName && moduleName) {
32 + if (
33 + moduleName === componentName ||
34 + moduleName.startsWith(componentName + '.')
35 + ) {
36 + displayName = componentName;
37 + }
38 + }
39 + }
40 +
41 + cachedDisplayNames.set(type, displayName);
42 + return displayName;
43 +}
44 +
45 +export function guid(): string {
46 + return 'g' + Math.random().toString(16).substr(2);
47 +}
\ No newline at end of file
src/bridge.js new
+91
@@ -0,0 +1,91 @@
1 +// @flow
2 +
3 +import EventEmitter from 'events';
4 +
5 +import type {Wall} from './types';
6 +
7 +const BATCH_DURATION = 100;
8 +
9 +type Message = {|
10 + event: string,
11 + payload: any,
12 +|};
13 +
14 +export default class Bridge extends EventEmitter {
15 + _messageQueue: Array<Message> = [];
16 + _time: number | null = null;
17 + _timeoutID: TimeoutID | null = null;
18 +
19 + wall: Wall;
20 +
21 + constructor (wall: Wall) {
22 + super();
23 +
24 + this.wall = wall;
25 + wall.listen(messages => {
26 + if (Array.isArray(messages)) {
27 + messages.forEach(message => this._emit(message))
28 + } else {
29 + this._emit(messages)
30 + }
31 + })
32 + }
33 +
34 + /**
35 + * Send an event.
36 + *
37 + * @param {String} event
38 + * @param {*} payload
39 + */
40 +
41 + send (event: string, payload: any) {
42 + const time = this._time;
43 +
44 + if (time === null) {
45 + this.wall.send([{ event, payload }])
46 + this._time = Date.now()
47 + } else {
48 + this._messageQueue.push({
49 + event,
50 + payload
51 + })
52 +
53 + const now = Date.now()
54 + if (now - time > BATCH_DURATION) {
55 + this._flush()
56 + } else {
57 + this._timeoutID = setTimeout(() => this._flush(), BATCH_DURATION)
58 + }
59 + }
60 + }
61 +
62 + /**
63 + * Log a message to the devtools background page.
64 + *
65 + * @param {String} message
66 + */
67 +
68 + log (message: string): void {
69 + this.send('log', message)
70 + }
71 +
72 + _flush () {
73 + if (this._messageQueue.length) {
74 + this.wall.send(this._messageQueue)
75 + }
76 + if (this._timeoutID !== null) {
77 + clearTimeout(this._timeoutID)
78 + this._timeoutID = null;
79 + }
80 + this._messageQueue = []
81 + this._time = null
82 + }
83 +
84 + _emit (message: string | Message) {
85 + if (typeof message === 'string') {
86 + this.emit(message)
87 + } else {
88 + this.emit(message.event, message.payload)
89 + }
90 + }
91 +}
\ No newline at end of file
src/devtools/index.js new
+14
@@ -0,0 +1,14 @@
1 +// @flow
2 +
3 +import type { Bridge } from '../types';
4 +
5 +type Shell = {|
6 + connect: (callback: Function) => void,
7 + onReload: (reloadFn: Function) => void,
8 +|};
9 +
10 +export function initDevTools(shell: Shell) {
11 + shell.connect((bridge: Bridge) => {
12 + // TODO ...
13 + });
14 +}
\ No newline at end of file
src/devtools/store.js new
+78
@@ -0,0 +1,78 @@
1 +// @flow
2 +
3 +import EventEmitter from 'events';
4 +
5 +import type { Element } from './types';
6 +import type { Bridge } from '../types';
7 +
8 +/**
9 + * The store is the single source of truth for updates from the backend.
10 + * ContextProviders can subscribe to the Store for specific things they want to provide.
11 + */
12 +class Store extends EventEmitter {
13 + _idToElement: Map<string, Element> = new Map();
14 + _idToParentID: Map<string, string> = new Map();
15 +
16 + roots: Set<string> = new Set();
17 +
18 + constructor(bridge: Bridge) {
19 + super();
20 +
21 + bridge.on('root', this.onBridgeRoot);
22 + bridge.on('mount', this.onBridgeMount);
23 + bridge.on('update', this.onBridgeUpdated);
24 + bridge.on('unmount', this.onBridgeUnmounted);
25 + }
26 +
27 + getElement(id: string) {
28 + return this._idToElement.get(id);
29 + }
30 +
31 + geParent(id: string) {
32 + return this._idToParentID.get(id);
33 + }
34 +
35 + onBridgeMount = (element: Element) => {
36 + const {id} = element;
37 + console.log('%cStore%c onBridgeMount()', 'color: red; font-weight: bold;', 'font-weight: bold;', element);
38 + this._idToElement.set(id, element);
39 +
40 + element.children.forEach(childID => {
41 + this._idToParentID.set(childID, id);
42 + });
43 +
44 + this.emit(id);
45 + };
46 +
47 + onBridgeRoot = (id: string) => {
48 + console.log('%cStore%c onBridgeRoot()', 'color: red; font-weight: bold;', 'font-weight: bold;', id);
49 + if (!this.roots.has(id)) {
50 + this.roots.add(id);
51 + this.emit('roots');
52 + }
53 + };
54 +
55 + onBridgeUnmounted = (id: string) => {
56 + console.log('%cStore%c onBridgeUnmounted()', 'color: red; font-weight: bold;', 'font-weight: bold;', id);
57 + this._idToElement.delete(id);
58 +
59 + if (this._idToParentID.has(id)) {
60 + this._idToParentID.delete(id);
61 + }
62 +
63 + if (this.roots.has(id)) {
64 + this.roots.delete(id);
65 + this.emit('roots');
66 + }
67 + };
68 +
69 + onBridgeUpdated = (element: Element) => {
70 + const {id} = element;
71 + console.log('%cStore%c onBridgeUpdated()', 'color: red; font-weight: bold;', 'font-weight: bold;', element);
72 + this._idToElement.set(id, element);
73 +
74 + this.emit(id);
75 + };
76 +}
77 +
78 +export default Store;
\ No newline at end of file
src/devtools/types.js new
+38
@@ -0,0 +1,38 @@
1 +// @flow
2 +
3 +export const ElementTypeClassOrFunction = 1;
4 +export const ElementTypeContext = 2;
5 +export const ElementTypeForwardRef = 3;
6 +export const ElementTypeMemo = 4;
7 +export const ElementTypeOtherOrUnknown = 5;
8 +export const ElementTypeProfiler = 6;
9 +export const ElementTypeSuspense = 7;
10 +
11 +export type ElementType =
12 + | 1
13 + | 2
14 + | 3
15 + | 4
16 + | 5
17 + | 6
18 + | 7;
19 +
20 +// TODO: Add profiling node
21 +
22 +export type Element = {|
23 + id: string,
24 + type: ElementType,
25 + key: React$Key | null,
26 + displayName: string | null,
27 + children: Array<string>,
28 +|};
29 +
30 +export type InspectedElement = {|
31 + id: string,
32 + context: Object | null,
33 + hooks: Object | null,
34 + props: Object | null,
35 + state: Object | null,
36 + canEditProps: boolean,
37 + source: Object,
38 +|};
src/devtools/views/App.css new
+49
@@ -0,0 +1,49 @@
1 +:root {
2 + /* TODO */
3 + --color-base00: #ffffff;
4 + --color-base01: #f3f3f3;
5 + --color-base02: #eeeeee;
6 + --color-base03: #dadada;
7 + --color-base04: #333333;
8 + --color-base05: #5a5a5a;
9 + --color-special00: #8155cb;
10 + --color-special01: #222222;
11 + --color-special02: #1a1aa6;
12 + --color-special03: #c80000;
13 + --color-special04: #236e25;
14 + --color-special05: #aa0d91;
15 + --color-special06: #ef6632;
16 + --color-special07: #777d88;
17 + --color-state00: #0088FA;
18 + --color-state01: #dadada;
19 + --color-state02: #ffffff;
20 + --color-state03: #ebf1fb;
21 + --color-state04: #FFFF00;
22 + --color-state05: #222222;
23 + --color-state06: #222222;
24 +
25 + --color-component: var(--color-special00);
26 + --color-tree-tag: var(--color-base04);
27 + --color-tree-attr-name: var(--color-special06);
28 + --color-tree-attr-value: var(--color-special02);
29 +
30 + --line-height-tree-compact: 1.5;
31 + --line-height-tree-normal: 1.5;
32 +
33 + /* GitHub.com system fonts */
34 + --font-family-monospace: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
35 + --font-size-tree-compact: 12px;
36 + --font-size-tree-normal: 14px;
37 +}
38 +
39 +.App {
40 + width: 100%;
41 + height: 100%;
42 + overflow: auto;
43 +
44 + -webkit-font-smoothing: antialiased;
45 +}
46 +
47 +* {
48 + box-sizing: border-box;
49 +}
\ No newline at end of file
src/devtools/views/App.js new
+25
@@ -0,0 +1,25 @@
1 +// @flow
2 +
3 +import React, { useMemo } from 'react';
4 +import Store from '../store';
5 +import Tree from './Tree';
6 +import {StoreContext} from './contexts';
7 +import styles from './App.css';
8 +
9 +import type {Bridge} from '../../types';
10 +
11 +type Props = {|
12 + bridge: Bridge,
13 +|};
14 +
15 +export default function App({ bridge }: Props) {
16 + const store = useMemo(() => new Store(bridge), []);
17 +
18 + return (
19 + <StoreContext.Provider value={store}>
20 + <div className={styles.App}>
21 + <Tree />
22 + </div>
23 + </StoreContext.Provider>
24 + );
25 +}
\ No newline at end of file
src/devtools/views/Element.css new
+46
@@ -0,0 +1,46 @@
1 +.Element {
2 + width: 100%;
3 + border-radius: 0.25em;
4 + cursor: pointer;
5 + position: relative;
6 +}
7 +.Element:hover {
8 + background-color: var(--color-state03);
9 +}
10 +
11 +.ArrowClosed,
12 +.ArrowOpen {
13 + position: absolute;
14 + margin-left: -1rem;
15 + width: 1rem;
16 + height: 1rem;
17 + background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23777d88' d='M8 5v14l11-7z'/%3E%3Cpath fill='none' d='M0 24V0h24v24H0z'/%3E%3C/svg%3E");
18 + background-size: 12px 12px;
19 + background-repeat: no-repeat;
20 + background-position: center;
21 +}
22 +.ArrowOpen {
23 + transform: rotate(90deg);
24 +}
25 +
26 +.Component {
27 + color: var(--color-component);
28 +}
29 +.Component:before {
30 + white-space: nowrap;
31 + content: "<";
32 + color: var(--color-tree-tag);
33 +}
34 +.Component:after {
35 + white-space: nowrap;
36 + content: ">";
37 + color: var(--color-tree-tag);
38 +}
39 +
40 +.AttributeName {
41 + color: var(--color-tree-attr-name);
42 +}
43 +
44 +.AttributeValue {
45 + color: var(--color-tree-attr-value);
46 +}
\ No newline at end of file
src/devtools/views/Element.js new
+43
@@ -0,0 +1,43 @@
1 +// @flow
2 +
3 +import React, {Fragment, useContext} from 'react';
4 +import {useElement} from './hooks';
5 +import {StoreContext} from './contexts';
6 +
7 +import styles from './Element.css';
8 +
9 +type Props = {|
10 + depth: number,
11 + id: string,
12 +|};
13 +
14 +export default function Element({depth, id}: Props) {
15 + const store = useContext(StoreContext);
16 + const element = useElement(store, id);
17 +
18 + const {children, displayName, key} = element;
19 +
20 + // TODO: Toggle open/close state
21 +
22 + return (
23 + <Fragment>
24 + <div className={styles.Element} style={{paddingLeft: `${1 + depth}rem`}}>
25 + {children.length > 0 && (
26 + <span className={styles.ArrowOpen}></span>
27 + )}
28 +
29 + <span className={styles.Component}>
30 + {displayName}{key && (
31 + <Fragment>
32 + &nbsp;<span className={styles.AttributeName}>key</span>=<span className={styles.AttributeValue}>"{key}"</span>
33 + </Fragment>
34 + )}
35 + </span>
36 + </div>
37 +
38 + {children.map(childID => (
39 + <Element key={childID} depth={depth + 1} id={childID} />
40 + ))}
41 + </Fragment>
42 + );
43 +}
\ No newline at end of file
src/devtools/views/Tree.css new
+11
@@ -0,0 +1,11 @@
1 +.Tree {
2 + width: 100%;
3 + padding: 0.25rem;
4 + overflow: auto;
5 +
6 + font-family: var(--font-family-monospace);
7 + font-size: var(--font-size-tree-compact);
8 +
9 + /* TODO */
10 + line-height: var(--line-height-tree-compact);
11 +}
\ No newline at end of file
src/devtools/views/Tree.js new
+34
@@ -0,0 +1,34 @@
1 +// @flow
2 +
3 +import React, {useContext} from 'react';
4 +import Element from './Element';
5 +import {StoreContext} from './contexts';
6 +import {useElement, useRoots} from './hooks';
7 +
8 +import styles from './Tree.css';
9 +
10 +type TreeProps = {||};
11 +
12 +export default function Tree({}: TreeProps) {
13 + const store = useContext(StoreContext);
14 + const roots = useRoots(store);
15 +
16 + return (
17 + <div className={styles.Tree}>
18 + {roots.map(id => <Root key={id} id={id} />)}
19 + </div>
20 + );
21 +}
22 +
23 +type RootProps = {|
24 + id: string,
25 +|};
26 +
27 +function Root({id}: RootProps) {
28 + const store = useContext(StoreContext);
29 + const element = useElement(store, id);
30 +
31 + return element.children.map(childID => (
32 + <Element key={childID} depth={0} id={childID} />
33 + ));
34 +}
\ No newline at end of file
src/devtools/views/contexts.js new
+8
@@ -0,0 +1,8 @@
1 +// @flow
2 +
3 +import { createContext } from 'react';
4 +
5 +import Store from '../store';
6 +
7 +export const RootsContext = createContext<Array<string>>([]);
8 +export const StoreContext = createContext<Store>(((null: any): Store));
\ No newline at end of file
src/devtools/views/hooks.js new
+30
@@ -0,0 +1,30 @@
1 +// @flow
2 +
3 +import {createContext, useLayoutEffect, useRef, useState} from 'react';
4 +
5 +import type {Element} from '../types';
6 +import Store from '../store';
7 +
8 +export function useElement(store: Store, id: string): Element {
9 + const [element, setElement] = useState<Element>(((store.getElement(id): any): Element));
10 +
11 + useLayoutEffect(() => {
12 + const handler = () => setElement(((store.getElement(id): any): Element));
13 + store.addListener(id, handler);
14 + return () => store.removeListener(id, handler);
15 + }, [store, id]);
16 +
17 + return element;
18 +}
19 +
20 +export function useRoots(store: Store): Array<string> {
21 + const [roots, setRoots] = useState<Array<string>>(Array.from(store.roots));
22 +
23 + useLayoutEffect(() => {
24 + const handler = () => setRoots(Array.from(store.roots));
25 + store.addListener('roots', handler);
26 + return () => store.removeListener('roots', handler);
27 + }, [store]);
28 +
29 + return roots;
30 +}
\ No newline at end of file
src/hook.js new
+182
@@ -0,0 +1,182 @@
1 +/**
2 + * Install the hook on window, which is an event emitter.
3 + * Note because Chrome content scripts cannot directly modify the window object,
4 + * we are evaling this function by inserting a script tag.
5 + * That's why we have to inline the whole event emitter implementation here.
6 + *
7 + * @flow
8 + */
9 +
10 +import type {Hook} from './types';
11 +
12 +declare var window: any;
13 +
14 +export function installHook(target: any): Hook {
15 + if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) return
16 +
17 + function detectReactBuildType(renderer) {
18 + try {
19 + if (typeof renderer.version === 'string') {
20 + if (renderer.bundleType > 0) {
21 + // This is not a production build.
22 + // We are currently only using 0 (PROD) and 1 (DEV)
23 + // but might add 2 (PROFILE) in the future.
24 + return 'development';
25 + }
26 +
27 + // React 16 uses flat bundles. If we report the bundle as production
28 + // version, it means we also minified and envified it ourselves.
29 + return 'production';
30 +
31 + // Note: There is still a risk that the CommonJS entry point has not
32 + // been envified or uglified. In this case the user would have *both*
33 + // development and production bundle, but only the prod one would run.
34 + // This would be really bad. We have a separate check for this because
35 + // it happens *outside* of the renderer injection. See `checkDCE` below.
36 + }
37 + } catch (err) {}
38 +
39 + return 'production';
40 + }
41 +
42 + function checkDCE(fn: Function) {
43 + // This runs for production versions of React.
44 + // Needs to be super safe.
45 + try {
46 + const toString = Function.prototype.toString;
47 + const code = toString.call(fn);
48 +
49 + // This is a string embedded in the passed function under DEV-only
50 + // condition. However the function executes only in PROD. Therefore,
51 + // if we see it, dead code elimination did not work.
52 + if (code.indexOf('^_^') > -1) {
53 + // Remember to report during next injection.
54 + hasDetectedBadDCE = true;
55 +
56 + // Bonus: throw an exception hoping that it gets picked up by a reporting system.
57 + // Not synchronously so that it doesn't break the calling code.
58 + setTimeout(function() {
59 + throw new Error(
60 + 'React is running in production mode, but dead code ' +
61 + 'elimination has not been applied. Read how to correctly ' +
62 + 'configure React for production: ' +
63 + 'https://fb.me/react-perf-use-the-production-build'
64 + );
65 + });
66 + }
67 + } catch (err) {}
68 + }
69 +
70 + function inject(renderer) {
71 + const id = Math.random().toString(16).slice(2);
72 + renderers[id] = renderer;
73 +
74 + const reactBuildType = hasDetectedBadDCE ? 'deadcode' : detectReactBuildType(renderer);
75 +
76 + hook.emit('renderer', {id, renderer, reactBuildType});
77 +
78 + return id;
79 + }
80 +
81 + let hasDetectedBadDCE = false;
82 +
83 + function sub(event, fn) {
84 + hook.on(event, fn);
85 + return () => hook.off(event, fn);
86 + }
87 +
88 + function on(event, fn) {
89 + if (!listeners[event]) {
90 + listeners[event] = [];
91 + }
92 + listeners[event].push(fn);
93 + }
94 +
95 + function off(event, fn) {
96 + if (!listeners[event]) {
97 + return;
98 + }
99 + const index = listeners[event].indexOf(fn);
100 + if (index !== -1) {
101 + listeners[event].splice(index, 1);
102 + }
103 + if (!listeners[event].length) {
104 + delete listeners[event];
105 + }
106 + }
107 +
108 + function emit(event, data) {
109 + if (listeners[event]) {
110 + listeners[event].map(fn => fn(data));
111 + }
112 + }
113 +
114 + function getFiberRoots(rendererID) {
115 + const roots = fiberRoots;
116 + if (!roots[rendererID]) {
117 + roots[rendererID] = new Set();
118 + }
119 + return roots[rendererID];
120 + }
121 +
122 + function onCommitFiberUnmount(rendererID, fiber) {
123 + // TODO: can we use hook for roots too?
124 + if (rendererInterfaces[rendererID]) {
125 + rendererInterfaces[rendererID].handleCommitFiberUnmount(fiber);
126 + }
127 + }
128 +
129 + function onCommitFiberRoot(rendererID, root) {
130 + const mountedRoots = hook.getFiberRoots(rendererID);
131 + const current = root.current;
132 + const isKnownRoot = mountedRoots.has(root);
133 + const isUnmounting = current.memoizedState == null || current.memoizedState.element == null;
134 +
135 + // Keep track of mounted roots so we can hydrate when DevTools connect.
136 + if (!isKnownRoot && !isUnmounting) {
137 + mountedRoots.add(root);
138 + } else if (isKnownRoot && isUnmounting) {
139 + mountedRoots.delete(root);
140 + }
141 + if (rendererInterfaces[rendererID]) {
142 + rendererInterfaces[rendererID].handleCommitFiberRoot(root);
143 + }
144 + }
145 +
146 + // TODO: More meaningful names for "rendererInterfaces" and "renderers".
147 + const fiberRoots = {};
148 + const rendererInterfaces = {};
149 + const listeners = {};
150 + const renderers = {};
151 +
152 + const hook: Hook = ({
153 + rendererInterfaces,
154 + listeners,
155 + renderers,
156 +
157 + emit,
158 + getFiberRoots,
159 + inject,
160 + on,
161 + off,
162 + sub,
163 +
164 + // This is a legacy flag.
165 + // React v16 checks the hook for this to ensure DevTools is new enough.
166 + supportsFiber: true,
167 +
168 + // React calls these methods.
169 + checkDCE,
170 + onCommitFiberUnmount,
171 + onCommitFiberRoot,
172 + });
173 +
174 + Object.defineProperty(target, '__REACT_DEVTOOLS_GLOBAL_HOOK__', ({
175 + enumerable: false,
176 + get () {
177 + return hook
178 + }
179 + }: Object));
180 +
181 + return hook;
182 +}
\ No newline at end of file
src/types.js new
+12
@@ -0,0 +1,12 @@
1 +// @flow
2 +
3 +// TODO
4 +export type Bridge = any;
5 +
6 +// TODO
7 +export type Hook = any;
8 +
9 +export type Wall = {|
10 + listen: (fn: Function) => void,
11 + send: (data: any) => void,
12 +|};
\ No newline at end of file
yarn.lock new
+10044
@@ -0,0 +1,10044 @@
1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 +# yarn lockfile v1
3 +
4 +
5 +"@babel/code-frame@^7.0.0":
6 + version "7.0.0"
7 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
8 + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
9 + dependencies:
10 + "@babel/highlight" "^7.0.0"
11 +
12 +"@babel/code-frame@^7.0.0-beta.35":
13 + version "7.0.0-beta.39"
14 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.39.tgz#91c90bb65207fc5a55128cb54956ded39e850457"
15 + dependencies:
16 + chalk "^2.0.0"
17 + esutils "^2.0.2"
18 + js-tokens "^3.0.0"
19 +
20 +"@babel/core@^7.1.6":
21 + version "7.1.6"
22 + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3"
23 + integrity sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==
24 + dependencies:
25 + "@babel/code-frame" "^7.0.0"
26 + "@babel/generator" "^7.1.6"
27 + "@babel/helpers" "^7.1.5"
28 + "@babel/parser" "^7.1.6"
29 + "@babel/template" "^7.1.2"
30 + "@babel/traverse" "^7.1.6"
31 + "@babel/types" "^7.1.6"
32 + convert-source-map "^1.1.0"
33 + debug "^4.1.0"
34 + json5 "^2.1.0"
35 + lodash "^4.17.10"
36 + resolve "^1.3.2"
37 + semver "^5.4.1"
38 + source-map "^0.5.0"
39 +
40 +"@babel/generator@^7.1.6":
41 + version "7.1.6"
42 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.6.tgz#001303cf87a5b9d093494a4bf251d7b5d03d3999"
43 + integrity sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==
44 + dependencies:
45 + "@babel/types" "^7.1.6"
46 + jsesc "^2.5.1"
47 + lodash "^4.17.10"
48 + source-map "^0.5.0"
49 + trim-right "^1.0.1"
50 +
51 +"@babel/helper-annotate-as-pure@^7.0.0":
52 + version "7.0.0"
53 + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
54 + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
55 + dependencies:
56 + "@babel/types" "^7.0.0"
57 +
58 +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
59 + version "7.1.0"
60 + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
61 + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
62 + dependencies:
63 + "@babel/helper-explode-assignable-expression" "^7.1.0"
64 + "@babel/types" "^7.0.0"
65 +
66 +"@babel/helper-builder-react-jsx@^7.0.0":
67 + version "7.0.0"
68 + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb"
69 + integrity sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw==
70 + dependencies:
71 + "@babel/types" "^7.0.0"
72 + esutils "^2.0.0"
73 +
74 +"@babel/helper-call-delegate@^7.1.0":
75 + version "7.1.0"
76 + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a"
77 + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==
78 + dependencies:
79 + "@babel/helper-hoist-variables" "^7.0.0"
80 + "@babel/traverse" "^7.1.0"
81 + "@babel/types" "^7.0.0"
82 +
83 +"@babel/helper-define-map@^7.1.0":
84 + version "7.1.0"
85 + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c"
86 + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==
87 + dependencies:
88 + "@babel/helper-function-name" "^7.1.0"
89 + "@babel/types" "^7.0.0"
90 + lodash "^4.17.10"
91 +
92 +"@babel/helper-explode-assignable-expression@^7.1.0":
93 + version "7.1.0"
94 + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
95 + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
96 + dependencies:
97 + "@babel/traverse" "^7.1.0"
98 + "@babel/types" "^7.0.0"
99 +
100 +"@babel/helper-function-name@^7.1.0":
101 + version "7.1.0"
102 + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
103 + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
104 + dependencies:
105 + "@babel/helper-get-function-arity" "^7.0.0"
106 + "@babel/template" "^7.1.0"
107 + "@babel/types" "^7.0.0"
108 +
109 +"@babel/helper-get-function-arity@^7.0.0":
110 + version "7.0.0"
111 + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
112 + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
113 + dependencies:
114 + "@babel/types" "^7.0.0"
115 +
116 +"@babel/helper-hoist-variables@^7.0.0":
117 + version "7.0.0"
118 + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88"
119 + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==
120 + dependencies:
121 + "@babel/types" "^7.0.0"
122 +
123 +"@babel/helper-member-expression-to-functions@^7.0.0":
124 + version "7.0.0"
125 + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f"
126 + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==
127 + dependencies:
128 + "@babel/types" "^7.0.0"
129 +
130 +"@babel/helper-module-imports@^7.0.0":
131 + version "7.0.0"
132 + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
133 + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
134 + dependencies:
135 + "@babel/types" "^7.0.0"
136 +
137 +"@babel/helper-module-transforms@^7.1.0":
138 + version "7.1.0"
139 + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787"
140 + integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==
141 + dependencies:
142 + "@babel/helper-module-imports" "^7.0.0"
143 + "@babel/helper-simple-access" "^7.1.0"
144 + "@babel/helper-split-export-declaration" "^7.0.0"
145 + "@babel/template" "^7.1.0"
146 + "@babel/types" "^7.0.0"
147 + lodash "^4.17.10"
148 +
149 +"@babel/helper-optimise-call-expression@^7.0.0":
150 + version "7.0.0"
151 + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
152 + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
153 + dependencies:
154 + "@babel/types" "^7.0.0"
155 +
156 +"@babel/helper-plugin-utils@^7.0.0":
157 + version "7.0.0"
158 + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
159 + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
160 +
161 +"@babel/helper-regex@^7.0.0":
162 + version "7.0.0"
163 + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27"
164 + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==
165 + dependencies:
166 + lodash "^4.17.10"
167 +
168 +"@babel/helper-remap-async-to-generator@^7.1.0":
169 + version "7.1.0"
170 + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
171 + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
172 + dependencies:
173 + "@babel/helper-annotate-as-pure" "^7.0.0"
174 + "@babel/helper-wrap-function" "^7.1.0"
175 + "@babel/template" "^7.1.0"
176 + "@babel/traverse" "^7.1.0"
177 + "@babel/types" "^7.0.0"
178 +
179 +"@babel/helper-replace-supers@^7.1.0":
180 + version "7.1.0"
181 + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362"
182 + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==
183 + dependencies:
184 + "@babel/helper-member-expression-to-functions" "^7.0.0"
185 + "@babel/helper-optimise-call-expression" "^7.0.0"
186 + "@babel/traverse" "^7.1.0"
187 + "@babel/types" "^7.0.0"
188 +
189 +"@babel/helper-simple-access@^7.1.0":
190 + version "7.1.0"
191 + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
192 + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
193 + dependencies:
194 + "@babel/template" "^7.1.0"
195 + "@babel/types" "^7.0.0"
196 +
197 +"@babel/helper-split-export-declaration@^7.0.0":
198 + version "7.0.0"
199 + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
200 + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
201 + dependencies:
202 + "@babel/types" "^7.0.0"
203 +
204 +"@babel/helper-wrap-function@^7.1.0":
205 + version "7.1.0"
206 + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66"
207 + integrity sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==
208 + dependencies:
209 + "@babel/helper-function-name" "^7.1.0"
210 + "@babel/template" "^7.1.0"
211 + "@babel/traverse" "^7.1.0"
212 + "@babel/types" "^7.0.0"
213 +
214 +"@babel/helpers@^7.1.5":
215 + version "7.1.5"
216 + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996"
217 + integrity sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==
218 + dependencies:
219 + "@babel/template" "^7.1.2"
220 + "@babel/traverse" "^7.1.5"
221 + "@babel/types" "^7.1.5"
222 +
223 +"@babel/highlight@^7.0.0":
224 + version "7.0.0"
225 + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
226 + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
227 + dependencies:
228 + chalk "^2.0.0"
229 + esutils "^2.0.2"
230 + js-tokens "^4.0.0"
231 +
232 +"@babel/parser@^7.1.2", "@babel/parser@^7.1.6":
233 + version "7.1.6"
234 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.6.tgz#16e97aca1ec1062324a01c5a6a7d0df8dd189854"
235 + integrity sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==
236 +
237 +"@babel/plugin-proposal-async-generator-functions@^7.1.0":
238 + version "7.1.0"
239 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce"
240 + integrity sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==
241 + dependencies:
242 + "@babel/helper-plugin-utils" "^7.0.0"
243 + "@babel/helper-remap-async-to-generator" "^7.1.0"
244 + "@babel/plugin-syntax-async-generators" "^7.0.0"
245 +
246 +"@babel/plugin-proposal-class-properties@^7.1.0":
247 + version "7.1.0"
248 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4"
249 + integrity sha512-/PCJWN+CKt5v1xcGn4vnuu13QDoV+P7NcICP44BoonAJoPSGwVkgrXihFIQGiEjjPlUDBIw1cM7wYFLARS2/hw==
250 + dependencies:
251 + "@babel/helper-function-name" "^7.1.0"
252 + "@babel/helper-member-expression-to-functions" "^7.0.0"
253 + "@babel/helper-optimise-call-expression" "^7.0.0"
254 + "@babel/helper-plugin-utils" "^7.0.0"
255 + "@babel/helper-replace-supers" "^7.1.0"
256 + "@babel/plugin-syntax-class-properties" "^7.0.0"
257 +
258 +"@babel/plugin-proposal-json-strings@^7.0.0":
259 + version "7.0.0"
260 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e"
261 + integrity sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==
262 + dependencies:
263 + "@babel/helper-plugin-utils" "^7.0.0"
264 + "@babel/plugin-syntax-json-strings" "^7.0.0"
265 +
266 +"@babel/plugin-proposal-object-rest-spread@^7.0.0":
267 + version "7.0.0"
268 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e"
269 + integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==
270 + dependencies:
271 + "@babel/helper-plugin-utils" "^7.0.0"
272 + "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
273 +
274 +"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
275 + version "7.0.0"
276 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425"
277 + integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==
278 + dependencies:
279 + "@babel/helper-plugin-utils" "^7.0.0"
280 + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
281 +
282 +"@babel/plugin-proposal-unicode-property-regex@^7.0.0":
283 + version "7.0.0"
284 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33"
285 + integrity sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==
286 + dependencies:
287 + "@babel/helper-plugin-utils" "^7.0.0"
288 + "@babel/helper-regex" "^7.0.0"
289 + regexpu-core "^4.2.0"
290 +
291 +"@babel/plugin-syntax-async-generators@^7.0.0":
292 + version "7.0.0"
293 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c"
294 + integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==
295 + dependencies:
296 + "@babel/helper-plugin-utils" "^7.0.0"
297 +
298 +"@babel/plugin-syntax-class-properties@^7.0.0":
299 + version "7.0.0"
300 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634"
301 + integrity sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w==
302 + dependencies:
303 + "@babel/helper-plugin-utils" "^7.0.0"
304 +
305 +"@babel/plugin-syntax-flow@^7.0.0":
306 + version "7.0.0"
307 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz#70638aeaad9ee426bc532e51523cff8ff02f6f17"
308 + integrity sha512-zGcuZWiWWDa5qTZ6iAnpG0fnX/GOu49pGR5PFvkQ9GmKNaSphXQnlNXh/LG20sqWtNrx/eB6krzfEzcwvUyeFA==
309 + dependencies:
310 + "@babel/helper-plugin-utils" "^7.0.0"
311 +
312 +"@babel/plugin-syntax-json-strings@^7.0.0":
313 + version "7.0.0"
314 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd"
315 + integrity sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==
316 + dependencies:
317 + "@babel/helper-plugin-utils" "^7.0.0"
318 +
319 +"@babel/plugin-syntax-jsx@^7.0.0":
320 + version "7.0.0"
321 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd"
322 + integrity sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg==
323 + dependencies:
324 + "@babel/helper-plugin-utils" "^7.0.0"
325 +
326 +"@babel/plugin-syntax-object-rest-spread@^7.0.0":
327 + version "7.0.0"
328 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b"
329 + integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==
330 + dependencies:
331 + "@babel/helper-plugin-utils" "^7.0.0"
332 +
333 +"@babel/plugin-syntax-optional-catch-binding@^7.0.0":
334 + version "7.0.0"
335 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475"
336 + integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==
337 + dependencies:
338 + "@babel/helper-plugin-utils" "^7.0.0"
339 +
340 +"@babel/plugin-transform-arrow-functions@^7.0.0":
341 + version "7.0.0"
342 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749"
343 + integrity sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==
344 + dependencies:
345 + "@babel/helper-plugin-utils" "^7.0.0"
346 +
347 +"@babel/plugin-transform-async-to-generator@^7.1.0":
348 + version "7.1.0"
349 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811"
350 + integrity sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==
351 + dependencies:
352 + "@babel/helper-module-imports" "^7.0.0"
353 + "@babel/helper-plugin-utils" "^7.0.0"
354 + "@babel/helper-remap-async-to-generator" "^7.1.0"
355 +
356 +"@babel/plugin-transform-block-scoped-functions@^7.0.0":
357 + version "7.0.0"
358 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07"
359 + integrity sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==
360 + dependencies:
361 + "@babel/helper-plugin-utils" "^7.0.0"
362 +
363 +"@babel/plugin-transform-block-scoping@^7.1.5":
364 + version "7.1.5"
365 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz#3e8e0bc9a5104519923302a24f748f72f2f61f37"
366 + integrity sha512-jlYcDrz+5ayWC7mxgpn1Wj8zj0mmjCT2w0mPIMSwO926eXBRxpEgoN/uQVRBfjtr8ayjcmS+xk2G1jaP8JjMJQ==
367 + dependencies:
368 + "@babel/helper-plugin-utils" "^7.0.0"
369 + lodash "^4.17.10"
370 +
371 +"@babel/plugin-transform-classes@^7.1.0":
372 + version "7.1.0"
373 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249"
374 + integrity sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==
375 + dependencies:
376 + "@babel/helper-annotate-as-pure" "^7.0.0"
377 + "@babel/helper-define-map" "^7.1.0"
378 + "@babel/helper-function-name" "^7.1.0"
379 + "@babel/helper-optimise-call-expression" "^7.0.0"
380 + "@babel/helper-plugin-utils" "^7.0.0"
381 + "@babel/helper-replace-supers" "^7.1.0"
382 + "@babel/helper-split-export-declaration" "^7.0.0"
383 + globals "^11.1.0"
384 +
385 +"@babel/plugin-transform-computed-properties@^7.0.0":
386 + version "7.0.0"
387 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31"
388 + integrity sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==
389 + dependencies:
390 + "@babel/helper-plugin-utils" "^7.0.0"
391 +
392 +"@babel/plugin-transform-destructuring@^7.0.0":
393 + version "7.1.3"
394 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f"
395 + integrity sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw==
396 + dependencies:
397 + "@babel/helper-plugin-utils" "^7.0.0"
398 +
399 +"@babel/plugin-transform-dotall-regex@^7.0.0":
400 + version "7.0.0"
401 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58"
402 + integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==
403 + dependencies:
404 + "@babel/helper-plugin-utils" "^7.0.0"
405 + "@babel/helper-regex" "^7.0.0"
406 + regexpu-core "^4.1.3"
407 +
408 +"@babel/plugin-transform-duplicate-keys@^7.0.0":
409 + version "7.0.0"
410 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86"
411 + integrity sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==
412 + dependencies:
413 + "@babel/helper-plugin-utils" "^7.0.0"
414 +
415 +"@babel/plugin-transform-exponentiation-operator@^7.1.0":
416 + version "7.1.0"
417 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73"
418 + integrity sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==
419 + dependencies:
420 + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
421 + "@babel/helper-plugin-utils" "^7.0.0"
422 +
423 +"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.1.6":
424 + version "7.1.6"
425 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.1.6.tgz#4b7be62604d39e63cfe23b1d00d63e9fb7e763ba"
426 + integrity sha512-0tyFAAjJmnRlr8MVJV39ASn1hv+PbdVP71hf7aAseqLfQ0o9QXk9htbMbq7/ZYXnUIp6gDw0lUUP0+PQMbbtmg==
427 + dependencies:
428 + "@babel/helper-plugin-utils" "^7.0.0"
429 + "@babel/plugin-syntax-flow" "^7.0.0"
430 +
431 +"@babel/plugin-transform-for-of@^7.0.0":
432 + version "7.0.0"
433 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39"
434 + integrity sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==
435 + dependencies:
436 + "@babel/helper-plugin-utils" "^7.0.0"
437 +
438 +"@babel/plugin-transform-function-name@^7.1.0":
439 + version "7.1.0"
440 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb"
441 + integrity sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==
442 + dependencies:
443 + "@babel/helper-function-name" "^7.1.0"
444 + "@babel/helper-plugin-utils" "^7.0.0"
445 +
446 +"@babel/plugin-transform-literals@^7.0.0":
447 + version "7.0.0"
448 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86"
449 + integrity sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==
450 + dependencies:
451 + "@babel/helper-plugin-utils" "^7.0.0"
452 +
453 +"@babel/plugin-transform-modules-amd@^7.1.0":
454 + version "7.1.0"
455 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8"
456 + integrity sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==
457 + dependencies:
458 + "@babel/helper-module-transforms" "^7.1.0"
459 + "@babel/helper-plugin-utils" "^7.0.0"
460 +
461 +"@babel/plugin-transform-modules-commonjs@^7.1.0":
462 + version "7.1.0"
463 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c"
464 + integrity sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==
465 + dependencies:
466 + "@babel/helper-module-transforms" "^7.1.0"
467 + "@babel/helper-plugin-utils" "^7.0.0"
468 + "@babel/helper-simple-access" "^7.1.0"
469 +
470 +"@babel/plugin-transform-modules-systemjs@^7.0.0":
471 + version "7.1.3"
472 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0"
473 + integrity sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw==
474 + dependencies:
475 + "@babel/helper-hoist-variables" "^7.0.0"
476 + "@babel/helper-plugin-utils" "^7.0.0"
477 +
478 +"@babel/plugin-transform-modules-umd@^7.1.0":
479 + version "7.1.0"
480 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8"
481 + integrity sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==
482 + dependencies:
483 + "@babel/helper-module-transforms" "^7.1.0"
484 + "@babel/helper-plugin-utils" "^7.0.0"
485 +
486 +"@babel/plugin-transform-new-target@^7.0.0":
487 + version "7.0.0"
488 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a"
489 + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==
490 + dependencies:
491 + "@babel/helper-plugin-utils" "^7.0.0"
492 +
493 +"@babel/plugin-transform-object-super@^7.1.0":
494 + version "7.1.0"
495 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb"
496 + integrity sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==
497 + dependencies:
498 + "@babel/helper-plugin-utils" "^7.0.0"
499 + "@babel/helper-replace-supers" "^7.1.0"
500 +
501 +"@babel/plugin-transform-parameters@^7.1.0":
502 + version "7.1.0"
503 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed"
504 + integrity sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==
505 + dependencies:
506 + "@babel/helper-call-delegate" "^7.1.0"
507 + "@babel/helper-get-function-arity" "^7.0.0"
508 + "@babel/helper-plugin-utils" "^7.0.0"
509 +
510 +"@babel/plugin-transform-react-display-name@^7.0.0":
511 + version "7.0.0"
512 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee"
513 + integrity sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==
514 + dependencies:
515 + "@babel/helper-plugin-utils" "^7.0.0"
516 +
517 +"@babel/plugin-transform-react-jsx-self@^7.0.0":
518 + version "7.0.0"
519 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11"
520 + integrity sha512-pymy+AK12WO4safW1HmBpwagUQRl9cevNX+82AIAtU1pIdugqcH+nuYP03Ja6B+N4gliAaKWAegIBL/ymALPHA==
521 + dependencies:
522 + "@babel/helper-plugin-utils" "^7.0.0"
523 + "@babel/plugin-syntax-jsx" "^7.0.0"
524 +
525 +"@babel/plugin-transform-react-jsx-source@^7.0.0":
526 + version "7.0.0"
527 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c"
528 + integrity sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w==
529 + dependencies:
530 + "@babel/helper-plugin-utils" "^7.0.0"
531 + "@babel/plugin-syntax-jsx" "^7.0.0"
532 +
533 +"@babel/plugin-transform-react-jsx@^7.0.0":
534 + version "7.1.6"
535 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.1.6.tgz#e6188e7d2a2dcd2796d45a87f8b0a8c906f57d1a"
536 + integrity sha512-iU/IUlPEYDRwuqLwqVobzPAZkBOQoZ9xRTBmj6ANuk5g/Egn/zdNGnXlSoKeNmKoYVeIRxx5GZhWmMhLik8dag==
537 + dependencies:
538 + "@babel/helper-builder-react-jsx" "^7.0.0"
539 + "@babel/helper-plugin-utils" "^7.0.0"
540 + "@babel/plugin-syntax-jsx" "^7.0.0"
541 +
542 +"@babel/plugin-transform-regenerator@^7.0.0":
543 + version "7.0.0"
544 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1"
545 + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==
546 + dependencies:
547 + regenerator-transform "^0.13.3"
548 +
549 +"@babel/plugin-transform-shorthand-properties@^7.0.0":
550 + version "7.0.0"
551 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15"
552 + integrity sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==
553 + dependencies:
554 + "@babel/helper-plugin-utils" "^7.0.0"
555 +
556 +"@babel/plugin-transform-spread@^7.0.0":
557 + version "7.0.0"
558 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b"
559 + integrity sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==
560 + dependencies:
561 + "@babel/helper-plugin-utils" "^7.0.0"
562 +
563 +"@babel/plugin-transform-sticky-regex@^7.0.0":
564 + version "7.0.0"
565 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366"
566 + integrity sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==
567 + dependencies:
568 + "@babel/helper-plugin-utils" "^7.0.0"
569 + "@babel/helper-regex" "^7.0.0"
570 +
571 +"@babel/plugin-transform-template-literals@^7.0.0":
572 + version "7.0.0"
573 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65"
574 + integrity sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==
575 + dependencies:
576 + "@babel/helper-annotate-as-pure" "^7.0.0"
577 + "@babel/helper-plugin-utils" "^7.0.0"
578 +
579 +"@babel/plugin-transform-typeof-symbol@^7.0.0":
580 + version "7.0.0"
581 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9"
582 + integrity sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==
583 + dependencies:
584 + "@babel/helper-plugin-utils" "^7.0.0"
585 +
586 +"@babel/plugin-transform-unicode-regex@^7.0.0":
587 + version "7.0.0"
588 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc"
589 + integrity sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==
590 + dependencies:
591 + "@babel/helper-plugin-utils" "^7.0.0"
592 + "@babel/helper-regex" "^7.0.0"
593 + regexpu-core "^4.1.3"
594 +
595 +"@babel/preset-env@^7.1.6":
596 + version "7.1.6"
597 + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.6.tgz#a0bf4b96b6bfcf6e000afc5b72b4abe7cc13ae97"
598 + integrity sha512-YIBfpJNQMBkb6MCkjz/A9J76SNCSuGVamOVBgoUkLzpJD/z8ghHi9I42LQ4pulVX68N/MmImz6ZTixt7Azgexw==
599 + dependencies:
600 + "@babel/helper-module-imports" "^7.0.0"
601 + "@babel/helper-plugin-utils" "^7.0.0"
602 + "@babel/plugin-proposal-async-generator-functions" "^7.1.0"
603 + "@babel/plugin-proposal-json-strings" "^7.0.0"
604 + "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
605 + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
606 + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0"
607 + "@babel/plugin-syntax-async-generators" "^7.0.0"
608 + "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
609 + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
610 + "@babel/plugin-transform-arrow-functions" "^7.0.0"
611 + "@babel/plugin-transform-async-to-generator" "^7.1.0"
612 + "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
613 + "@babel/plugin-transform-block-scoping" "^7.1.5"
614 + "@babel/plugin-transform-classes" "^7.1.0"
615 + "@babel/plugin-transform-computed-properties" "^7.0.0"
616 + "@babel/plugin-transform-destructuring" "^7.0.0"
617 + "@babel/plugin-transform-dotall-regex" "^7.0.0"
618 + "@babel/plugin-transform-duplicate-keys" "^7.0.0"
619 + "@babel/plugin-transform-exponentiation-operator" "^7.1.0"
620 + "@babel/plugin-transform-for-of" "^7.0.0"
621 + "@babel/plugin-transform-function-name" "^7.1.0"
622 + "@babel/plugin-transform-literals" "^7.0.0"
623 + "@babel/plugin-transform-modules-amd" "^7.1.0"
624 + "@babel/plugin-transform-modules-commonjs" "^7.1.0"
625 + "@babel/plugin-transform-modules-systemjs" "^7.0.0"
626 + "@babel/plugin-transform-modules-umd" "^7.1.0"
627 + "@babel/plugin-transform-new-target" "^7.0.0"
628 + "@babel/plugin-transform-object-super" "^7.1.0"
629 + "@babel/plugin-transform-parameters" "^7.1.0"
630 + "@babel/plugin-transform-regenerator" "^7.0.0"
631 + "@babel/plugin-transform-shorthand-properties" "^7.0.0"
632 + "@babel/plugin-transform-spread" "^7.0.0"
633 + "@babel/plugin-transform-sticky-regex" "^7.0.0"
634 + "@babel/plugin-transform-template-literals" "^7.0.0"
635 + "@babel/plugin-transform-typeof-symbol" "^7.0.0"
636 + "@babel/plugin-transform-unicode-regex" "^7.0.0"
637 + browserslist "^4.1.0"
638 + invariant "^2.2.2"
639 + js-levenshtein "^1.1.3"
640 + semver "^5.3.0"
641 +
642 +"@babel/preset-flow@^7.0.0":
643 + version "7.0.0"
644 + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2"
645 + integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ==
646 + dependencies:
647 + "@babel/helper-plugin-utils" "^7.0.0"
648 + "@babel/plugin-transform-flow-strip-types" "^7.0.0"
649 +
650 +"@babel/preset-react@^7.0.0":
651 + version "7.0.0"
652 + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0"
653 + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==
654 + dependencies:
655 + "@babel/helper-plugin-utils" "^7.0.0"
656 + "@babel/plugin-transform-react-display-name" "^7.0.0"
657 + "@babel/plugin-transform-react-jsx" "^7.0.0"
658 + "@babel/plugin-transform-react-jsx-self" "^7.0.0"
659 + "@babel/plugin-transform-react-jsx-source" "^7.0.0"
660 +
661 +"@babel/template@^7.1.0", "@babel/template@^7.1.2":
662 + version "7.1.2"
663 + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
664 + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==
665 + dependencies:
666 + "@babel/code-frame" "^7.0.0"
667 + "@babel/parser" "^7.1.2"
668 + "@babel/types" "^7.1.2"
669 +
670 +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6":
671 + version "7.1.6"
672 + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
673 + integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
674 + dependencies:
675 + "@babel/code-frame" "^7.0.0"
676 + "@babel/generator" "^7.1.6"
677 + "@babel/helper-function-name" "^7.1.0"
678 + "@babel/helper-split-export-declaration" "^7.0.0"
679 + "@babel/parser" "^7.1.6"
680 + "@babel/types" "^7.1.6"
681 + debug "^4.1.0"
682 + globals "^11.1.0"
683 + lodash "^4.17.10"
684 +
685 +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.5", "@babel/types@^7.1.6":
686 + version "7.1.6"
687 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.6.tgz#0adb330c3a281348a190263aceb540e10f04bcce"
688 + integrity sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==
689 + dependencies:
690 + esutils "^2.0.2"
691 + lodash "^4.17.10"
692 + to-fast-properties "^2.0.0"
693 +
694 +"@webassemblyjs/ast@1.7.11":
695 + version "1.7.11"
696 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
697 + integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==
698 + dependencies:
699 + "@webassemblyjs/helper-module-context" "1.7.11"
700 + "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
701 + "@webassemblyjs/wast-parser" "1.7.11"
702 +
703 +"@webassemblyjs/floating-point-hex-parser@1.7.11":
704 + version "1.7.11"
705 + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313"
706 + integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==
707 +
708 +"@webassemblyjs/helper-api-error@1.7.11":
709 + version "1.7.11"
710 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a"
711 + integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==
712 +
713 +"@webassemblyjs/helper-buffer@1.7.11":
714 + version "1.7.11"
715 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b"
716 + integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==
717 +
718 +"@webassemblyjs/helper-code-frame@1.7.11":
719 + version "1.7.11"
720 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b"
721 + integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==
722 + dependencies:
723 + "@webassemblyjs/wast-printer" "1.7.11"
724 +
725 +"@webassemblyjs/helper-fsm@1.7.11":
726 + version "1.7.11"
727 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181"
728 + integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==
729 +
730 +"@webassemblyjs/helper-module-context@1.7.11":
731 + version "1.7.11"
732 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209"
733 + integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==
734 +
735 +"@webassemblyjs/helper-wasm-bytecode@1.7.11":
736 + version "1.7.11"
737 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06"
738 + integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==
739 +
740 +"@webassemblyjs/helper-wasm-section@1.7.11":
741 + version "1.7.11"
742 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a"
743 + integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==
744 + dependencies:
745 + "@webassemblyjs/ast" "1.7.11"
746 + "@webassemblyjs/helper-buffer" "1.7.11"
747 + "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
748 + "@webassemblyjs/wasm-gen" "1.7.11"
749 +
750 +"@webassemblyjs/ieee754@1.7.11":
751 + version "1.7.11"
752 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b"
753 + integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==
754 + dependencies:
755 + "@xtuc/ieee754" "^1.2.0"
756 +
757 +"@webassemblyjs/leb128@1.7.11":
758 + version "1.7.11"
759 + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63"
760 + integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==
761 + dependencies:
762 + "@xtuc/long" "4.2.1"
763 +
764 +"@webassemblyjs/utf8@1.7.11":
765 + version "1.7.11"
766 + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82"
767 + integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==
768 +
769 +"@webassemblyjs/wasm-edit@1.7.11":
770 + version "1.7.11"
771 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005"
772 + integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==
773 + dependencies:
774 + "@webassemblyjs/ast" "1.7.11"
775 + "@webassemblyjs/helper-buffer" "1.7.11"
776 + "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
777 + "@webassemblyjs/helper-wasm-section" "1.7.11"
778 + "@webassemblyjs/wasm-gen" "1.7.11"
779 + "@webassemblyjs/wasm-opt" "1.7.11"
780 + "@webassemblyjs/wasm-parser" "1.7.11"
781 + "@webassemblyjs/wast-printer" "1.7.11"
782 +
783 +"@webassemblyjs/wasm-gen@1.7.11":
784 + version "1.7.11"
785 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8"
786 + integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==
787 + dependencies:
788 + "@webassemblyjs/ast" "1.7.11"
789 + "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
790 + "@webassemblyjs/ieee754" "1.7.11"
791 + "@webassemblyjs/leb128" "1.7.11"
792 + "@webassemblyjs/utf8" "1.7.11"
793 +
794 +"@webassemblyjs/wasm-opt@1.7.11":
795 + version "1.7.11"
796 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7"
797 + integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==
798 + dependencies:
799 + "@webassemblyjs/ast" "1.7.11"
800 + "@webassemblyjs/helper-buffer" "1.7.11"
801 + "@webassemblyjs/wasm-gen" "1.7.11"
802 + "@webassemblyjs/wasm-parser" "1.7.11"
803 +
804 +"@webassemblyjs/wasm-parser@1.7.11":
805 + version "1.7.11"
806 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a"
807 + integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==
808 + dependencies:
809 + "@webassemblyjs/ast" "1.7.11"
810 + "@webassemblyjs/helper-api-error" "1.7.11"
811 + "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
812 + "@webassemblyjs/ieee754" "1.7.11"
813 + "@webassemblyjs/leb128" "1.7.11"
814 + "@webassemblyjs/utf8" "1.7.11"
815 +
816 +"@webassemblyjs/wast-parser@1.7.11":
817 + version "1.7.11"
818 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c"
819 + integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==
820 + dependencies:
821 + "@webassemblyjs/ast" "1.7.11"
822 + "@webassemblyjs/floating-point-hex-parser" "1.7.11"
823 + "@webassemblyjs/helper-api-error" "1.7.11"
824 + "@webassemblyjs/helper-code-frame" "1.7.11"
825 + "@webassemblyjs/helper-fsm" "1.7.11"
826 + "@xtuc/long" "4.2.1"
827 +
828 +"@webassemblyjs/wast-printer@1.7.11":
829 + version "1.7.11"
830 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813"
831 + integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==
832 + dependencies:
833 + "@webassemblyjs/ast" "1.7.11"
834 + "@webassemblyjs/wast-parser" "1.7.11"
835 + "@xtuc/long" "4.2.1"
836 +
837 +"@xtuc/ieee754@^1.2.0":
838 + version "1.2.0"
839 + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
840 + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
841 +
842 +"@xtuc/long@4.2.1":
843 + version "4.2.1"
844 + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
845 + integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
846 +
847 +Base64@~0.2.0:
848 + version "0.2.1"
849 + resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028"
850 + integrity sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=
851 +
852 +JSONSelect@0.2.1:
853 + version "0.2.1"
854 + resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.2.1.tgz#415418a526d33fe31d74b4defa3c836d485ec203"
855 +
856 +JSONStream@^1.0.4:
857 + version "1.3.2"
858 + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea"
859 + dependencies:
860 + jsonparse "^1.2.0"
861 + through ">=2.2.7 <3"
862 +
863 +abab@^1.0.4:
864 + version "1.0.4"
865 + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
866 +
867 +abbrev@1:
868 + version "1.1.1"
869 + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
870 + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
871 +
872 +acorn-dynamic-import@^3.0.0:
873 + version "3.0.0"
874 + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278"
875 + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==
876 + dependencies:
877 + acorn "^5.0.0"
878 +
879 +acorn-globals@^4.1.0:
880 + version "4.1.0"
881 + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538"
882 + dependencies:
883 + acorn "^5.0.0"
884 +
885 +acorn-jsx@^3.0.0:
886 + version "3.0.1"
887 + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
888 + dependencies:
889 + acorn "^3.0.4"
890 +
891 +acorn@^3.0.4, acorn@^3.1.0:
892 + version "3.3.0"
893 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
894 +
895 +acorn@^5.0.0, acorn@^5.3.0:
896 + version "5.3.0"
897 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822"
898 +
899 +acorn@^5.0.1:
900 + version "5.1.1"
901 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75"
902 +
903 +acorn@^5.6.2:
904 + version "5.7.3"
905 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
906 + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
907 +
908 +add-stream@^1.0.0:
909 + version "1.0.0"
910 + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
911 +
912 +addons-linter@0.22.3:
913 + version "0.22.3"
914 + resolved "https://registry.yarnpkg.com/addons-linter/-/addons-linter-0.22.3.tgz#c954a32c569afd68281c37acb263c65374c6f5ad"
915 + dependencies:
916 + ajv "5.2.0"
917 + chalk "1.1.3"
918 + cheerio "0.22.0"
919 + columnify "1.5.4"
920 + crx-parser "0.1.2"
921 + dispensary "0.10.10"
922 + es6-promisify "5.0.0"
923 + eslint "3.19.0"
924 + eslint-plugin-no-unsafe-innerhtml "1.0.16"
925 + esprima "3.1.3"
926 + first-chunk-stream "2.0.0"
927 + jed "1.1.1"
928 + pino "^4.6.0"
929 + postcss "6.0.2"
930 + relaxed-json "1.0.1"
931 + semver "5.3.0"
932 + source-map-support "0.4.15"
933 + strip-bom-stream "3.0.0"
934 + whatwg-url "5.0.0"
935 + xmldom "0.1.27"
936 + yargs "8.0.2"
937 + yauzl "2.8.0"
938 +
939 +adm-zip@^0.4.7:
940 + version "0.4.11"
941 + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a"
942 + integrity sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==
943 +
944 +adm-zip@~0.4.x:
945 + version "0.4.7"
946 + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1"
947 +
948 +ajv-errors@^1.0.0:
949 + version "1.0.0"
950 + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59"
951 + integrity sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=
952 +
953 +ajv-keywords@^1.0.0:
954 + version "1.5.1"
955 + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
956 +
957 +ajv-keywords@^3.1.0:
958 + version "3.2.0"
959 + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
960 + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
961 +
962 +ajv@5.2.0:
963 + version "5.2.0"
964 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.0.tgz#c1735024c5da2ef75cc190713073d44f098bf486"
965 + dependencies:
966 + co "^4.6.0"
967 + fast-deep-equal "^0.1.0"
968 + json-schema-traverse "^0.3.0"
969 + json-stable-stringify "^1.0.1"
970 +
971 +ajv@^4.7.0:
972 + version "4.11.2"
973 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6"
974 + dependencies:
975 + co "^4.6.0"
976 + json-stable-stringify "^1.0.1"
977 +
978 +ajv@^4.9.1:
979 + version "4.11.8"
980 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
981 + dependencies:
982 + co "^4.6.0"
983 + json-stable-stringify "^1.0.1"
984 +
985 +ajv@^5.1.0:
986 + version "5.5.2"
987 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
988 + dependencies:
989 + co "^4.6.0"
990 + fast-deep-equal "^1.0.0"
991 + fast-json-stable-stringify "^2.0.0"
992 + json-schema-traverse "^0.3.0"
993 +
994 +ajv@^6.1.0:
995 + version "6.5.5"
996 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1"
997 + integrity sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==
998 + dependencies:
999 + fast-deep-equal "^2.0.1"
1000 + fast-json-stable-stringify "^2.0.0"
1001 + json-schema-traverse "^0.4.1"
1002 + uri-js "^4.2.2"
1003 +
1004 +align-text@^0.1.1, align-text@^0.1.3:
1005 + version "0.1.4"
1006 + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
1007 + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
1008 + dependencies:
1009 + kind-of "^3.0.2"
1010 + longest "^1.0.1"
1011 + repeat-string "^1.5.2"
1012 +
1013 +amdefine@>=0.0.4:
1014 + version "1.0.1"
1015 + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
1016 + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
1017 +
1018 +ansi-align@^2.0.0:
1019 + version "2.0.0"
1020 + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
1021 + dependencies:
1022 + string-width "^2.0.0"
1023 +
1024 +ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
1025 + version "1.4.0"
1026 + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
1027 +
1028 +ansi-escapes@^3.0.0:
1029 + version "3.0.0"
1030 + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
1031 +
1032 +ansi-regex@^2.0.0:
1033 + version "2.1.1"
1034 + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
1035 + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
1036 +
1037 +ansi-regex@^3.0.0:
1038 + version "3.0.0"
1039 + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
1040 +
1041 +ansi-styles@^2.2.1:
1042 + version "2.2.1"
1043 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
1044 + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
1045 +
1046 +ansi-styles@^3.1.0:
1047 + version "3.1.0"
1048 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750"
1049 + dependencies:
1050 + color-convert "^1.0.0"
1051 +
1052 +ansi-styles@^3.2.0:
1053 + version "3.2.0"
1054 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
1055 + dependencies:
1056 + color-convert "^1.9.0"
1057 +
1058 +ansi-styles@^3.2.1:
1059 + version "3.2.1"
1060 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
1061 + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
1062 + dependencies:
1063 + color-convert "^1.9.0"
1064 +
1065 +any-promise@^1.0.0, any-promise@^1.1.0, any-promise@~1.3.0:
1066 + version "1.3.0"
1067 + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
1068 +
1069 +anymatch@^1.3.0:
1070 + version "1.3.2"
1071 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
1072 + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
1073 + dependencies:
1074 + micromatch "^2.1.5"
1075 + normalize-path "^2.0.0"
1076 +
1077 +anymatch@^2.0.0:
1078 + version "2.0.0"
1079 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
1080 + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
1081 + dependencies:
1082 + micromatch "^3.1.4"
1083 + normalize-path "^2.1.1"
1084 +
1085 +append-transform@^0.4.0:
1086 + version "0.4.0"
1087 + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
1088 + dependencies:
1089 + default-require-extensions "^1.0.0"
1090 +
1091 +aproba@^1.0.3, aproba@^1.1.1:
1092 + version "1.2.0"
1093 + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
1094 + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
1095 +
1096 +archiver-utils@^1.3.0:
1097 + version "1.3.0"
1098 + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
1099 + dependencies:
1100 + glob "^7.0.0"
1101 + graceful-fs "^4.1.0"
1102 + lazystream "^1.0.0"
1103 + lodash "^4.8.0"
1104 + normalize-path "^2.0.0"
1105 + readable-stream "^2.0.0"
1106 +
1107 +archiver@~1.3.0:
1108 + version "1.3.0"
1109 + resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22"
1110 + dependencies:
1111 + archiver-utils "^1.3.0"
1112 + async "^2.0.0"
1113 + buffer-crc32 "^0.2.1"
1114 + glob "^7.0.0"
1115 + lodash "^4.8.0"
1116 + readable-stream "^2.0.0"
1117 + tar-stream "^1.5.0"
1118 + walkdir "^0.0.11"
1119 + zip-stream "^1.1.0"
1120 +
1121 +are-we-there-yet@~1.1.2:
1122 + version "1.1.5"
1123 + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
1124 + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
1125 + dependencies:
1126 + delegates "^1.0.0"
1127 + readable-stream "^2.0.6"
1128 +
1129 +argparse@^1.0.7:
1130 + version "1.0.9"
1131 + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
1132 + dependencies:
1133 + sprintf-js "~1.0.2"
1134 +
1135 +arr-diff@^2.0.0:
1136 + version "2.0.0"
1137 + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
1138 + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
1139 + dependencies:
1140 + arr-flatten "^1.0.1"
1141 +
1142 +arr-diff@^4.0.0:
1143 + version "4.0.0"
1144 + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
1145 + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
1146 +
1147 +arr-flatten@^1.0.1, arr-flatten@^1.1.0:
1148 + version "1.1.0"
1149 + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
1150 + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
1151 +
1152 +arr-union@^3.1.0:
1153 + version "3.1.0"
1154 + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
1155 + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
1156 +
1157 +array-differ@^1.0.0:
1158 + version "1.0.0"
1159 + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
1160 +
1161 +array-equal@^1.0.0:
1162 + version "1.0.0"
1163 + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
1164 +
1165 +array-filter@~0.0.0:
1166 + version "0.0.1"
1167 + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
1168 +
1169 +array-find-index@^1.0.1:
1170 + version "1.0.2"
1171 + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
1172 +
1173 +array-from@2.1.1:
1174 + version "2.1.1"
1175 + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
1176 +
1177 +array-ify@^1.0.0:
1178 + version "1.0.0"
1179 + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
1180 +
1181 +array-map@~0.0.0:
1182 + version "0.0.0"
1183 + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
1184 +
1185 +array-reduce@~0.0.0:
1186 + version "0.0.0"
1187 + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
1188 +
1189 +array-union@^1.0.1:
1190 + version "1.0.2"
1191 + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
1192 + dependencies:
1193 + array-uniq "^1.0.1"
1194 +
1195 +array-uniq@^1.0.1, array-uniq@^1.0.2:
1196 + version "1.0.3"
1197 + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
1198 +
1199 +array-unique@^0.2.1:
1200 + version "0.2.1"
1201 + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
1202 + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
1203 +
1204 +array-unique@^0.3.2:
1205 + version "0.3.2"
1206 + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
1207 + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
1208 +
1209 +arrify@^1.0.0, arrify@^1.0.1:
1210 + version "1.0.1"
1211 + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
1212 +
1213 +asap@~2.0.3:
1214 + version "2.0.5"
1215 + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
1216 +
1217 +asn1.js@^4.0.0:
1218 + version "4.10.1"
1219 + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
1220 + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
1221 + dependencies:
1222 + bn.js "^4.0.0"
1223 + inherits "^2.0.1"
1224 + minimalistic-assert "^1.0.0"
1225 +
1226 +asn1@~0.2.3:
1227 + version "0.2.4"
1228 + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
1229 + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
1230 + dependencies:
1231 + safer-buffer "~2.1.0"
1232 +
1233 +assert-plus@1.0.0, assert-plus@^1.0.0:
1234 + version "1.0.0"
1235 + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
1236 + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
1237 +
1238 +assert-plus@^0.2.0:
1239 + version "0.2.0"
1240 + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
1241 + integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
1242 +
1243 +assert@^1.1.1:
1244 + version "1.4.1"
1245 + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
1246 + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=
1247 + dependencies:
1248 + util "0.10.3"
1249 +
1250 +assign-symbols@^1.0.0:
1251 + version "1.0.0"
1252 + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
1253 + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
1254 +
1255 +astral-regex@^1.0.0:
1256 + version "1.0.0"
1257 + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
1258 +
1259 +async-each@^1.0.0:
1260 + version "1.0.1"
1261 + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
1262 + integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
1263 +
1264 +async-limiter@~1.0.0:
1265 + version "1.0.0"
1266 + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
1267 +
1268 +async@2.1.4:
1269 + version "2.1.4"
1270 + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
1271 + dependencies:
1272 + lodash "^4.14.0"
1273 +
1274 +async@^1.4.0, async@^1.5.0, async@^1.5.2:
1275 + version "1.5.2"
1276 + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
1277 +
1278 +async@^2.0.0, async@~2.4.1:
1279 + version "2.4.1"
1280 + resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7"
1281 + dependencies:
1282 + lodash "^4.14.0"
1283 +
1284 +async@^2.1.2:
1285 + version "2.5.0"
1286 + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
1287 + dependencies:
1288 + lodash "^4.14.0"
1289 +
1290 +async@^2.1.4:
1291 + version "2.6.0"
1292 + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
1293 + dependencies:
1294 + lodash "^4.14.0"
1295 +
1296 +async@~0.2.6:
1297 + version "0.2.10"
1298 + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
1299 + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
1300 +
1301 +async@~2.1.2:
1302 + version "2.1.5"
1303 + resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
1304 + dependencies:
1305 + lodash "^4.14.0"
1306 +
1307 +asynckit@^0.4.0:
1308 + version "0.4.0"
1309 + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
1310 + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
1311 +
1312 +atob@^2.1.1:
1313 + version "2.1.2"
1314 + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
1315 + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
1316 +
1317 +aws-sign2@~0.6.0:
1318 + version "0.6.0"
1319 + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
1320 + integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
1321 +
1322 +aws-sign2@~0.7.0:
1323 + version "0.7.0"
1324 + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
1325 +
1326 +aws4@^1.2.1:
1327 + version "1.8.0"
1328 + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
1329 + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
1330 +
1331 +aws4@^1.6.0:
1332 + version "1.6.0"
1333 + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
1334 +
1335 +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.3.13:
1336 + version "6.22.0"
1337 + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
1338 + dependencies:
1339 + chalk "^1.1.0"
1340 + esutils "^2.0.2"
1341 + js-tokens "^3.0.0"
1342 +
1343 +babel-code-frame@^6.26.0:
1344 + version "6.26.0"
1345 + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
1346 + dependencies:
1347 + chalk "^1.1.3"
1348 + esutils "^2.0.2"
1349 + js-tokens "^3.0.2"
1350 +
1351 +babel-core@^6.0.0:
1352 + version "6.3.21"
1353 + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.3.21.tgz#807f72b7702508c3e577b29eebad0d833baa65f9"
1354 + dependencies:
1355 + babel-code-frame "^6.3.13"
1356 + babel-generator "^6.3.21"
1357 + babel-helpers "^6.3.13"
1358 + babel-messages "^6.3.13"
1359 + babel-register "^6.3.13"
1360 + babel-runtime "^5.0.0"
1361 + babel-template "^6.3.13"
1362 + babel-traverse "^6.3.21"
1363 + babel-types "^6.3.21"
1364 + babylon "^6.3.21"
1365 + convert-source-map "^1.1.0"
1366 + debug "^2.1.1"
1367 + json5 "^0.4.0"
1368 + lodash "^3.10.0"
1369 + minimatch "^2.0.3"
1370 + path-exists "^1.0.0"
1371 + path-is-absolute "^1.0.0"
1372 + private "^0.1.6"
1373 + shebang-regex "^1.0.0"
1374 + slash "^1.0.0"
1375 + source-map "^0.5.0"
1376 +
1377 +babel-core@^6.22.0, babel-core@^6.7.2:
1378 + version "6.22.1"
1379 + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648"
1380 + dependencies:
1381 + babel-code-frame "^6.22.0"
1382 + babel-generator "^6.22.0"
1383 + babel-helpers "^6.22.0"
1384 + babel-messages "^6.22.0"
1385 + babel-register "^6.22.0"
1386 + babel-runtime "^6.22.0"
1387 + babel-template "^6.22.0"
1388 + babel-traverse "^6.22.1"
1389 + babel-types "^6.22.0"
1390 + babylon "^6.11.0"
1391 + convert-source-map "^1.1.0"
1392 + debug "^2.1.1"
1393 + json5 "^0.5.0"
1394 + lodash "^4.2.0"
1395 + minimatch "^3.0.2"
1396 + path-is-absolute "^1.0.0"
1397 + private "^0.1.6"
1398 + slash "^1.0.0"
1399 + source-map "^0.5.0"
1400 +
1401 +babel-core@^7.0.0-bridge:
1402 + version "7.0.0-bridge.0"
1403 + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
1404 + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
1405 +
1406 +babel-eslint@6:
1407 + version "6.1.2"
1408 + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f"
1409 + integrity sha1-UpNBn+NnLWZZjTJ9qWlFZ7pqXy8=
1410 + dependencies:
1411 + babel-traverse "^6.0.20"
1412 + babel-types "^6.0.19"
1413 + babylon "^6.0.18"
1414 + lodash.assign "^4.0.0"
1415 + lodash.pickby "^4.0.0"
1416 +
1417 +babel-generator@^6.18.0:
1418 + version "6.26.0"
1419 + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
1420 + dependencies:
1421 + babel-messages "^6.23.0"
1422 + babel-runtime "^6.26.0"
1423 + babel-types "^6.26.0"
1424 + detect-indent "^4.0.0"
1425 + jsesc "^1.3.0"
1426 + lodash "^4.17.4"
1427 + source-map "^0.5.6"
1428 + trim-right "^1.0.1"
1429 +
1430 +babel-generator@^6.22.0, babel-generator@^6.3.21:
1431 + version "6.22.0"
1432 + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805"
1433 + dependencies:
1434 + babel-messages "^6.22.0"
1435 + babel-runtime "^6.22.0"
1436 + babel-types "^6.22.0"
1437 + detect-indent "^4.0.0"
1438 + jsesc "^1.3.0"
1439 + lodash "^4.2.0"
1440 + source-map "^0.5.0"
1441 +
1442 +babel-helper-call-delegate@^6.22.0:
1443 + version "6.22.0"
1444 + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.22.0.tgz#119921b56120f17e9dae3f74b4f5cc7bcc1b37ef"
1445 + dependencies:
1446 + babel-helper-hoist-variables "^6.22.0"
1447 + babel-runtime "^6.22.0"
1448 + babel-traverse "^6.22.0"
1449 + babel-types "^6.22.0"
1450 +
1451 +babel-helper-define-map@^6.22.0:
1452 + version "6.22.0"
1453 + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.22.0.tgz#9544e9502b2d6dfe7d00ff60e82bd5a7a89e95b7"
1454 + dependencies:
1455 + babel-helper-function-name "^6.22.0"
1456 + babel-runtime "^6.22.0"
1457 + babel-types "^6.22.0"
1458 + lodash "^4.2.0"
1459 +
1460 +babel-helper-function-name@^6.22.0:
1461 + version "6.22.0"
1462 + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.22.0.tgz#51f1bdc4bb89b15f57a9b249f33d742816dcbefc"
1463 + dependencies:
1464 + babel-helper-get-function-arity "^6.22.0"
1465 + babel-runtime "^6.22.0"
1466 + babel-template "^6.22.0"
1467 + babel-traverse "^6.22.0"
1468 + babel-types "^6.22.0"
1469 +
1470 +babel-helper-get-function-arity@^6.22.0:
1471 + version "6.22.0"
1472 + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.22.0.tgz#0beb464ad69dc7347410ac6ade9f03a50634f5ce"
1473 + dependencies:
1474 + babel-runtime "^6.22.0"
1475 + babel-types "^6.22.0"
1476 +
1477 +babel-helper-hoist-variables@^6.22.0:
1478 + version "6.22.0"
1479 + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz#3eacbf731d80705845dd2e9718f600cfb9b4ba72"
1480 + dependencies:
1481 + babel-runtime "^6.22.0"
1482 + babel-types "^6.22.0"
1483 +
1484 +babel-helper-optimise-call-expression@^6.22.0:
1485 + version "6.22.0"
1486 + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.22.0.tgz#f8d5d4b40a6e2605a6a7f9d537b581bea3756d15"
1487 + dependencies:
1488 + babel-runtime "^6.22.0"
1489 + babel-types "^6.22.0"
1490 +
1491 +babel-helper-replace-supers@^6.22.0:
1492 + version "6.22.0"
1493 + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.22.0.tgz#1fcee2270657548908c34db16bcc345f9850cf42"
1494 + dependencies:
1495 + babel-helper-optimise-call-expression "^6.22.0"
1496 + babel-messages "^6.22.0"
1497 + babel-runtime "^6.22.0"
1498 + babel-template "^6.22.0"
1499 + babel-traverse "^6.22.0"
1500 + babel-types "^6.22.0"
1501 +
1502 +babel-helpers@^6.22.0, babel-helpers@^6.3.13:
1503 + version "6.22.0"
1504 + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c"
1505 + dependencies:
1506 + babel-runtime "^6.22.0"
1507 + babel-template "^6.22.0"
1508 +
1509 +babel-jest@^22.1.0:
1510 + version "22.1.0"
1511 + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.1.0.tgz#7fae6f655fffe77e818a8c2868c754a42463fdfd"
1512 + dependencies:
1513 + babel-plugin-istanbul "^4.1.5"
1514 + babel-preset-jest "^22.1.0"
1515 +
1516 +babel-jest@^23.6.0:
1517 + version "23.6.0"
1518 + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1"
1519 + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==
1520 + dependencies:
1521 + babel-plugin-istanbul "^4.1.6"
1522 + babel-preset-jest "^23.2.0"
1523 +
1524 +babel-loader@^8.0.4:
1525 + version "8.0.4"
1526 + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6"
1527 + integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==
1528 + dependencies:
1529 + find-cache-dir "^1.0.0"
1530 + loader-utils "^1.0.2"
1531 + mkdirp "^0.5.1"
1532 + util.promisify "^1.0.0"
1533 +
1534 +babel-messages@^6.22.0, babel-messages@^6.3.13:
1535 + version "6.22.0"
1536 + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575"
1537 + dependencies:
1538 + babel-runtime "^6.22.0"
1539 +
1540 +babel-messages@^6.23.0:
1541 + version "6.23.0"
1542 + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
1543 + dependencies:
1544 + babel-runtime "^6.22.0"
1545 +
1546 +babel-plugin-check-es2015-constants@^6.7.2:
1547 + version "6.22.0"
1548 + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
1549 + dependencies:
1550 + babel-runtime "^6.22.0"
1551 +
1552 +babel-plugin-istanbul@^4.1.5:
1553 + version "4.1.5"
1554 + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e"
1555 + dependencies:
1556 + find-up "^2.1.0"
1557 + istanbul-lib-instrument "^1.7.5"
1558 + test-exclude "^4.1.1"
1559 +
1560 +babel-plugin-istanbul@^4.1.6:
1561 + version "4.1.6"
1562 + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
1563 + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==
1564 + dependencies:
1565 + babel-plugin-syntax-object-rest-spread "^6.13.0"
1566 + find-up "^2.1.0"
1567 + istanbul-lib-instrument "^1.10.1"
1568 + test-exclude "^4.2.1"
1569 +
1570 +babel-plugin-jest-hoist@^22.1.0:
1571 + version "22.1.0"
1572 + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.1.0.tgz#c1281dd7887d77a1711dc760468c3b8285dde9ee"
1573 +
1574 +babel-plugin-jest-hoist@^23.2.0:
1575 + version "23.2.0"
1576 + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
1577 + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
1578 +
1579 +babel-plugin-syntax-class-properties@^6.8.0:
1580 + version "6.13.0"
1581 + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
1582 +
1583 +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.5.0:
1584 + version "6.18.0"
1585 + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
1586 +
1587 +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.5.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
1588 + version "6.13.0"
1589 + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
1590 +
1591 +babel-plugin-syntax-trailing-function-commas@^6.5.0:
1592 + version "6.22.0"
1593 + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
1594 +
1595 +babel-plugin-transform-class-properties@^6.6.0:
1596 + version "6.22.0"
1597 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.22.0.tgz#aa78f8134495c7de06c097118ba061844e1dc1d8"
1598 + dependencies:
1599 + babel-helper-function-name "^6.22.0"
1600 + babel-plugin-syntax-class-properties "^6.8.0"
1601 + babel-runtime "^6.22.0"
1602 + babel-template "^6.22.0"
1603 +
1604 +babel-plugin-transform-es2015-arrow-functions@^6.5.2:
1605 + version "6.22.0"
1606 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
1607 + dependencies:
1608 + babel-runtime "^6.22.0"
1609 +
1610 +babel-plugin-transform-es2015-block-scoped-functions@^6.6.5:
1611 + version "6.22.0"
1612 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
1613 + dependencies:
1614 + babel-runtime "^6.22.0"
1615 +
1616 +babel-plugin-transform-es2015-block-scoping@^6.7.1:
1617 + version "6.22.0"
1618 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.22.0.tgz#00d6e3a0bebdcfe7536b9d653b44a9141e63e47e"
1619 + dependencies:
1620 + babel-runtime "^6.22.0"
1621 + babel-template "^6.22.0"
1622 + babel-traverse "^6.22.0"
1623 + babel-types "^6.22.0"
1624 + lodash "^4.2.0"
1625 +
1626 +babel-plugin-transform-es2015-classes@^6.6.5:
1627 + version "6.22.0"
1628 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.22.0.tgz#54d44998fd823d9dca15292324161c331c1b6f14"
1629 + dependencies:
1630 + babel-helper-define-map "^6.22.0"
1631 + babel-helper-function-name "^6.22.0"
1632 + babel-helper-optimise-call-expression "^6.22.0"
1633 + babel-helper-replace-supers "^6.22.0"
1634 + babel-messages "^6.22.0"
1635 + babel-runtime "^6.22.0"
1636 + babel-template "^6.22.0"
1637 + babel-traverse "^6.22.0"
1638 + babel-types "^6.22.0"
1639 +
1640 +babel-plugin-transform-es2015-computed-properties@^6.6.5:
1641 + version "6.22.0"
1642 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz#7c383e9629bba4820c11b0425bdd6290f7f057e7"
1643 + dependencies:
1644 + babel-runtime "^6.22.0"
1645 + babel-template "^6.22.0"
1646 +
1647 +babel-plugin-transform-es2015-destructuring@^6.6.5:
1648 + version "6.22.0"
1649 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6"
1650 + dependencies:
1651 + babel-runtime "^6.22.0"
1652 +
1653 +babel-plugin-transform-es2015-for-of@^6.6.0:
1654 + version "6.22.0"
1655 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz#180467ad63aeea592a1caeee4bf1c8b3e2616265"
1656 + dependencies:
1657 + babel-runtime "^6.22.0"
1658 +
1659 +babel-plugin-transform-es2015-literals@^6.5.0:
1660 + version "6.22.0"
1661 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
1662 + dependencies:
1663 + babel-runtime "^6.22.0"
1664 +
1665 +babel-plugin-transform-es2015-modules-commonjs@^6.7.0:
1666 + version "6.22.0"
1667 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.22.0.tgz#6ca04e22b8e214fb50169730657e7a07dc941145"
1668 + dependencies:
1669 + babel-plugin-transform-strict-mode "^6.22.0"
1670 + babel-runtime "^6.22.0"
1671 + babel-template "^6.22.0"
1672 + babel-types "^6.22.0"
1673 +
1674 +babel-plugin-transform-es2015-object-super@^6.6.5:
1675 + version "6.22.0"
1676 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.22.0.tgz#daa60e114a042ea769dd53fe528fc82311eb98fc"
1677 + dependencies:
1678 + babel-helper-replace-supers "^6.22.0"
1679 + babel-runtime "^6.22.0"
1680 +
1681 +babel-plugin-transform-es2015-parameters@^6.7.0:
1682 + version "6.22.0"
1683 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz#57076069232019094f27da8c68bb7162fe208dbb"
1684 + dependencies:
1685 + babel-helper-call-delegate "^6.22.0"
1686 + babel-helper-get-function-arity "^6.22.0"
1687 + babel-runtime "^6.22.0"
1688 + babel-template "^6.22.0"
1689 + babel-traverse "^6.22.0"
1690 + babel-types "^6.22.0"
1691 +
1692 +babel-plugin-transform-es2015-shorthand-properties@^6.5.0:
1693 + version "6.22.0"
1694 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz#8ba776e0affaa60bff21e921403b8a652a2ff723"
1695 + dependencies:
1696 + babel-runtime "^6.22.0"
1697 + babel-types "^6.22.0"
1698 +
1699 +babel-plugin-transform-es2015-spread@^6.6.5:
1700 + version "6.22.0"
1701 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
1702 + dependencies:
1703 + babel-runtime "^6.22.0"
1704 +
1705 +babel-plugin-transform-es2015-template-literals@^6.6.5:
1706 + version "6.22.0"
1707 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
1708 + dependencies:
1709 + babel-runtime "^6.22.0"
1710 +
1711 +babel-plugin-transform-es3-member-expression-literals@^6.5.0:
1712 + version "6.22.0"
1713 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz#733d3444f3ecc41bef8ed1a6a4e09657b8969ebb"
1714 + dependencies:
1715 + babel-runtime "^6.22.0"
1716 +
1717 +babel-plugin-transform-es3-property-literals@^6.5.0:
1718 + version "6.22.0"
1719 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz#b2078d5842e22abf40f73e8cde9cd3711abd5758"
1720 + dependencies:
1721 + babel-runtime "^6.22.0"
1722 +
1723 +babel-plugin-transform-flow-strip-types@^6.7.0:
1724 + version "6.22.0"
1725 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
1726 + dependencies:
1727 + babel-plugin-syntax-flow "^6.18.0"
1728 + babel-runtime "^6.22.0"
1729 +
1730 +babel-plugin-transform-object-rest-spread@^6.6.5:
1731 + version "6.22.0"
1732 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc"
1733 + dependencies:
1734 + babel-plugin-syntax-object-rest-spread "^6.8.0"
1735 + babel-runtime "^6.22.0"
1736 +
1737 +babel-plugin-transform-strict-mode@^6.22.0:
1738 + version "6.22.0"
1739 + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz#e008df01340fdc87e959da65991b7e05970c8c7c"
1740 + dependencies:
1741 + babel-runtime "^6.22.0"
1742 + babel-types "^6.22.0"
1743 +
1744 +babel-polyfill@6.16.0:
1745 + version "6.16.0"
1746 + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422"
1747 + dependencies:
1748 + babel-runtime "^6.9.1"
1749 + core-js "^2.4.0"
1750 + regenerator-runtime "^0.9.5"
1751 +
1752 +babel-polyfill@6.20.0:
1753 + version "6.20.0"
1754 + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.20.0.tgz#de4a371006139e20990aac0be367d398331204e7"
1755 + dependencies:
1756 + babel-runtime "^6.20.0"
1757 + core-js "^2.4.0"
1758 + regenerator-runtime "^0.10.0"
1759 +
1760 +babel-preset-fbjs@^1.0.0:
1761 + version "1.0.0"
1762 + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-1.0.0.tgz#c972e5c9b301d4ec9e7971f4aec3e14ac017a8b0"
1763 + dependencies:
1764 + babel-plugin-check-es2015-constants "^6.7.2"
1765 + babel-plugin-syntax-flow "^6.5.0"
1766 + babel-plugin-syntax-object-rest-spread "^6.5.0"
1767 + babel-plugin-syntax-trailing-function-commas "^6.5.0"
1768 + babel-plugin-transform-class-properties "^6.6.0"
1769 + babel-plugin-transform-es2015-arrow-functions "^6.5.2"
1770 + babel-plugin-transform-es2015-block-scoped-functions "^6.6.5"
1771 + babel-plugin-transform-es2015-block-scoping "^6.7.1"
1772 + babel-plugin-transform-es2015-classes "^6.6.5"
1773 + babel-plugin-transform-es2015-computed-properties "^6.6.5"
1774 + babel-plugin-transform-es2015-destructuring "^6.6.5"
1775 + babel-plugin-transform-es2015-for-of "^6.6.0"
1776 + babel-plugin-transform-es2015-literals "^6.5.0"
1777 + babel-plugin-transform-es2015-modules-commonjs "^6.7.0"
1778 + babel-plugin-transform-es2015-object-super "^6.6.5"
1779 + babel-plugin-transform-es2015-parameters "^6.7.0"
1780 + babel-plugin-transform-es2015-shorthand-properties "^6.5.0"
1781 + babel-plugin-transform-es2015-spread "^6.6.5"
1782 + babel-plugin-transform-es2015-template-literals "^6.6.5"
1783 + babel-plugin-transform-es3-member-expression-literals "^6.5.0"
1784 + babel-plugin-transform-es3-property-literals "^6.5.0"
1785 + babel-plugin-transform-flow-strip-types "^6.7.0"
1786 + babel-plugin-transform-object-rest-spread "^6.6.5"
1787 + object-assign "^4.0.1"
1788 +
1789 +babel-preset-jest@^22.1.0:
1790 + version "22.1.0"
1791 + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.1.0.tgz#ff4e704102f9642765e2254226050561d8942ec9"
1792 + dependencies:
1793 + babel-plugin-jest-hoist "^22.1.0"
1794 + babel-plugin-syntax-object-rest-spread "^6.13.0"
1795 +
1796 +babel-preset-jest@^23.2.0:
1797 + version "23.2.0"
1798 + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46"
1799 + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY=
1800 + dependencies:
1801 + babel-plugin-jest-hoist "^23.2.0"
1802 + babel-plugin-syntax-object-rest-spread "^6.13.0"
1803 +
1804 +babel-register@^6.22.0, babel-register@^6.3.13:
1805 + version "6.22.0"
1806 + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63"
1807 + dependencies:
1808 + babel-core "^6.22.0"
1809 + babel-runtime "^6.22.0"
1810 + core-js "^2.4.0"
1811 + home-or-tmp "^2.0.0"
1812 + lodash "^4.2.0"
1813 + mkdirp "^0.5.1"
1814 + source-map-support "^0.4.2"
1815 +
1816 +babel-runtime@6.23.0, babel-runtime@^6.20.0, babel-runtime@^6.9.1:
1817 + version "6.23.0"
1818 + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
1819 + dependencies:
1820 + core-js "^2.4.0"
1821 + regenerator-runtime "^0.10.0"
1822 +
1823 +babel-runtime@^5.0.0:
1824 + version "5.8.38"
1825 + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19"
1826 + dependencies:
1827 + core-js "^1.0.0"
1828 +
1829 +babel-runtime@^6.22.0:
1830 + version "6.22.0"
1831 + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611"
1832 + dependencies:
1833 + core-js "^2.4.0"
1834 + regenerator-runtime "^0.10.0"
1835 +
1836 +babel-runtime@^6.26.0:
1837 + version "6.26.0"
1838 + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
1839 + dependencies:
1840 + core-js "^2.4.0"
1841 + regenerator-runtime "^0.11.0"
1842 +
1843 +babel-template@^6.16.0:
1844 + version "6.26.0"
1845 + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
1846 + dependencies:
1847 + babel-runtime "^6.26.0"
1848 + babel-traverse "^6.26.0"
1849 + babel-types "^6.26.0"
1850 + babylon "^6.18.0"
1851 + lodash "^4.17.4"
1852 +
1853 +babel-template@^6.22.0, babel-template@^6.3.13:
1854 + version "6.22.0"
1855 + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb"
1856 + dependencies:
1857 + babel-runtime "^6.22.0"
1858 + babel-traverse "^6.22.0"
1859 + babel-types "^6.22.0"
1860 + babylon "^6.11.0"
1861 + lodash "^4.2.0"
1862 +
1863 +babel-traverse@^6.0.20, babel-traverse@^6.18.0, babel-traverse@^6.26.0:
1864 + version "6.26.0"
1865 + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
1866 + dependencies:
1867 + babel-code-frame "^6.26.0"
1868 + babel-messages "^6.23.0"
1869 + babel-runtime "^6.26.0"
1870 + babel-types "^6.26.0"
1871 + babylon "^6.18.0"
1872 + debug "^2.6.8"
1873 + globals "^9.18.0"
1874 + invariant "^2.2.2"
1875 + lodash "^4.17.4"
1876 +
1877 +babel-traverse@^6.22.0, babel-traverse@^6.22.1, babel-traverse@^6.3.21:
1878 + version "6.22.1"
1879 + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f"
1880 + dependencies:
1881 + babel-code-frame "^6.22.0"
1882 + babel-messages "^6.22.0"
1883 + babel-runtime "^6.22.0"
1884 + babel-types "^6.22.0"
1885 + babylon "^6.15.0"
1886 + debug "^2.2.0"
1887 + globals "^9.0.0"
1888 + invariant "^2.2.0"
1889 + lodash "^4.2.0"
1890 +
1891 +babel-types@^6.0.19, babel-types@^6.18.0, babel-types@^6.26.0:
1892 + version "6.26.0"
1893 + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
1894 + dependencies:
1895 + babel-runtime "^6.26.0"
1896 + esutils "^2.0.2"
1897 + lodash "^4.17.4"
1898 + to-fast-properties "^1.0.3"
1899 +
1900 +babel-types@^6.22.0, babel-types@^6.3.21:
1901 + version "6.22.0"
1902 + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db"
1903 + dependencies:
1904 + babel-runtime "^6.22.0"
1905 + esutils "^2.0.2"
1906 + lodash "^4.2.0"
1907 + to-fast-properties "^1.0.1"
1908 +
1909 +babylon@^6.0.18, babylon@^6.18.0:
1910 + version "6.18.0"
1911 + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
1912 +
1913 +babylon@^6.11.0, babylon@^6.15.0, babylon@^6.3.21:
1914 + version "6.15.0"
1915 + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e"
1916 +
1917 +balanced-match@^1.0.0:
1918 + version "1.0.0"
1919 + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1920 +
1921 +base64-js@0.0.8:
1922 + version "0.0.8"
1923 + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
1924 + integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
1925 +
1926 +base64-js@^1.0.2:
1927 + version "1.3.0"
1928 + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
1929 + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
1930 +
1931 +base64url@2.0.0, base64url@^2.0.0:
1932 + version "2.0.0"
1933 + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb"
1934 +
1935 +base@^0.11.1:
1936 + version "0.11.2"
1937 + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
1938 + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
1939 + dependencies:
1940 + cache-base "^1.0.1"
1941 + class-utils "^0.3.5"
1942 + component-emitter "^1.2.1"
1943 + define-property "^1.0.0"
1944 + isobject "^3.0.1"
1945 + mixin-deep "^1.2.0"
1946 + pascalcase "^0.1.1"
1947 +
1948 +bcrypt-pbkdf@^1.0.0:
1949 + version "1.0.2"
1950 + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
1951 + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
1952 + dependencies:
1953 + tweetnacl "^0.14.3"
1954 +
1955 +beeper@^1.0.0:
1956 + version "1.1.1"
1957 + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
1958 +
1959 +big.js@^3.1.3:
1960 + version "3.2.0"
1961 + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
1962 + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
1963 +
1964 +binary-extensions@^1.0.0:
1965 + version "1.12.0"
1966 + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
1967 + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
1968 +
1969 +bl@^1.0.0:
1970 + version "1.2.0"
1971 + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98"
1972 + dependencies:
1973 + readable-stream "^2.0.5"
1974 +
1975 +block-stream@*:
1976 + version "0.0.9"
1977 + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
1978 + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
1979 + dependencies:
1980 + inherits "~2.0.0"
1981 +
1982 +bluebird@^3.5.1:
1983 + version "3.5.3"
1984 + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
1985 + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
1986 +
1987 +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
1988 + version "4.11.8"
1989 + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
1990 + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
1991 +
1992 +boolbase@~1.0.0:
1993 + version "1.0.0"
1994 + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
1995 +
1996 +boom@2.x.x:
1997 + version "2.10.1"
1998 + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
1999 + integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
2000 + dependencies:
2001 + hoek "2.x.x"
2002 +
2003 +boom@4.x.x:
2004 + version "4.3.1"
2005 + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
2006 + dependencies:
2007 + hoek "4.x.x"
2008 +
2009 +boom@5.x.x:
2010 + version "5.2.0"
2011 + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
2012 + dependencies:
2013 + hoek "4.x.x"
2014 +
2015 +boxen@^1.0.0:
2016 + version "1.2.0"
2017 + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.0.tgz#03478d84be7fe02189b80904d81d6a80384368f1"
2018 + dependencies:
2019 + ansi-align "^2.0.0"
2020 + camelcase "^4.0.0"
2021 + chalk "^2.0.1"
2022 + cli-boxes "^1.0.0"
2023 + string-width "^2.0.0"
2024 + term-size "^1.2.0"
2025 + widest-line "^1.0.0"
2026 +
2027 +brace-expansion@^1.0.0:
2028 + version "1.1.11"
2029 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
2030 + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
2031 + dependencies:
2032 + balanced-match "^1.0.0"
2033 + concat-map "0.0.1"
2034 +
2035 +brace-expansion@^1.1.7:
2036 + version "1.1.8"
2037 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
2038 + dependencies:
2039 + balanced-match "^1.0.0"
2040 + concat-map "0.0.1"
2041 +
2042 +braces@^1.8.2:
2043 + version "1.8.5"
2044 + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
2045 + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
2046 + dependencies:
2047 + expand-range "^1.8.1"
2048 + preserve "^0.2.0"
2049 + repeat-element "^1.1.2"
2050 +
2051 +braces@^2.3.0, braces@^2.3.1:
2052 + version "2.3.2"
2053 + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
2054 + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
2055 + dependencies:
2056 + arr-flatten "^1.1.0"
2057 + array-unique "^0.3.2"
2058 + extend-shallow "^2.0.1"
2059 + fill-range "^4.0.0"
2060 + isobject "^3.0.1"
2061 + repeat-element "^1.1.2"
2062 + snapdragon "^0.8.1"
2063 + snapdragon-node "^2.0.1"
2064 + split-string "^3.0.2"
2065 + to-regex "^3.0.1"
2066 +
2067 +brorand@^1.0.1:
2068 + version "1.1.0"
2069 + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
2070 + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
2071 +
2072 +browser-process-hrtime@^0.1.2:
2073 + version "0.1.2"
2074 + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e"
2075 +
2076 +browser-resolve@^1.11.2:
2077 + version "1.11.2"
2078 + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
2079 + dependencies:
2080 + resolve "1.1.7"
2081 +
2082 +browserify-aes@^1.0.0, browserify-aes@^1.0.4:
2083 + version "1.2.0"
2084 + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
2085 + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
2086 + dependencies:
2087 + buffer-xor "^1.0.3"
2088 + cipher-base "^1.0.0"
2089 + create-hash "^1.1.0"
2090 + evp_bytestokey "^1.0.3"
2091 + inherits "^2.0.1"
2092 + safe-buffer "^5.0.1"
2093 +
2094 +browserify-cipher@^1.0.0:
2095 + version "1.0.1"
2096 + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
2097 + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
2098 + dependencies:
2099 + browserify-aes "^1.0.4"
2100 + browserify-des "^1.0.0"
2101 + evp_bytestokey "^1.0.0"
2102 +
2103 +browserify-des@^1.0.0:
2104 + version "1.0.2"
2105 + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
2106 + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
2107 + dependencies:
2108 + cipher-base "^1.0.1"
2109 + des.js "^1.0.0"
2110 + inherits "^2.0.1"
2111 + safe-buffer "^5.1.2"
2112 +
2113 +browserify-rsa@^4.0.0:
2114 + version "4.0.1"
2115 + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
2116 + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
2117 + dependencies:
2118 + bn.js "^4.1.0"
2119 + randombytes "^2.0.1"
2120 +
2121 +browserify-sign@^4.0.0:
2122 + version "4.0.4"
2123 + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
2124 + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
2125 + dependencies:
2126 + bn.js "^4.1.1"
2127 + browserify-rsa "^4.0.0"
2128 + create-hash "^1.1.0"
2129 + create-hmac "^1.1.2"
2130 + elliptic "^6.0.0"
2131 + inherits "^2.0.1"
2132 + parse-asn1 "^5.0.0"
2133 +
2134 +browserify-zlib@^0.2.0:
2135 + version "0.2.0"
2136 + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
2137 + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
2138 + dependencies:
2139 + pako "~1.0.5"
2140 +
2141 +browserify-zlib@~0.1.4:
2142 + version "0.1.4"
2143 + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
2144 + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=
2145 + dependencies:
2146 + pako "~0.2.0"
2147 +
2148 +browserslist@^4.1.0:
2149 + version "4.3.4"
2150 + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.4.tgz#4477b737db6a1b07077275b24791e680d4300425"
2151 + integrity sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==
2152 + dependencies:
2153 + caniuse-lite "^1.0.30000899"
2154 + electron-to-chromium "^1.3.82"
2155 + node-releases "^1.0.1"
2156 +
2157 +bser@^2.0.0:
2158 + version "2.0.0"
2159 + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
2160 + dependencies:
2161 + node-int64 "^0.4.0"
2162 +
2163 +buffer-crc32@^0.2.1, buffer-crc32@~0.2.3:
2164 + version "0.2.13"
2165 + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
2166 +
2167 +buffer-equal-constant-time@1.0.1:
2168 + version "1.0.1"
2169 + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
2170 +
2171 +buffer-from@^1.0.0:
2172 + version "1.1.1"
2173 + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
2174 + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
2175 +
2176 +buffer-shims@^1.0.0:
2177 + version "1.0.0"
2178 + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
2179 + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=
2180 +
2181 +buffer-xor@^1.0.3:
2182 + version "1.0.3"
2183 + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
2184 + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
2185 +
2186 +buffer@^3.0.3:
2187 + version "3.6.0"
2188 + resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
2189 + integrity sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=
2190 + dependencies:
2191 + base64-js "0.0.8"
2192 + ieee754 "^1.1.4"
2193 + isarray "^1.0.0"
2194 +
2195 +buffer@^4.3.0:
2196 + version "4.9.1"
2197 + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
2198 + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
2199 + dependencies:
2200 + base64-js "^1.0.2"
2201 + ieee754 "^1.1.4"
2202 + isarray "^1.0.0"
2203 +
2204 +builtin-modules@^1.0.0:
2205 + version "1.1.1"
2206 + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
2207 +
2208 +builtin-status-codes@^3.0.0:
2209 + version "3.0.0"
2210 + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
2211 + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
2212 +
2213 +bunyan@1.8.10:
2214 + version "1.8.10"
2215 + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.10.tgz#201fedd26c7080b632f416072f53a90b9a52981c"
2216 + optionalDependencies:
2217 + dtrace-provider "~0.8"
2218 + moment "^2.10.6"
2219 + mv "~2"
2220 + safe-json-stringify "~1"
2221 +
2222 +byline@^5.0.0:
2223 + version "5.0.0"
2224 + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
2225 +
2226 +cacache@^11.0.2:
2227 + version "11.3.1"
2228 + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f"
2229 + integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==
2230 + dependencies:
2231 + bluebird "^3.5.1"
2232 + chownr "^1.0.1"
2233 + figgy-pudding "^3.1.0"
2234 + glob "^7.1.2"
2235 + graceful-fs "^4.1.11"
2236 + lru-cache "^4.1.3"
2237 + mississippi "^3.0.0"
2238 + mkdirp "^0.5.1"
2239 + move-concurrently "^1.0.1"
2240 + promise-inflight "^1.0.1"
2241 + rimraf "^2.6.2"
2242 + ssri "^6.0.0"
2243 + unique-filename "^1.1.0"
2244 + y18n "^4.0.0"
2245 +
2246 +cache-base@^1.0.1:
2247 + version "1.0.1"
2248 + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
2249 + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
2250 + dependencies:
2251 + collection-visit "^1.0.0"
2252 + component-emitter "^1.2.1"
2253 + get-value "^2.0.6"
2254 + has-value "^1.0.0"
2255 + isobject "^3.0.1"
2256 + set-value "^2.0.0"
2257 + to-object-path "^0.3.0"
2258 + union-value "^1.0.0"
2259 + unset-value "^1.0.0"
2260 +
2261 +caller-path@^0.1.0:
2262 + version "0.1.0"
2263 + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
2264 + dependencies:
2265 + callsites "^0.2.0"
2266 +
2267 +callsites@^0.2.0:
2268 + version "0.2.0"
2269 + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
2270 +
2271 +callsites@^2.0.0:
2272 + version "2.0.0"
2273 + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
2274 +
2275 +camelcase-keys@^2.0.0:
2276 + version "2.1.0"
2277 + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
2278 + dependencies:
2279 + camelcase "^2.0.0"
2280 + map-obj "^1.0.0"
2281 +
2282 +camelcase@4.1.0, camelcase@^4.0.0, camelcase@^4.1.0:
2283 + version "4.1.0"
2284 + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
2285 +
2286 +camelcase@^1.0.2:
2287 + version "1.2.1"
2288 + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
2289 + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
2290 +
2291 +camelcase@^2.0.0:
2292 + version "2.1.1"
2293 + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
2294 +
2295 +camelcase@^3.0.0:
2296 + version "3.0.0"
2297 + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
2298 +
2299 +camelcase@^5.0.0:
2300 + version "5.0.0"
2301 + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
2302 + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
2303 +
2304 +caniuse-lite@^1.0.30000899:
2305 + version "1.0.30000910"
2306 + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000910.tgz#755d5181d4b006e5a2b59b1ffa05d0a0470039f5"
2307 + integrity sha512-u/nxtHGAzCGZzIxt3dA/tpSPOcirBZFWKwz1EPz4aaupnBI2XR0Rbr74g0zc6Hzy41OEM4uMoZ38k56TpYAWjQ==
2308 +
2309 +capture-stack-trace@^1.0.0:
2310 + version "1.0.0"
2311 + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
2312 +
2313 +caseless@~0.11.0:
2314 + version "0.11.0"
2315 + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
2316 + integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
2317 +
2318 +caseless@~0.12.0:
2319 + version "0.12.0"
2320 + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
2321 +
2322 +center-align@^0.1.1:
2323 + version "0.1.3"
2324 + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
2325 + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
2326 + dependencies:
2327 + align-text "^0.1.3"
2328 + lazy-cache "^1.0.3"
2329 +
2330 +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
2331 + version "1.1.3"
2332 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
2333 + dependencies:
2334 + ansi-styles "^2.2.1"
2335 + escape-string-regexp "^1.0.2"
2336 + has-ansi "^2.0.0"
2337 + strip-ansi "^3.0.0"
2338 + supports-color "^2.0.0"
2339 +
2340 +chalk@^2.0.0, chalk@^2.1.0:
2341 + version "2.3.0"
2342 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
2343 + dependencies:
2344 + ansi-styles "^3.1.0"
2345 + escape-string-regexp "^1.0.5"
2346 + supports-color "^4.0.0"
2347 +
2348 +chalk@^2.0.1:
2349 + version "2.0.1"
2350 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d"
2351 + dependencies:
2352 + ansi-styles "^3.1.0"
2353 + escape-string-regexp "^1.0.5"
2354 + supports-color "^4.0.0"
2355 +
2356 +chalk@^2.4.1:
2357 + version "2.4.1"
2358 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
2359 + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
2360 + dependencies:
2361 + ansi-styles "^3.2.1"
2362 + escape-string-regexp "^1.0.5"
2363 + supports-color "^5.3.0"
2364 +
2365 +chardet@^0.4.0:
2366 + version "0.4.2"
2367 + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
2368 +
2369 +cheerio@0.22.0:
2370 + version "0.22.0"
2371 + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
2372 + dependencies:
2373 + css-select "~1.2.0"
2374 + dom-serializer "~0.1.0"
2375 + entities "~1.1.1"
2376 + htmlparser2 "^3.9.1"
2377 + lodash.assignin "^4.0.9"
2378 + lodash.bind "^4.1.4"
2379 + lodash.defaults "^4.0.1"
2380 + lodash.filter "^4.4.0"
2381 + lodash.flatten "^4.2.0"
2382 + lodash.foreach "^4.3.0"
2383 + lodash.map "^4.4.0"
2384 + lodash.merge "^4.4.0"
2385 + lodash.pick "^4.2.1"
2386 + lodash.reduce "^4.4.0"
2387 + lodash.reject "^4.4.0"
2388 + lodash.some "^4.4.0"
2389 +
2390 +child-process-promise@^2.2.1:
2391 + version "2.2.1"
2392 + resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074"
2393 + dependencies:
2394 + cross-spawn "^4.0.2"
2395 + node-version "^1.0.0"
2396 + promise-polyfill "^6.0.1"
2397 +
2398 +chokidar@^1.4.3:
2399 + version "1.7.0"
2400 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
2401 + dependencies:
2402 + anymatch "^1.3.0"
2403 + async-each "^1.0.0"
2404 + glob-parent "^2.0.0"
2405 + inherits "^2.0.1"
2406 + is-binary-path "^1.0.0"
2407 + is-glob "^2.0.0"
2408 + path-is-absolute "^1.0.0"
2409 + readdirp "^2.0.0"
2410 + optionalDependencies:
2411 + fsevents "^1.0.0"
2412 +
2413 +chokidar@^2.0.2:
2414 + version "2.0.4"
2415 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
2416 + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==
2417 + dependencies:
2418 + anymatch "^2.0.0"
2419 + async-each "^1.0.0"
2420 + braces "^2.3.0"
2421 + glob-parent "^3.1.0"
2422 + inherits "^2.0.1"
2423 + is-binary-path "^1.0.0"
2424 + is-glob "^4.0.0"
2425 + lodash.debounce "^4.0.8"
2426 + normalize-path "^2.1.1"
2427 + path-is-absolute "^1.0.0"
2428 + readdirp "^2.0.0"
2429 + upath "^1.0.5"
2430 + optionalDependencies:
2431 + fsevents "^1.2.2"
2432 +
2433 +chownr@^1.0.1, chownr@^1.1.1:
2434 + version "1.1.1"
2435 + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
2436 + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
2437 +
2438 +chrome-launch@^1.1.4:
2439 + version "1.1.4"
2440 + resolved "https://registry.yarnpkg.com/chrome-launch/-/chrome-launch-1.1.4.tgz#c8985bd022635a5cc897099bafd19831838a7252"
2441 + dependencies:
2442 + chrome-location "^1.2.0"
2443 + quick-tmp "0.0.0"
2444 + rimraf "^2.2.8"
2445 + shallow-copy "0.0.1"
2446 +
2447 +chrome-location@^1.2.0:
2448 + version "1.2.1"
2449 + resolved "https://registry.yarnpkg.com/chrome-location/-/chrome-location-1.2.1.tgz#6911511a4eac55027625c73b937ca5ca7ab94995"
2450 + dependencies:
2451 + userhome "^1.0.0"
2452 + which "^1.0.5"
2453 +
2454 +chrome-trace-event@^1.0.0:
2455 + version "1.0.0"
2456 + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48"
2457 + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==
2458 + dependencies:
2459 + tslib "^1.9.0"
2460 +
2461 +ci-info@^1.0.0:
2462 + version "1.1.2"
2463 + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4"
2464 +
2465 +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
2466 + version "1.0.4"
2467 + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
2468 + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
2469 + dependencies:
2470 + inherits "^2.0.1"
2471 + safe-buffer "^5.0.1"
2472 +
2473 +circular-json@^0.3.1:
2474 + version "0.3.1"
2475 + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
2476 +
2477 +class-utils@^0.3.5:
2478 + version "0.3.6"
2479 + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
2480 + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
2481 + dependencies:
2482 + arr-union "^3.1.0"
2483 + define-property "^0.2.5"
2484 + isobject "^3.0.0"
2485 + static-extend "^0.1.1"
2486 +
2487 +classnames@2.2.1:
2488 + version "2.2.1"
2489 + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.1.tgz#4d1a3d02d037d45e00b096c0be6f5496dcbf288a"
2490 +
2491 +cli-boxes@^1.0.0:
2492 + version "1.0.0"
2493 + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
2494 +
2495 +cli-cursor@^1.0.1:
2496 + version "1.0.2"
2497 + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
2498 + dependencies:
2499 + restore-cursor "^1.0.1"
2500 +
2501 +cli-cursor@^2.0.0, cli-cursor@^2.1.0:
2502 + version "2.1.0"
2503 + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
2504 + dependencies:
2505 + restore-cursor "^2.0.0"
2506 +
2507 +cli-spinners@^1.0.0:
2508 + version "1.0.0"
2509 + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a"
2510 +
2511 +cli-width@^2.0.0:
2512 + version "2.1.0"
2513 + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
2514 +
2515 +clipboard-js@^0.3.3:
2516 + version "0.3.3"
2517 + resolved "https://registry.yarnpkg.com/clipboard-js/-/clipboard-js-0.3.3.tgz#62264c17c80ebf84f4022286f032501e890b8922"
2518 +
2519 +cliui@^2.1.0:
2520 + version "2.1.0"
2521 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
2522 + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
2523 + dependencies:
2524 + center-align "^0.1.1"
2525 + right-align "^0.1.1"
2526 + wordwrap "0.0.2"
2527 +
2528 +cliui@^3.2.0:
2529 + version "3.2.0"
2530 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
2531 + dependencies:
2532 + string-width "^1.0.1"
2533 + strip-ansi "^3.0.1"
2534 + wrap-ansi "^2.0.0"
2535 +
2536 +cliui@^4.0.0:
2537 + version "4.0.0"
2538 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
2539 + dependencies:
2540 + string-width "^2.1.1"
2541 + strip-ansi "^4.0.0"
2542 + wrap-ansi "^2.0.0"
2543 +
2544 +clone-stats@^0.0.1:
2545 + version "0.0.1"
2546 + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
2547 +
2548 +clone@^1.0.0:
2549 + version "1.0.2"
2550 + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
2551 +
2552 +clone@^1.0.2:
2553 + version "1.0.4"
2554 + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
2555 + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
2556 +
2557 +cmd-shim@^2.0.2:
2558 + version "2.0.2"
2559 + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb"
2560 + dependencies:
2561 + graceful-fs "^4.1.2"
2562 + mkdirp "~0.5.0"
2563 +
2564 +co@^4.6.0:
2565 + version "4.6.0"
2566 + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
2567 +
2568 +code-point-at@^1.0.0:
2569 + version "1.1.0"
2570 + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
2571 + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
2572 +
2573 +collection-visit@^1.0.0:
2574 + version "1.0.0"
2575 + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
2576 + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
2577 + dependencies:
2578 + map-visit "^1.0.0"
2579 + object-visit "^1.0.0"
2580 +
2581 +color-convert@^1.0.0:
2582 + version "1.9.0"
2583 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
2584 + dependencies:
2585 + color-name "^1.1.1"
2586 +
2587 +color-convert@^1.9.0:
2588 + version "1.9.1"
2589 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
2590 + dependencies:
2591 + color-name "^1.1.1"
2592 +
2593 +color-name@^1.1.1:
2594 + version "1.1.2"
2595 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d"
2596 +
2597 +colors@0.5.x:
2598 + version "0.5.1"
2599 + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
2600 +
2601 +columnify@1.5.4, columnify@^1.5.4:
2602 + version "1.5.4"
2603 + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
2604 + dependencies:
2605 + strip-ansi "^3.0.0"
2606 + wcwidth "^1.0.0"
2607 +
2608 +combined-stream@^1.0.5, combined-stream@~1.0.5:
2609 + version "1.0.7"
2610 + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
2611 + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
2612 + dependencies:
2613 + delayed-stream "~1.0.0"
2614 +
2615 +command-join@^2.0.0:
2616 + version "2.0.0"
2617 + resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf"
2618 +
2619 +commander@2.9.0:
2620 + version "2.9.0"
2621 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
2622 + dependencies:
2623 + graceful-readlink ">= 1.0.0"
2624 +
2625 +commander@^2.6.0:
2626 + version "2.11.0"
2627 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
2628 +
2629 +commander@^2.9.0:
2630 + version "2.19.0"
2631 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
2632 + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
2633 +
2634 +commander@~2.17.1:
2635 + version "2.17.1"
2636 + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
2637 + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
2638 +
2639 +commondir@^1.0.1:
2640 + version "1.0.1"
2641 + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
2642 + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
2643 +
2644 +compare-func@^1.3.1:
2645 + version "1.3.2"
2646 + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648"
2647 + dependencies:
2648 + array-ify "^1.0.0"
2649 + dot-prop "^3.0.0"
2650 +
2651 +component-emitter@^1.2.1:
2652 + version "1.2.1"
2653 + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
2654 + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
2655 +
2656 +compress-commons@^1.2.0:
2657 + version "1.2.0"
2658 + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
2659 + dependencies:
2660 + buffer-crc32 "^0.2.1"
2661 + crc32-stream "^2.0.0"
2662 + normalize-path "^2.0.0"
2663 + readable-stream "^2.0.0"
2664 +
2665 +concat-map@0.0.1:
2666 + version "0.0.1"
2667 + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
2668 + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
2669 +
2670 +concat-stream@^1.4.10, concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2:
2671 + version "1.6.0"
2672 + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
2673 + dependencies:
2674 + inherits "^2.0.3"
2675 + readable-stream "^2.2.2"
2676 + typedarray "^0.0.6"
2677 +
2678 +concat-stream@^1.5.0:
2679 + version "1.6.2"
2680 + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
2681 + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
2682 + dependencies:
2683 + buffer-from "^1.0.0"
2684 + inherits "^2.0.3"
2685 + readable-stream "^2.2.2"
2686 + typedarray "^0.0.6"
2687 +
2688 +configstore@^3.0.0:
2689 + version "3.1.0"
2690 + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1"
2691 + dependencies:
2692 + dot-prop "^4.1.0"
2693 + graceful-fs "^4.1.2"
2694 + make-dir "^1.0.0"
2695 + unique-string "^1.0.0"
2696 + write-file-atomic "^2.0.0"
2697 + xdg-basedir "^3.0.0"
2698 +
2699 +console-browserify@^1.1.0:
2700 + version "1.1.0"
2701 + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
2702 + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
2703 + dependencies:
2704 + date-now "^0.1.4"
2705 +
2706 +console-control-strings@^1.0.0, console-control-strings@~1.1.0:
2707 + version "1.1.0"
2708 + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
2709 + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
2710 +
2711 +constants-browserify@0.0.1:
2712 + version "0.0.1"
2713 + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2"
2714 + integrity sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=
2715 +
2716 +constants-browserify@^1.0.0:
2717 + version "1.0.0"
2718 + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
2719 + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
2720 +
2721 +content-type-parser@^1.0.2:
2722 + version "1.0.2"
2723 + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7"
2724 +
2725 +conventional-changelog-angular@^1.6.1:
2726 + version "1.6.1"
2727 + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.1.tgz#e1434d017c854032b272f690424a8c0ca16dc318"
2728 + dependencies:
2729 + compare-func "^1.3.1"
2730 + q "^1.4.1"
2731 +
2732 +conventional-changelog-atom@^0.2.0:
2733 + version "0.2.0"
2734 + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.0.tgz#72f18e5c74e3d8807411252fe013818ddffa7157"
2735 + dependencies:
2736 + q "^1.4.1"
2737 +
2738 +conventional-changelog-cli@^1.3.2:
2739 + version "1.3.8"
2740 + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.8.tgz#3b3f3591cb8d1f154bdb28e1819c5fcd8d967536"
2741 + dependencies:
2742 + add-stream "^1.0.0"
2743 + conventional-changelog "^1.1.10"
2744 + lodash "^4.1.0"
2745 + meow "^3.7.0"
2746 + tempfile "^1.1.1"
2747 +
2748 +conventional-changelog-codemirror@^0.3.0:
2749 + version "0.3.0"
2750 + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.0.tgz#4dd8abb9f521a638cab49f683496c26b8a5c6d31"
2751 + dependencies:
2752 + q "^1.4.1"
2753 +
2754 +conventional-changelog-core@^2.0.0:
2755 + version "2.0.0"
2756 + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.0.tgz#1bdf7d21f3d066427ff9e07db0a2c5dd60015b9f"
2757 + dependencies:
2758 + conventional-changelog-writer "^3.0.0"
2759 + conventional-commits-parser "^2.1.0"
2760 + dateformat "^1.0.12"
2761 + get-pkg-repo "^1.0.0"
2762 + git-raw-commits "^1.3.0"
2763 + git-remote-origin-url "^2.0.0"
2764 + git-semver-tags "^1.3.0"
2765 + lodash "^4.0.0"
2766 + normalize-package-data "^2.3.5"
2767 + q "^1.4.1"
2768 + read-pkg "^1.1.0"
2769 + read-pkg-up "^1.0.1"
2770 + through2 "^2.0.0"
2771 +
2772 +conventional-changelog-ember@^0.3.1:
2773 + version "0.3.1"
2774 + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.1.tgz#bc71dc0a57e5c7ed0bf0538c32e44220691871d1"
2775 + dependencies:
2776 + q "^1.4.1"
2777 +
2778 +conventional-changelog-eslint@^1.0.0:
2779 + version "1.0.0"
2780 + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.0.tgz#c63cd9d6f09d4e204530ae7369d7a20a167bc6bc"
2781 + dependencies:
2782 + q "^1.4.1"
2783 +
2784 +conventional-changelog-express@^0.3.0:
2785 + version "0.3.0"
2786 + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.0.tgz#5ed006f48682d8615ee0ab5f53cacb26fbd3e1c8"
2787 + dependencies:
2788 + q "^1.4.1"
2789 +
2790 +conventional-changelog-jquery@^0.1.0:
2791 + version "0.1.0"
2792 + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510"
2793 + dependencies:
2794 + q "^1.4.1"
2795 +
2796 +conventional-changelog-jscs@^0.1.0:
2797 + version "0.1.0"
2798 + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c"
2799 + dependencies:
2800 + q "^1.4.1"
2801 +
2802 +conventional-changelog-jshint@^0.3.0:
2803 + version "0.3.0"
2804 + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.0.tgz#0393fd468113baf73cba911d17c5826423366a28"
2805 + dependencies:
2806 + compare-func "^1.3.1"
2807 + q "^1.4.1"
2808 +
2809 +conventional-changelog-writer@^3.0.0:
2810 + version "3.0.0"
2811 + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.0.tgz#e106154ed94341e387d717b61be2181ff53254cc"
2812 + dependencies:
2813 + compare-func "^1.3.1"
2814 + conventional-commits-filter "^1.1.1"
2815 + dateformat "^1.0.11"
2816 + handlebars "^4.0.2"
2817 + json-stringify-safe "^5.0.1"
2818 + lodash "^4.0.0"
2819 + meow "^3.3.0"
2820 + semver "^5.0.1"
2821 + split "^1.0.0"
2822 + through2 "^2.0.0"
2823 +
2824 +conventional-changelog@^1.1.10:
2825 + version "1.1.10"
2826 + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.10.tgz#d9bb3aad9086152d283e4707fb45a5b7a28e9e98"
2827 + dependencies:
2828 + conventional-changelog-angular "^1.6.1"
2829 + conventional-changelog-atom "^0.2.0"
2830 + conventional-changelog-codemirror "^0.3.0"
2831 + conventional-changelog-core "^2.0.0"
2832 + conventional-changelog-ember "^0.3.1"
2833 + conventional-changelog-eslint "^1.0.0"
2834 + conventional-changelog-express "^0.3.0"
2835 + conventional-changelog-jquery "^0.1.0"
2836 + conventional-changelog-jscs "^0.1.0"
2837 + conventional-changelog-jshint "^0.3.0"
2838 +
2839 +conventional-commits-filter@^1.1.1:
2840 + version "1.1.1"
2841 + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz#72172319c0c88328a015b30686b55527b3a5e54a"
2842 + dependencies:
2843 + is-subset "^0.1.1"
2844 + modify-values "^1.0.0"
2845 +
2846 +conventional-commits-parser@^2.1.0:
2847 + version "2.1.0"
2848 + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz#9b4b7c91124bf2a1a9a2cc1c72760d382cbbb229"
2849 + dependencies:
2850 + JSONStream "^1.0.4"
2851 + is-text-path "^1.0.0"
2852 + lodash "^4.2.1"
2853 + meow "^3.3.0"
2854 + split2 "^2.0.0"
2855 + through2 "^2.0.0"
2856 + trim-off-newlines "^1.0.0"
2857 +
2858 +conventional-recommended-bump@^1.0.1:
2859 + version "1.2.0"
2860 + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.0.tgz#864fb955825d9c6056620cee4657b0dc0628a3e9"
2861 + dependencies:
2862 + concat-stream "^1.4.10"
2863 + conventional-commits-filter "^1.1.1"
2864 + conventional-commits-parser "^2.1.0"
2865 + git-raw-commits "^1.3.0"
2866 + git-semver-tags "^1.3.0"
2867 + meow "^3.3.0"
2868 + object-assign "^4.0.1"
2869 +
2870 +convert-source-map@^1.1.0:
2871 + version "1.3.0"
2872 + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
2873 +
2874 +convert-source-map@^1.4.0:
2875 + version "1.5.1"
2876 + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
2877 +
2878 +copy-concurrently@^1.0.0:
2879 + version "1.0.5"
2880 + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
2881 + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
2882 + dependencies:
2883 + aproba "^1.1.1"
2884 + fs-write-stream-atomic "^1.0.8"
2885 + iferr "^0.1.5"
2886 + mkdirp "^0.5.1"
2887 + rimraf "^2.5.4"
2888 + run-queue "^1.0.0"
2889 +
2890 +copy-descriptor@^0.1.0:
2891 + version "0.1.1"
2892 + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
2893 + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
2894 +
2895 +core-js@^1.0.0:
2896 + version "1.2.7"
2897 + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
2898 +
2899 +core-js@^2.4.0:
2900 + version "2.4.1"
2901 + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
2902 +
2903 +core-util-is@1.0.2, core-util-is@~1.0.0:
2904 + version "1.0.2"
2905 + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
2906 + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
2907 +
2908 +crc32-stream@^2.0.0:
2909 + version "2.0.0"
2910 + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
2911 + dependencies:
2912 + crc "^3.4.4"
2913 + readable-stream "^2.0.0"
2914 +
2915 +crc@^3.4.4:
2916 + version "3.4.4"
2917 + resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
2918 +
2919 +create-ecdh@^4.0.0:
2920 + version "4.0.3"
2921 + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
2922 + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
2923 + dependencies:
2924 + bn.js "^4.1.0"
2925 + elliptic "^6.0.0"
2926 +
2927 +create-error-class@^3.0.0:
2928 + version "3.0.2"
2929 + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
2930 + dependencies:
2931 + capture-stack-trace "^1.0.0"
2932 +
2933 +create-hash@^1.1.0, create-hash@^1.1.2:
2934 + version "1.2.0"
2935 + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
2936 + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
2937 + dependencies:
2938 + cipher-base "^1.0.1"
2939 + inherits "^2.0.1"
2940 + md5.js "^1.3.4"
2941 + ripemd160 "^2.0.1"
2942 + sha.js "^2.4.0"
2943 +
2944 +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
2945 + version "1.1.7"
2946 + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
2947 + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
2948 + dependencies:
2949 + cipher-base "^1.0.3"
2950 + create-hash "^1.1.0"
2951 + inherits "^2.0.1"
2952 + ripemd160 "^2.0.0"
2953 + safe-buffer "^5.0.1"
2954 + sha.js "^2.4.8"
2955 +
2956 +cross-spawn-async@^2.2.2:
2957 + version "2.2.5"
2958 + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
2959 + dependencies:
2960 + lru-cache "^4.0.0"
2961 + which "^1.2.8"
2962 +
2963 +cross-spawn@^2.1.5:
2964 + version "2.2.3"
2965 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-2.2.3.tgz#fac56202dfd3d0dd861778f2da203bf434bb821c"
2966 + dependencies:
2967 + cross-spawn-async "^2.2.2"
2968 + spawn-sync "^1.0.15"
2969 +
2970 +cross-spawn@^4.0.0, cross-spawn@^4.0.2:
2971 + version "4.0.2"
2972 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
2973 + dependencies:
2974 + lru-cache "^4.0.1"
2975 + which "^1.2.9"
2976 +
2977 +cross-spawn@^5.0.1:
2978 + version "5.1.0"
2979 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
2980 + dependencies:
2981 + lru-cache "^4.0.1"
2982 + shebang-command "^1.2.0"
2983 + which "^1.2.9"
2984 +
2985 +cross-spawn@^6.0.0, cross-spawn@^6.0.5:
2986 + version "6.0.5"
2987 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
2988 + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
2989 + dependencies:
2990 + nice-try "^1.0.4"
2991 + path-key "^2.0.1"
2992 + semver "^5.5.0"
2993 + shebang-command "^1.2.0"
2994 + which "^1.2.9"
2995 +
2996 +crx-parser@0.1.2:
2997 + version "0.1.2"
2998 + resolved "https://registry.yarnpkg.com/crx-parser/-/crx-parser-0.1.2.tgz#7eeeed9eddc95e22c189382e34624044a89a5a6d"
2999 +
3000 +cryptiles@2.x.x:
3001 + version "2.0.5"
3002 + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
3003 + integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
3004 + dependencies:
3005 + boom "2.x.x"
3006 +
3007 +cryptiles@3.x.x:
3008 + version "3.1.2"
3009 + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
3010 + dependencies:
3011 + boom "5.x.x"
3012 +
3013 +crypto-browserify@^3.11.0:
3014 + version "3.12.0"
3015 + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
3016 + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
3017 + dependencies:
3018 + browserify-cipher "^1.0.0"
3019 + browserify-sign "^4.0.0"
3020 + create-ecdh "^4.0.0"
3021 + create-hash "^1.1.0"
3022 + create-hmac "^1.1.0"
3023 + diffie-hellman "^5.0.0"
3024 + inherits "^2.0.1"
3025 + pbkdf2 "^3.0.3"
3026 + public-encrypt "^4.0.0"
3027 + randombytes "^2.0.0"
3028 + randomfill "^1.0.3"
3029 +
3030 +crypto-browserify@~3.2.6:
3031 + version "3.2.8"
3032 + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189"
3033 + integrity sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=
3034 + dependencies:
3035 + pbkdf2-compat "2.0.1"
3036 + ripemd160 "0.2.0"
3037 + sha.js "2.2.6"
3038 +
3039 +crypto-random-string@^1.0.0:
3040 + version "1.0.0"
3041 + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
3042 +
3043 +css-loader@^1.0.1:
3044 + version "1.0.1"
3045 + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe"
3046 + integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==
3047 + dependencies:
3048 + babel-code-frame "^6.26.0"
3049 + css-selector-tokenizer "^0.7.0"
3050 + icss-utils "^2.1.0"
3051 + loader-utils "^1.0.2"
3052 + lodash "^4.17.11"
3053 + postcss "^6.0.23"
3054 + postcss-modules-extract-imports "^1.2.0"
3055 + postcss-modules-local-by-default "^1.2.0"
3056 + postcss-modules-scope "^1.1.0"
3057 + postcss-modules-values "^1.3.0"
3058 + postcss-value-parser "^3.3.0"
3059 + source-list-map "^2.0.0"
3060 +
3061 +css-select@~1.2.0:
3062 + version "1.2.0"
3063 + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
3064 + dependencies:
3065 + boolbase "~1.0.0"
3066 + css-what "2.1"
3067 + domutils "1.5.1"
3068 + nth-check "~1.0.1"
3069 +
3070 +css-selector-tokenizer@^0.7.0:
3071 + version "0.7.1"
3072 + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d"
3073 + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==
3074 + dependencies:
3075 + cssesc "^0.1.0"
3076 + fastparse "^1.1.1"
3077 + regexpu-core "^1.0.0"
3078 +
3079 +css-what@2.1:
3080 + version "2.1.0"
3081 + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
3082 +
3083 +cssesc@^0.1.0:
3084 + version "0.1.0"
3085 + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
3086 + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
3087 +
3088 +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
3089 + version "0.3.2"
3090 + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
3091 +
3092 +"cssstyle@>= 0.2.37 < 0.3.0":
3093 + version "0.2.37"
3094 + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
3095 + dependencies:
3096 + cssom "0.3.x"
3097 +
3098 +currently-unhandled@^0.4.1:
3099 + version "0.4.1"
3100 + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
3101 + dependencies:
3102 + array-find-index "^1.0.1"
3103 +
3104 +cyclist@~0.2.2:
3105 + version "0.2.2"
3106 + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
3107 + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
3108 +
3109 +d@^0.1.1, d@~0.1.1:
3110 + version "0.1.1"
3111 + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309"
3112 + dependencies:
3113 + es5-ext "~0.10.2"
3114 +
3115 +dargs@^4.0.1:
3116 + version "4.1.0"
3117 + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17"
3118 + dependencies:
3119 + number-is-nan "^1.0.0"
3120 +
3121 +dashdash@^1.12.0:
3122 + version "1.14.1"
3123 + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
3124 + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
3125 + dependencies:
3126 + assert-plus "^1.0.0"
3127 +
3128 +date-now@^0.1.4:
3129 + version "0.1.4"
3130 + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
3131 + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
3132 +
3133 +dateformat@^1.0.11, dateformat@^1.0.12:
3134 + version "1.0.12"
3135 + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
3136 + dependencies:
3137 + get-stdin "^4.0.1"
3138 + meow "^3.3.0"
3139 +
3140 +dateformat@^2.0.0:
3141 + version "2.0.0"
3142 + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
3143 +
3144 +debounce@1.0.2:
3145 + version "1.0.2"
3146 + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.0.2.tgz#503cc674d8d7f737099664fb75ddbd36b9626dc6"
3147 +
3148 +debug@^2.1.1, debug@^2.2.0:
3149 + version "2.6.0"
3150 + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
3151 + dependencies:
3152 + ms "0.7.2"
3153 +
3154 +debug@^2.1.2, debug@^2.3.3, debug@^2.6.8:
3155 + version "2.6.9"
3156 + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
3157 + dependencies:
3158 + ms "2.0.0"
3159 +
3160 +debug@^3.1.0:
3161 + version "3.1.0"
3162 + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
3163 + dependencies:
3164 + ms "2.0.0"
3165 +
3166 +debug@^4.1.0:
3167 + version "4.1.0"
3168 + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
3169 + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
3170 + dependencies:
3171 + ms "^2.1.1"
3172 +
3173 +decamelize@1.2.0, decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
3174 + version "1.2.0"
3175 + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
3176 +
3177 +decode-uri-component@^0.2.0:
3178 + version "0.2.0"
3179 + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
3180 + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
3181 +
3182 +dedent@^0.7.0:
3183 + version "0.7.0"
3184 + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
3185 +
3186 +deep-extend@^0.6.0:
3187 + version "0.6.0"
3188 + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
3189 + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
3190 +
3191 +deep-extend@~0.4.0:
3192 + version "0.4.2"
3193 + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
3194 + integrity sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=
3195 +
3196 +deep-is@~0.1.3:
3197 + version "0.1.3"
3198 + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
3199 +
3200 +deepcopy@0.6.3:
3201 + version "0.6.3"
3202 + resolved "https://registry.yarnpkg.com/deepcopy/-/deepcopy-0.6.3.tgz#634780f2f8656ab771af8fa8431ed1ccee55c7b0"
3203 +
3204 +default-require-extensions@^1.0.0:
3205 + version "1.0.0"
3206 + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
3207 + dependencies:
3208 + strip-bom "^2.0.0"
3209 +
3210 +defaults@^1.0.3:
3211 + version "1.0.3"
3212 + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
3213 + dependencies:
3214 + clone "^1.0.2"
3215 +
3216 +define-properties@^1.1.2:
3217 + version "1.1.2"
3218 + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
3219 + dependencies:
3220 + foreach "^2.0.5"
3221 + object-keys "^1.0.8"
3222 +
3223 +define-property@^0.2.5:
3224 + version "0.2.5"
3225 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
3226 + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
3227 + dependencies:
3228 + is-descriptor "^0.1.0"
3229 +
3230 +define-property@^1.0.0:
3231 + version "1.0.0"
3232 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
3233 + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
3234 + dependencies:
3235 + is-descriptor "^1.0.0"
3236 +
3237 +define-property@^2.0.2:
3238 + version "2.0.2"
3239 + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
3240 + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
3241 + dependencies:
3242 + is-descriptor "^1.0.2"
3243 + isobject "^3.0.1"
3244 +
3245 +del@^2.0.2:
3246 + version "2.2.2"
3247 + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
3248 + dependencies:
3249 + globby "^5.0.0"
3250 + is-path-cwd "^1.0.0"
3251 + is-path-in-cwd "^1.0.0"
3252 + object-assign "^4.0.1"
3253 + pify "^2.0.0"
3254 + pinkie-promise "^2.0.0"
3255 + rimraf "^2.2.8"
3256 +
3257 +delayed-stream@~1.0.0:
3258 + version "1.0.0"
3259 + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
3260 + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
3261 +
3262 +delegates@^1.0.0:
3263 + version "1.0.0"
3264 + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
3265 + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
3266 +
3267 +des.js@^1.0.0:
3268 + version "1.0.0"
3269 + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
3270 + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
3271 + dependencies:
3272 + inherits "^2.0.1"
3273 + minimalistic-assert "^1.0.0"
3274 +
3275 +detect-indent@^4.0.0:
3276 + version "4.0.0"
3277 + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
3278 + dependencies:
3279 + repeating "^2.0.0"
3280 +
3281 +detect-indent@^5.0.0:
3282 + version "5.0.0"
3283 + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
3284 +
3285 +detect-libc@^1.0.2:
3286 + version "1.0.3"
3287 + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
3288 +
3289 +detect-newline@^2.1.0:
3290 + version "2.1.0"
3291 + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
3292 +
3293 +diff@^3.2.0:
3294 + version "3.4.0"
3295 + resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c"
3296 +
3297 +diffie-hellman@^5.0.0:
3298 + version "5.0.3"
3299 + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
3300 + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
3301 + dependencies:
3302 + bn.js "^4.1.0"
3303 + miller-rabin "^4.0.0"
3304 + randombytes "^2.0.0"
3305 +
3306 +dispensary@0.10.10:
3307 + version "0.10.10"
3308 + resolved "https://registry.yarnpkg.com/dispensary/-/dispensary-0.10.10.tgz#cb7140c2e98ae84b951ebd6816760e4d402fc31e"
3309 + dependencies:
3310 + array-from "2.1.1"
3311 + async "^2.0.0"
3312 + eslint "3.19.0"
3313 + natural-compare-lite "^1.4.0"
3314 + pino "^4.6.0"
3315 + request "^2.81.0"
3316 + semver "5.3.0"
3317 + sha.js "^2.4.4"
3318 + source-map-support "0.4.15"
3319 + yargs "^8.0.1"
3320 +
3321 +doctrine@^1.2.1:
3322 + version "1.5.0"
3323 + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
3324 + dependencies:
3325 + esutils "^2.0.2"
3326 + isarray "^1.0.0"
3327 +
3328 +doctrine@^2.0.0:
3329 + version "2.0.0"
3330 + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
3331 + dependencies:
3332 + esutils "^2.0.2"
3333 + isarray "^1.0.0"
3334 +
3335 +dom-serializer@0, dom-serializer@~0.1.0:
3336 + version "0.1.0"
3337 + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
3338 + dependencies:
3339 + domelementtype "~1.1.1"
3340 + entities "~1.1.1"
3341 +
3342 +domain-browser@^1.1.1:
3343 + version "1.2.0"
3344 + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
3345 + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
3346 +
3347 +domelementtype@1, domelementtype@^1.3.0:
3348 + version "1.3.0"
3349 + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
3350 +
3351 +domelementtype@~1.1.1:
3352 + version "1.1.3"
3353 + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
3354 +
3355 +domexception@^1.0.0:
3356 + version "1.0.1"
3357 + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
3358 + dependencies:
3359 + webidl-conversions "^4.0.2"
3360 +
3361 +domhandler@^2.3.0:
3362 + version "2.4.1"
3363 + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
3364 + dependencies:
3365 + domelementtype "1"
3366 +
3367 +domutils@1.5.1:
3368 + version "1.5.1"
3369 + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
3370 + dependencies:
3371 + dom-serializer "0"
3372 + domelementtype "1"
3373 +
3374 +domutils@^1.5.1:
3375 + version "1.6.2"
3376 + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff"
3377 + dependencies:
3378 + dom-serializer "0"
3379 + domelementtype "1"
3380 +
3381 +dot-prop@^3.0.0:
3382 + version "3.0.0"
3383 + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177"
3384 + dependencies:
3385 + is-obj "^1.0.0"
3386 +
3387 +dot-prop@^4.1.0:
3388 + version "4.1.1"
3389 + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1"
3390 + dependencies:
3391 + is-obj "^1.0.0"
3392 +
3393 +dtrace-provider@~0.8:
3394 + version "0.8.3"
3395 + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.3.tgz#ba1bfc6493285ccfcfc6ab69cd5c61d74c2a43bf"
3396 + dependencies:
3397 + nan "^2.3.3"
3398 +
3399 +duplexer2@0.0.2:
3400 + version "0.0.2"
3401 + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
3402 + dependencies:
3403 + readable-stream "~1.1.9"
3404 +
3405 +duplexer3@^0.1.4:
3406 + version "0.1.4"
3407 + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
3408 +
3409 +duplexer@^0.1.1:
3410 + version "0.1.1"
3411 + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
3412 +
3413 +duplexify@^3.4.2, duplexify@^3.6.0:
3414 + version "3.6.1"
3415 + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125"
3416 + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==
3417 + dependencies:
3418 + end-of-stream "^1.0.0"
3419 + inherits "^2.0.1"
3420 + readable-stream "^2.0.0"
3421 + stream-shift "^1.0.0"
3422 +
3423 +ecc-jsbn@~0.1.1:
3424 + version "0.1.2"
3425 + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
3426 + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
3427 + dependencies:
3428 + jsbn "~0.1.0"
3429 + safer-buffer "^2.1.0"
3430 +
3431 +ecdsa-sig-formatter@1.0.9:
3432 + version "1.0.9"
3433 + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1"
3434 + dependencies:
3435 + base64url "^2.0.0"
3436 + safe-buffer "^5.0.1"
3437 +
3438 +electron-to-chromium@^1.3.82:
3439 + version "1.3.84"
3440 + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz#2e55df59e818f150a9f61b53471ebf4f0feecc65"
3441 + integrity sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==
3442 +
3443 +elliptic@^6.0.0:
3444 + version "6.4.1"
3445 + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
3446 + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==
3447 + dependencies:
3448 + bn.js "^4.4.0"
3449 + brorand "^1.0.1"
3450 + hash.js "^1.0.0"
3451 + hmac-drbg "^1.0.0"
3452 + inherits "^2.0.1"
3453 + minimalistic-assert "^1.0.0"
3454 + minimalistic-crypto-utils "^1.0.0"
3455 +
3456 +emojis-list@^2.0.0:
3457 + version "2.1.0"
3458 + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
3459 + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
3460 +
3461 +encoding@^0.1.11:
3462 + version "0.1.12"
3463 + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
3464 + dependencies:
3465 + iconv-lite "~0.4.13"
3466 +
3467 +end-of-stream@^1.0.0, end-of-stream@~1.1.0:
3468 + version "1.1.0"
3469 + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07"
3470 + dependencies:
3471 + once "~1.3.0"
3472 +
3473 +end-of-stream@^1.1.0:
3474 + version "1.4.0"
3475 + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
3476 + dependencies:
3477 + once "^1.4.0"
3478 +
3479 +enhanced-resolve@^4.1.0:
3480 + version "4.1.0"
3481 + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
3482 + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
3483 + dependencies:
3484 + graceful-fs "^4.1.2"
3485 + memory-fs "^0.4.0"
3486 + tapable "^1.0.0"
3487 +
3488 +entities@^1.1.1, entities@~1.1.1:
3489 + version "1.1.1"
3490 + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
3491 +
3492 +errno@^0.1.3, errno@~0.1.7:
3493 + version "0.1.7"
3494 + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
3495 + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
3496 + dependencies:
3497 + prr "~1.0.1"
3498 +
3499 +error-ex@^1.2.0:
3500 + version "1.3.0"
3501 + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
3502 + dependencies:
3503 + is-arrayish "^0.2.1"
3504 +
3505 +error-ex@^1.3.1:
3506 + version "1.3.1"
3507 + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
3508 + dependencies:
3509 + is-arrayish "^0.2.1"
3510 +
3511 +error-stack-parser@^2.0.2:
3512 + version "2.0.2"
3513 + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d"
3514 + integrity sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==
3515 + dependencies:
3516 + stackframe "^1.0.4"
3517 +
3518 +es-abstract@^1.5.1:
3519 + version "1.10.0"
3520 + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
3521 + dependencies:
3522 + es-to-primitive "^1.1.1"
3523 + function-bind "^1.1.1"
3524 + has "^1.0.1"
3525 + is-callable "^1.1.3"
3526 + is-regex "^1.0.4"
3527 +
3528 +es-to-primitive@^1.1.1:
3529 + version "1.1.1"
3530 + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
3531 + dependencies:
3532 + is-callable "^1.1.1"
3533 + is-date-object "^1.0.1"
3534 + is-symbol "^1.0.1"
3535 +
3536 +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.10, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7:
3537 + version "0.10.12"
3538 + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047"
3539 + dependencies:
3540 + es6-iterator "2"
3541 + es6-symbol "~3.1"
3542 +
3543 +es6-error@4.0.0:
3544 + version "4.0.0"
3545 + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.0.tgz#f094c7041f662599bb12720da059d6b9c7ff0f40"
3546 +
3547 +es6-error@4.0.2:
3548 + version "4.0.2"
3549 + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
3550 +
3551 +es6-iterator@2:
3552 + version "2.0.0"
3553 + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac"
3554 + dependencies:
3555 + d "^0.1.1"
3556 + es5-ext "^0.10.7"
3557 + es6-symbol "3"
3558 +
3559 +es6-map@^0.1.3:
3560 + version "0.1.4"
3561 + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897"
3562 + dependencies:
3563 + d "~0.1.1"
3564 + es5-ext "~0.10.11"
3565 + es6-iterator "2"
3566 + es6-set "~0.1.3"
3567 + es6-symbol "~3.1.0"
3568 + event-emitter "~0.3.4"
3569 +
3570 +es6-promise@^2.0.1:
3571 + version "2.3.0"
3572 + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-2.3.0.tgz#96edb9f2fdb01995822b263dd8aadab6748181bc"
3573 +
3574 +es6-promise@^4.0.3:
3575 + version "4.1.1"
3576 + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
3577 +
3578 +es6-promisify@5.0.0:
3579 + version "5.0.0"
3580 + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
3581 + dependencies:
3582 + es6-promise "^4.0.3"
3583 +
3584 +es6-set@~0.1.3:
3585 + version "0.1.4"
3586 + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8"
3587 + dependencies:
3588 + d "~0.1.1"
3589 + es5-ext "~0.10.11"
3590 + es6-iterator "2"
3591 + es6-symbol "3"
3592 + event-emitter "~0.3.4"
3593 +
3594 +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0:
3595 + version "3.1.0"
3596 + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa"
3597 + dependencies:
3598 + d "~0.1.1"
3599 + es5-ext "~0.10.11"
3600 +
3601 +es6-symbol@3.0.2:
3602 + version "3.0.2"
3603 + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.0.2.tgz#1e928878c6f5e63541625b4bb4df4af07d154219"
3604 + dependencies:
3605 + d "~0.1.1"
3606 + es5-ext "~0.10.10"
3607 +
3608 +es6-weak-map@^2.0.1:
3609 + version "2.0.1"
3610 + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81"
3611 + dependencies:
3612 + d "^0.1.1"
3613 + es5-ext "^0.10.8"
3614 + es6-iterator "2"
3615 + es6-symbol "3"
3616 +
3617 +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
3618 + version "1.0.5"
3619 + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
3620 + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
3621 +
3622 +escodegen@^1.9.0:
3623 + version "1.9.0"
3624 + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852"
3625 + dependencies:
3626 + esprima "^3.1.3"
3627 + estraverse "^4.2.0"
3628 + esutils "^2.0.2"
3629 + optionator "^0.8.1"
3630 + optionalDependencies:
3631 + source-map "~0.5.6"
3632 +
3633 +escope@^3.6.0:
3634 + version "3.6.0"
3635 + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
3636 + dependencies:
3637 + es6-map "^0.1.3"
3638 + es6-weak-map "^2.0.1"
3639 + esrecurse "^4.1.0"
3640 + estraverse "^4.1.1"
3641 +
3642 +eslint-plugin-no-unsafe-innerhtml@1.0.16:
3643 + version "1.0.16"
3644 + resolved "https://registry.yarnpkg.com/eslint-plugin-no-unsafe-innerhtml/-/eslint-plugin-no-unsafe-innerhtml-1.0.16.tgz#7d02878c8e9bf7916b88836d5ac122b42f151932"
3645 + dependencies:
3646 + eslint "^3.7.1"
3647 +
3648 +eslint-plugin-react@5.1.1:
3649 + version "5.1.1"
3650 + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-5.1.1.tgz#869b1dc078a34fe7eab1f587c2bc3cd998befdd6"
3651 +
3652 +eslint-scope@^4.0.0:
3653 + version "4.0.0"
3654 + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
3655 + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
3656 + dependencies:
3657 + esrecurse "^4.1.0"
3658 + estraverse "^4.1.1"
3659 +
3660 +eslint@2.10.2:
3661 + version "2.10.2"
3662 + resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.10.2.tgz#b2309482fef043d3203365a321285e6cce01c3d7"
3663 + dependencies:
3664 + chalk "^1.1.3"
3665 + concat-stream "^1.4.6"
3666 + debug "^2.1.1"
3667 + doctrine "^1.2.1"
3668 + es6-map "^0.1.3"
3669 + escope "^3.6.0"
3670 + espree "3.1.4"
3671 + estraverse "^4.2.0"
3672 + esutils "^2.0.2"
3673 + file-entry-cache "^1.1.1"
3674 + glob "^7.0.3"
3675 + globals "^9.2.0"
3676 + ignore "^3.1.2"
3677 + imurmurhash "^0.1.4"
3678 + inquirer "^0.12.0"
3679 + is-my-json-valid "^2.10.0"
3680 + is-resolvable "^1.0.0"
3681 + js-yaml "^3.5.1"
3682 + json-stable-stringify "^1.0.0"
3683 + lodash "^4.0.0"
3684 + mkdirp "^0.5.0"
3685 + optionator "^0.8.1"
3686 + path-is-absolute "^1.0.0"
3687 + path-is-inside "^1.0.1"
3688 + pluralize "^1.2.1"
3689 + progress "^1.1.8"
3690 + require-uncached "^1.0.2"
3691 + shelljs "^0.6.0"
3692 + strip-json-comments "~1.0.1"
3693 + table "^3.7.8"
3694 + text-table "~0.2.0"
3695 + user-home "^2.0.0"
3696 +
3697 +eslint@3.19.0, eslint@^3.7.1:
3698 + version "3.19.0"
3699 + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
3700 + dependencies:
3701 + babel-code-frame "^6.16.0"
3702 + chalk "^1.1.3"
3703 + concat-stream "^1.5.2"
3704 + debug "^2.1.1"
3705 + doctrine "^2.0.0"
3706 + escope "^3.6.0"
3707 + espree "^3.4.0"
3708 + esquery "^1.0.0"
3709 + estraverse "^4.2.0"
3710 + esutils "^2.0.2"
3711 + file-entry-cache "^2.0.0"
3712 + glob "^7.0.3"
3713 + globals "^9.14.0"
3714 + ignore "^3.2.0"
3715 + imurmurhash "^0.1.4"
3716 + inquirer "^0.12.0"
3717 + is-my-json-valid "^2.10.0"
3718 + is-resolvable "^1.0.0"
3719 + js-yaml "^3.5.1"
3720 + json-stable-stringify "^1.0.0"
3721 + levn "^0.3.0"
3722 + lodash "^4.0.0"
3723 + mkdirp "^0.5.0"
3724 + natural-compare "^1.4.0"
3725 + optionator "^0.8.2"
3726 + path-is-inside "^1.0.1"
3727 + pluralize "^1.2.1"
3728 + progress "^1.1.8"
3729 + require-uncached "^1.0.2"
3730 + shelljs "^0.7.5"
3731 + strip-bom "^3.0.0"
3732 + strip-json-comments "~2.0.1"
3733 + table "^3.7.8"
3734 + text-table "~0.2.0"
3735 + user-home "^2.0.0"
3736 +
3737 +espree@3.1.4:
3738 + version "3.1.4"
3739 + resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.4.tgz#0726d7ac83af97a7c8498da9b363a3609d2a68a1"
3740 + dependencies:
3741 + acorn "^3.1.0"
3742 + acorn-jsx "^3.0.0"
3743 +
3744 +espree@^3.4.0:
3745 + version "3.4.3"
3746 + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374"
3747 + dependencies:
3748 + acorn "^5.0.1"
3749 + acorn-jsx "^3.0.0"
3750 +
3751 +esprima@3.1.3, esprima@^3.1.3:
3752 + version "3.1.3"
3753 + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
3754 +
3755 +esprima@^2.6.0:
3756 + version "2.7.3"
3757 + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
3758 +
3759 +esprima@^4.0.0:
3760 + version "4.0.0"
3761 + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
3762 +
3763 +esquery@^1.0.0:
3764 + version "1.0.0"
3765 + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
3766 + dependencies:
3767 + estraverse "^4.0.0"
3768 +
3769 +esrecurse@^4.1.0:
3770 + version "4.1.0"
3771 + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
3772 + dependencies:
3773 + estraverse "~4.1.0"
3774 + object-assign "^4.0.1"
3775 +
3776 +estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0:
3777 + version "4.2.0"
3778 + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
3779 +
3780 +estraverse@~4.1.0:
3781 + version "4.1.1"
3782 + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
3783 +
3784 +esutils@^2.0.0, esutils@^2.0.2:
3785 + version "2.0.2"
3786 + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
3787 +
3788 +event-emitter@~0.3.4:
3789 + version "0.3.4"
3790 + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5"
3791 + dependencies:
3792 + d "~0.1.1"
3793 + es5-ext "~0.10.7"
3794 +
3795 +event-to-promise@0.8.0:
3796 + version "0.8.0"
3797 + resolved "https://registry.yarnpkg.com/event-to-promise/-/event-to-promise-0.8.0.tgz#4b84f11772b6f25f7752fc74d971531ac6f5b626"
3798 +
3799 +events@^1.0.0:
3800 + version "1.1.1"
3801 + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
3802 + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
3803 +
3804 +events@^3.0.0:
3805 + version "3.0.0"
3806 + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
3807 + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==
3808 +
3809 +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
3810 + version "1.0.3"
3811 + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
3812 + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
3813 + dependencies:
3814 + md5.js "^1.3.4"
3815 + safe-buffer "^5.1.1"
3816 +
3817 +exec-sh@^0.2.0:
3818 + version "0.2.0"
3819 + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10"
3820 + dependencies:
3821 + merge "^1.1.3"
3822 +
3823 +execa@^0.10.0:
3824 + version "0.10.0"
3825 + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
3826 + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
3827 + dependencies:
3828 + cross-spawn "^6.0.0"
3829 + get-stream "^3.0.0"
3830 + is-stream "^1.1.0"
3831 + npm-run-path "^2.0.0"
3832 + p-finally "^1.0.0"
3833 + signal-exit "^3.0.0"
3834 + strip-eof "^1.0.0"
3835 +
3836 +execa@^0.5.0:
3837 + version "0.5.1"
3838 + resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36"
3839 + dependencies:
3840 + cross-spawn "^4.0.0"
3841 + get-stream "^2.2.0"
3842 + is-stream "^1.1.0"
3843 + npm-run-path "^2.0.0"
3844 + p-finally "^1.0.0"
3845 + signal-exit "^3.0.0"
3846 + strip-eof "^1.0.0"
3847 +
3848 +execa@^0.7.0:
3849 + version "0.7.0"
3850 + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
3851 + dependencies:
3852 + cross-spawn "^5.0.1"
3853 + get-stream "^3.0.0"
3854 + is-stream "^1.1.0"
3855 + npm-run-path "^2.0.0"
3856 + p-finally "^1.0.0"
3857 + signal-exit "^3.0.0"
3858 + strip-eof "^1.0.0"
3859 +
3860 +execa@^0.8.0:
3861 + version "0.8.0"
3862 + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
3863 + dependencies:
3864 + cross-spawn "^5.0.1"
3865 + get-stream "^3.0.0"
3866 + is-stream "^1.1.0"
3867 + npm-run-path "^2.0.0"
3868 + p-finally "^1.0.0"
3869 + signal-exit "^3.0.0"
3870 + strip-eof "^1.0.0"
3871 +
3872 +exit-hook@^1.0.0:
3873 + version "1.1.1"
3874 + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
3875 +
3876 +exit@^0.1.2:
3877 + version "0.1.2"
3878 + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
3879 +
3880 +expand-brackets@^0.1.4:
3881 + version "0.1.5"
3882 + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
3883 + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
3884 + dependencies:
3885 + is-posix-bracket "^0.1.0"
3886 +
3887 +expand-brackets@^2.1.4:
3888 + version "2.1.4"
3889 + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
3890 + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
3891 + dependencies:
3892 + debug "^2.3.3"
3893 + define-property "^0.2.5"
3894 + extend-shallow "^2.0.1"
3895 + posix-character-classes "^0.1.0"
3896 + regex-not "^1.0.0"
3897 + snapdragon "^0.8.1"
3898 + to-regex "^3.0.1"
3899 +
3900 +expand-range@^1.8.1:
3901 + version "1.8.2"
3902 + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
3903 + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
3904 + dependencies:
3905 + fill-range "^2.1.0"
3906 +
3907 +expect@^22.1.0:
3908 + version "22.1.0"
3909 + resolved "https://registry.yarnpkg.com/expect/-/expect-22.1.0.tgz#f8f9b019ab275d859cbefed531fbaefe8972431d"
3910 + dependencies:
3911 + ansi-styles "^3.2.0"
3912 + jest-diff "^22.1.0"
3913 + jest-get-type "^22.1.0"
3914 + jest-matcher-utils "^22.1.0"
3915 + jest-message-util "^22.1.0"
3916 + jest-regex-util "^22.1.0"
3917 +
3918 +extend-shallow@^2.0.1:
3919 + version "2.0.1"
3920 + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
3921 + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
3922 + dependencies:
3923 + is-extendable "^0.1.0"
3924 +
3925 +extend-shallow@^3.0.0, extend-shallow@^3.0.2:
3926 + version "3.0.2"
3927 + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
3928 + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
3929 + dependencies:
3930 + assign-symbols "^1.0.0"
3931 + is-extendable "^1.0.1"
3932 +
3933 +extend@~3.0.0:
3934 + version "3.0.2"
3935 + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
3936 + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
3937 +
3938 +extend@~3.0.1:
3939 + version "3.0.1"
3940 + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
3941 +
3942 +external-editor@^2.0.4:
3943 + version "2.1.0"
3944 + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
3945 + dependencies:
3946 + chardet "^0.4.0"
3947 + iconv-lite "^0.4.17"
3948 + tmp "^0.0.33"
3949 +
3950 +extglob@^0.3.1:
3951 + version "0.3.2"
3952 + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
3953 + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
3954 + dependencies:
3955 + is-extglob "^1.0.0"
3956 +
3957 +extglob@^2.0.4:
3958 + version "2.0.4"
3959 + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
3960 + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
3961 + dependencies:
3962 + array-unique "^0.3.2"
3963 + define-property "^1.0.0"
3964 + expand-brackets "^2.1.4"
3965 + extend-shallow "^2.0.1"
3966 + fragment-cache "^0.2.1"
3967 + regex-not "^1.0.0"
3968 + snapdragon "^0.8.1"
3969 + to-regex "^3.0.1"
3970 +
3971 +extsprintf@1.3.0:
3972 + version "1.3.0"
3973 + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
3974 + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
3975 +
3976 +extsprintf@^1.2.0:
3977 + version "1.4.0"
3978 + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
3979 + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
3980 +
3981 +fancy-log@^1.1.0:
3982 + version "1.3.0"
3983 + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
3984 + dependencies:
3985 + chalk "^1.1.1"
3986 + time-stamp "^1.0.0"
3987 +
3988 +fast-deep-equal@^0.1.0:
3989 + version "0.1.0"
3990 + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz#5c6f4599aba6b333ee3342e2ed978672f1001f8d"
3991 +
3992 +fast-deep-equal@^1.0.0:
3993 + version "1.0.0"
3994 + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
3995 +
3996 +fast-deep-equal@^2.0.1:
3997 + version "2.0.1"
3998 + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
3999 + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
4000 +
4001 +fast-json-parse@^1.0.0:
4002 + version "1.0.2"
4003 + resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.2.tgz#3fb1ca12db68a85933612cc3fab4d7060cfff1d7"
4004 +
4005 +fast-json-stable-stringify@^2.0.0:
4006 + version "2.0.0"
4007 + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
4008 +
4009 +fast-levenshtein@~2.0.4:
4010 + version "2.0.6"
4011 + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
4012 +
4013 +fast-safe-stringify@^1.0.8, fast-safe-stringify@^1.1.11:
4014 + version "1.2.0"
4015 + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-1.2.0.tgz#ebd42666fd18fe4f2ba4f0d295065f3f85cade96"
4016 +
4017 +fastparse@^1.1.1:
4018 + version "1.1.2"
4019 + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
4020 + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
4021 +
4022 +fb-watchman@^2.0.0:
4023 + version "2.0.0"
4024 + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
4025 + dependencies:
4026 + bser "^2.0.0"
4027 +
4028 +fbjs-scripts@0.7.0:
4029 + version "0.7.0"
4030 + resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.7.0.tgz#9da67cec6d62fddc94b099563f6c48a749900aef"
4031 + dependencies:
4032 + babel-core "^6.7.2"
4033 + babel-preset-fbjs "^1.0.0"
4034 + core-js "^1.0.0"
4035 + cross-spawn "^2.1.5"
4036 + gulp-util "^3.0.4"
4037 + object-assign "^4.0.1"
4038 + semver "^5.1.0"
4039 + through2 "^2.0.0"
4040 +
4041 +fbjs@0.5.1:
4042 + version "0.5.1"
4043 + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.5.1.tgz#db17fe609777a17a25b6c8b045303adad3339203"
4044 + dependencies:
4045 + core-js "^1.0.0"
4046 + loose-envify "^1.0.0"
4047 + promise "^7.0.3"
4048 + ua-parser-js "^0.7.9"
4049 + whatwg-fetch "^0.9.0"
4050 +
4051 +fbjs@^0.8.16:
4052 + version "0.8.17"
4053 + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
4054 + dependencies:
4055 + core-js "^1.0.0"
4056 + isomorphic-fetch "^2.1.1"
4057 + loose-envify "^1.0.0"
4058 + object-assign "^4.1.0"
4059 + promise "^7.1.1"
4060 + setimmediate "^1.0.5"
4061 + ua-parser-js "^0.7.18"
4062 +
4063 +fbjs@^0.8.9:
4064 + version "0.8.12"
4065 + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04"
4066 + dependencies:
4067 + core-js "^1.0.0"
4068 + isomorphic-fetch "^2.1.1"
4069 + loose-envify "^1.0.0"
4070 + object-assign "^4.1.0"
4071 + promise "^7.1.1"
4072 + setimmediate "^1.0.5"
4073 + ua-parser-js "^0.7.9"
4074 +
4075 +fd-slicer@~1.0.1:
4076 + version "1.0.1"
4077 + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
4078 + dependencies:
4079 + pend "~1.2.0"
4080 +
4081 +figgy-pudding@^3.1.0, figgy-pudding@^3.5.1:
4082 + version "3.5.1"
4083 + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
4084 + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
4085 +
4086 +figures@^1.3.5:
4087 + version "1.7.0"
4088 + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
4089 + dependencies:
4090 + escape-string-regexp "^1.0.5"
4091 + object-assign "^4.1.0"
4092 +
4093 +figures@^2.0.0:
4094 + version "2.0.0"
4095 + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
4096 + dependencies:
4097 + escape-string-regexp "^1.0.5"
4098 +
4099 +file-entry-cache@^1.1.1:
4100 + version "1.3.1"
4101 + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8"
4102 + dependencies:
4103 + flat-cache "^1.2.1"
4104 + object-assign "^4.0.1"
4105 +
4106 +file-entry-cache@^2.0.0:
4107 + version "2.0.0"
4108 + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
4109 + dependencies:
4110 + flat-cache "^1.2.1"
4111 + object-assign "^4.0.1"
4112 +
4113 +filename-regex@^2.0.0:
4114 + version "2.0.1"
4115 + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
4116 + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
4117 +
4118 +fileset@^2.0.2:
4119 + version "2.0.3"
4120 + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
4121 + dependencies:
4122 + glob "^7.0.3"
4123 + minimatch "^3.0.3"
4124 +
4125 +fill-range@^2.1.0:
4126 + version "2.2.4"
4127 + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
4128 + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
4129 + dependencies:
4130 + is-number "^2.1.0"
4131 + isobject "^2.0.0"
4132 + randomatic "^3.0.0"
4133 + repeat-element "^1.1.2"
4134 + repeat-string "^1.5.2"
4135 +
4136 +fill-range@^4.0.0:
4137 + version "4.0.0"
4138 + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
4139 + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
4140 + dependencies:
4141 + extend-shallow "^2.0.1"
4142 + is-number "^3.0.0"
4143 + repeat-string "^1.6.1"
4144 + to-regex-range "^2.1.0"
4145 +
4146 +find-cache-dir@^1.0.0:
4147 + version "1.0.0"
4148 + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
4149 + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
4150 + dependencies:
4151 + commondir "^1.0.1"
4152 + make-dir "^1.0.0"
4153 + pkg-dir "^2.0.0"
4154 +
4155 +find-cache-dir@^2.0.0:
4156 + version "2.0.0"
4157 + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d"
4158 + integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==
4159 + dependencies:
4160 + commondir "^1.0.1"
4161 + make-dir "^1.0.0"
4162 + pkg-dir "^3.0.0"
4163 +
4164 +find-up@^1.0.0:
4165 + version "1.1.2"
4166 + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
4167 + dependencies:
4168 + path-exists "^2.0.0"
4169 + pinkie-promise "^2.0.0"
4170 +
4171 +find-up@^2.0.0, find-up@^2.1.0:
4172 + version "2.1.0"
4173 + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
4174 + dependencies:
4175 + locate-path "^2.0.0"
4176 +
4177 +find-up@^3.0.0:
4178 + version "3.0.0"
4179 + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
4180 + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
4181 + dependencies:
4182 + locate-path "^3.0.0"
4183 +
4184 +firefox-client@^0.3.0:
4185 + version "0.3.0"
4186 + resolved "https://registry.yarnpkg.com/firefox-client/-/firefox-client-0.3.0.tgz#3794460f6eb6afcf41376addcbc7462e24a4cd8b"
4187 + dependencies:
4188 + colors "0.5.x"
4189 + js-select "~0.6.0"
4190 +
4191 +firefox-profile@0.5.0:
4192 + version "0.5.0"
4193 + resolved "https://registry.yarnpkg.com/firefox-profile/-/firefox-profile-0.5.0.tgz#036de91fe3ff218d9ed8252d924f49bca0b672bd"
4194 + dependencies:
4195 + adm-zip "~0.4.x"
4196 + archiver "~1.3.0"
4197 + async "~2.1.2"
4198 + fs-extra "~2.1.2"
4199 + ini "~1.3.3"
4200 + jetpack-id "1.0.0"
4201 + lazystream "~1.0.0"
4202 + lodash "~4.17.2"
4203 + minimist "^1.1.1"
4204 + uuid "^3.0.0"
4205 + xml2js "~0.4.4"
4206 +
4207 +firefox-profile@^1.0.2:
4208 + version "1.0.2"
4209 + resolved "https://registry.yarnpkg.com/firefox-profile/-/firefox-profile-1.0.2.tgz#aa6759d60e729105231c47a2f41831f3e9330b66"
4210 + dependencies:
4211 + adm-zip "~0.4.x"
4212 + archiver "~1.3.0"
4213 + async "~2.4.1"
4214 + fs-extra "~2.1.2"
4215 + ini "~1.3.3"
4216 + jetpack-id "1.0.0"
4217 + lazystream "~1.0.0"
4218 + lodash "~4.17.2"
4219 + minimist "^1.1.1"
4220 + uuid "^3.0.0"
4221 + xml2js "~0.4.4"
4222 +
4223 +first-chunk-stream@2.0.0, first-chunk-stream@^2.0.0:
4224 + version "2.0.0"
4225 + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70"
4226 + dependencies:
4227 + readable-stream "^2.0.2"
4228 +
4229 +first-match@0.0.1:
4230 + version "0.0.1"
4231 + resolved "https://registry.yarnpkg.com/first-match/-/first-match-0.0.1.tgz#a60ec642700f0f437234ebb7ec3f382476e542fd"
4232 +
4233 +flat-cache@^1.2.1:
4234 + version "1.2.2"
4235 + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
4236 + dependencies:
4237 + circular-json "^0.3.1"
4238 + del "^2.0.2"
4239 + graceful-fs "^4.1.2"
4240 + write "^0.2.1"
4241 +
4242 +flatstr@^1.0.4:
4243 + version "1.0.5"
4244 + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.5.tgz#5b451b08cbd48e2eac54a2bbe0bf46165aa14be3"
4245 +
4246 +flow-bin@^0.91.0:
4247 + version "0.91.0"
4248 + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.91.0.tgz#f5c89729f74b2ccbd47df6fbfadbdcc89cc1e478"
4249 + integrity sha512-j+L+xNiUYnZZ27MjVI0y2c9474ZHOvdSQq0Tjwh56mEA7tfxYqp5Dcb6aZSwvs3tGMTjCrZow9aUlZf3OoRyDQ==
4250 +
4251 +flush-write-stream@^1.0.0:
4252 + version "1.0.3"
4253 + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
4254 + integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==
4255 + dependencies:
4256 + inherits "^2.0.1"
4257 + readable-stream "^2.0.4"
4258 +
4259 +for-in@^1.0.1, for-in@^1.0.2:
4260 + version "1.0.2"
4261 + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
4262 + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
4263 +
4264 +for-own@^0.1.4:
4265 + version "0.1.5"
4266 + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
4267 + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
4268 + dependencies:
4269 + for-in "^1.0.1"
4270 +
4271 +foreach@^2.0.5:
4272 + version "2.0.5"
4273 + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
4274 +
4275 +forever-agent@~0.6.1:
4276 + version "0.6.1"
4277 + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
4278 + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
4279 +
4280 +form-data@~2.1.1:
4281 + version "2.1.4"
4282 + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
4283 + integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
4284 + dependencies:
4285 + asynckit "^0.4.0"
4286 + combined-stream "^1.0.5"
4287 + mime-types "^2.1.12"
4288 +
4289 +form-data@~2.3.1:
4290 + version "2.3.1"
4291 + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
4292 + dependencies:
4293 + asynckit "^0.4.0"
4294 + combined-stream "^1.0.5"
4295 + mime-types "^2.1.12"
4296 +
4297 +fragment-cache@^0.2.1:
4298 + version "0.2.1"
4299 + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
4300 + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
4301 + dependencies:
4302 + map-cache "^0.2.2"
4303 +
4304 +from2@^2.1.0:
4305 + version "2.3.0"
4306 + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
4307 + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
4308 + dependencies:
4309 + inherits "^2.0.1"
4310 + readable-stream "^2.0.0"
4311 +
4312 +fs-extra@^3.0.1:
4313 + version "3.0.1"
4314 + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
4315 + dependencies:
4316 + graceful-fs "^4.1.2"
4317 + jsonfile "^3.0.0"
4318 + universalify "^0.1.0"
4319 +
4320 +fs-extra@^4.0.1:
4321 + version "4.0.3"
4322 + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
4323 + dependencies:
4324 + graceful-fs "^4.1.2"
4325 + jsonfile "^4.0.0"
4326 + universalify "^0.1.0"
4327 +
4328 +fs-extra@~2.1.2:
4329 + version "2.1.2"
4330 + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
4331 + dependencies:
4332 + graceful-fs "^4.1.2"
4333 + jsonfile "^2.1.0"
4334 +
4335 +fs-minipass@^1.2.5:
4336 + version "1.2.5"
4337 + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
4338 + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
4339 + dependencies:
4340 + minipass "^2.2.1"
4341 +
4342 +fs-write-stream-atomic@^1.0.8:
4343 + version "1.0.10"
4344 + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
4345 + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
4346 + dependencies:
4347 + graceful-fs "^4.1.2"
4348 + iferr "^0.1.5"
4349 + imurmurhash "^0.1.4"
4350 + readable-stream "1 || 2"
4351 +
4352 +fs.realpath@^1.0.0:
4353 + version "1.0.0"
4354 + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
4355 + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
4356 +
4357 +fsevents@^1.0.0, fsevents@^1.2.2:
4358 + version "1.2.4"
4359 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
4360 + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
4361 + dependencies:
4362 + nan "^2.9.2"
4363 + node-pre-gyp "^0.10.0"
4364 +
4365 +fsevents@^1.1.1:
4366 + version "1.1.3"
4367 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
4368 + dependencies:
4369 + nan "^2.3.0"
4370 + node-pre-gyp "^0.6.39"
4371 +
4372 +fstream-ignore@^1.0.5:
4373 + version "1.0.5"
4374 + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
4375 + dependencies:
4376 + fstream "^1.0.0"
4377 + inherits "2"
4378 + minimatch "^3.0.0"
4379 +
4380 +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
4381 + version "1.0.11"
4382 + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
4383 + dependencies:
4384 + graceful-fs "^4.1.2"
4385 + inherits "~2.0.0"
4386 + mkdirp ">=0.5 0"
4387 + rimraf "2"
4388 +
4389 +function-bind@^1.0.2, function-bind@^1.1.1:
4390 + version "1.1.1"
4391 + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
4392 +
4393 +fx-runner@1.0.7:
4394 + version "1.0.7"
4395 + resolved "https://registry.yarnpkg.com/fx-runner/-/fx-runner-1.0.7.tgz#c102cfdf21234c2dbd16723dccb1186f99c0b641"
4396 + dependencies:
4397 + commander "2.9.0"
4398 + lodash "3.10.1"
4399 + shell-quote "1.6.1"
4400 + spawn-sync "1.0.15"
4401 + when "3.7.7"
4402 + which "1.2.4"
4403 + winreg "0.0.12"
4404 +
4405 +gauge@~2.7.3:
4406 + version "2.7.4"
4407 + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
4408 + dependencies:
4409 + aproba "^1.0.3"
4410 + console-control-strings "^1.0.0"
4411 + has-unicode "^2.0.0"
4412 + object-assign "^4.1.0"
4413 + signal-exit "^3.0.0"
4414 + string-width "^1.0.1"
4415 + strip-ansi "^3.0.1"
4416 + wide-align "^1.1.0"
4417 +
4418 +generate-function@^2.0.0:
4419 + version "2.3.1"
4420 + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
4421 + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
4422 + dependencies:
4423 + is-property "^1.0.2"
4424 +
4425 +generate-object-property@^1.1.0:
4426 + version "1.2.0"
4427 + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
4428 + integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
4429 + dependencies:
4430 + is-property "^1.0.0"
4431 +
4432 +get-caller-file@^1.0.1:
4433 + version "1.0.2"
4434 + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
4435 +
4436 +get-pkg-repo@^1.0.0:
4437 + version "1.4.0"
4438 + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d"
4439 + dependencies:
4440 + hosted-git-info "^2.1.4"
4441 + meow "^3.3.0"
4442 + normalize-package-data "^2.3.0"
4443 + parse-github-repo-url "^1.3.0"
4444 + through2 "^2.0.0"
4445 +
4446 +get-port@^3.2.0:
4447 + version "3.2.0"
4448 + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
4449 +
4450 +get-stdin@^4.0.1:
4451 + version "4.0.1"
4452 + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
4453 +
4454 +get-stream@^2.2.0:
4455 + version "2.3.1"
4456 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
4457 + dependencies:
4458 + object-assign "^4.0.1"
4459 + pinkie-promise "^2.0.0"
4460 +
4461 +get-stream@^3.0.0:
4462 + version "3.0.0"
4463 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
4464 +
4465 +get-value@^2.0.3, get-value@^2.0.6:
4466 + version "2.0.6"
4467 + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
4468 + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
4469 +
4470 +getpass@^0.1.1:
4471 + version "0.1.7"
4472 + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
4473 + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
4474 + dependencies:
4475 + assert-plus "^1.0.0"
4476 +
4477 +gh-pages@^1.0.0:
4478 + version "1.0.0"
4479 + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.0.0.tgz#4a46f4c25439f7a2b7e6835504d4a49e949f04ca"
4480 + dependencies:
4481 + async "2.1.4"
4482 + base64url "^2.0.0"
4483 + commander "2.9.0"
4484 + fs-extra "^3.0.1"
4485 + globby "^6.1.0"
4486 + graceful-fs "4.1.11"
4487 + rimraf "^2.5.4"
4488 +
4489 +git-raw-commits@^1.3.0:
4490 + version "1.3.0"
4491 + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.0.tgz#0bc8596e90d5ffe736f7f5546bd2d12f73abaac6"
4492 + dependencies:
4493 + dargs "^4.0.1"
4494 + lodash.template "^4.0.2"
4495 + meow "^3.3.0"
4496 + split2 "^2.0.0"
4497 + through2 "^2.0.0"
4498 +
4499 +git-remote-origin-url@^2.0.0:
4500 + version "2.0.0"
4501 + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f"
4502 + dependencies:
4503 + gitconfiglocal "^1.0.0"
4504 + pify "^2.3.0"
4505 +
4506 +git-rev-sync@1.9.1:
4507 + version "1.9.1"
4508 + resolved "https://registry.yarnpkg.com/git-rev-sync/-/git-rev-sync-1.9.1.tgz#a0c2e3dd392abcf6b76962e27fc75fb3223449ce"
4509 + dependencies:
4510 + escape-string-regexp "1.0.5"
4511 + graceful-fs "4.1.11"
4512 + shelljs "0.7.7"
4513 +
4514 +git-semver-tags@^1.3.0:
4515 + version "1.3.0"
4516 + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.0.tgz#b154833a6ab5c360c0ad3b1aa9b8f12ea06de919"
4517 + dependencies:
4518 + meow "^3.3.0"
4519 + semver "^5.0.1"
4520 +
4521 +gitconfiglocal@^1.0.0:
4522 + version "1.0.0"
4523 + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b"
4524 + dependencies:
4525 + ini "^1.3.2"
4526 +
4527 +glob-base@^0.3.0:
4528 + version "0.3.0"
4529 + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
4530 + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
4531 + dependencies:
4532 + glob-parent "^2.0.0"
4533 + is-glob "^2.0.0"
4534 +
4535 +glob-parent@^2.0.0:
4536 + version "2.0.0"
4537 + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
4538 + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
4539 + dependencies:
4540 + is-glob "^2.0.0"
4541 +
4542 +glob-parent@^3.1.0:
4543 + version "3.1.0"
4544 + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
4545 + dependencies:
4546 + is-glob "^3.1.0"
4547 + path-dirname "^1.0.0"
4548 +
4549 +glob@^6.0.1:
4550 + version "6.0.4"
4551 + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
4552 + dependencies:
4553 + inflight "^1.0.4"
4554 + inherits "2"
4555 + minimatch "2 || 3"
4556 + once "^1.3.0"
4557 + path-is-absolute "^1.0.0"
4558 +
4559 +glob@^7.0.0, glob@^7.0.3:
4560 + version "7.1.1"
4561 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
4562 + dependencies:
4563 + fs.realpath "^1.0.0"
4564 + inflight "^1.0.4"
4565 + inherits "2"
4566 + minimatch "^3.0.2"
4567 + once "^1.3.0"
4568 + path-is-absolute "^1.0.0"
4569 +
4570 +glob@^7.0.5:
4571 + version "7.1.3"
4572 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
4573 + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
4574 + dependencies:
4575 + fs.realpath "^1.0.0"
4576 + inflight "^1.0.4"
4577 + inherits "2"
4578 + minimatch "^3.0.4"
4579 + once "^1.3.0"
4580 + path-is-absolute "^1.0.0"
4581 +
4582 +glob@^7.1.1, glob@^7.1.2:
4583 + version "7.1.2"
4584 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
4585 + dependencies:
4586 + fs.realpath "^1.0.0"
4587 + inflight "^1.0.4"
4588 + inherits "2"
4589 + minimatch "^3.0.4"
4590 + once "^1.3.0"
4591 + path-is-absolute "^1.0.0"
4592 +
4593 +global-modules-path@^2.3.0:
4594 + version "2.3.0"
4595 + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc"
4596 + integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==
4597 +
4598 +globals@^11.1.0:
4599 + version "11.9.0"
4600 + resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
4601 + integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
4602 +
4603 +globals@^9.0.0, globals@^9.2.0:
4604 + version "9.14.0"
4605 + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034"
4606 +
4607 +globals@^9.14.0, globals@^9.18.0:
4608 + version "9.18.0"
4609 + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
4610 +
4611 +globby@^5.0.0:
4612 + version "5.0.0"
4613 + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
4614 + dependencies:
4615 + array-union "^1.0.1"
4616 + arrify "^1.0.0"
4617 + glob "^7.0.3"
4618 + object-assign "^4.0.1"
4619 + pify "^2.0.0"
4620 + pinkie-promise "^2.0.0"
4621 +
4622 +globby@^6.1.0:
4623 + version "6.1.0"
4624 + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
4625 + dependencies:
4626 + array-union "^1.0.1"
4627 + glob "^7.0.3"
4628 + object-assign "^4.0.1"
4629 + pify "^2.0.0"
4630 + pinkie-promise "^2.0.0"
4631 +
4632 +glogg@^1.0.0:
4633 + version "1.0.0"
4634 + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
4635 + dependencies:
4636 + sparkles "^1.0.0"
4637 +
4638 +got@^6.7.1:
4639 + version "6.7.1"
4640 + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
4641 + dependencies:
4642 + create-error-class "^3.0.0"
4643 + duplexer3 "^0.1.4"
4644 + get-stream "^3.0.0"
4645 + is-redirect "^1.0.0"
4646 + is-retry-allowed "^1.0.0"
4647 + is-stream "^1.0.0"
4648 + lowercase-keys "^1.0.0"
4649 + safe-buffer "^5.0.1"
4650 + timed-out "^4.0.0"
4651 + unzip-response "^2.0.1"
4652 + url-parse-lax "^1.0.0"
4653 +
4654 +graceful-fs@4.1.11, graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.6:
4655 + version "4.1.11"
4656 + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
4657 +
4658 +graceful-fs@^4.1.2:
4659 + version "4.1.15"
4660 + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
4661 + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
4662 +
4663 +"graceful-readlink@>= 1.0.0":
4664 + version "1.0.1"
4665 + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
4666 + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
4667 +
4668 +growly@^1.3.0:
4669 + version "1.3.0"
4670 + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
4671 +
4672 +gulp-util@^3.0.4:
4673 + version "3.0.8"
4674 + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
4675 + dependencies:
4676 + array-differ "^1.0.0"
4677 + array-uniq "^1.0.2"
4678 + beeper "^1.0.0"
4679 + chalk "^1.0.0"
4680 + dateformat "^2.0.0"
4681 + fancy-log "^1.1.0"
4682 + gulplog "^1.0.0"
4683 + has-gulplog "^0.1.0"
4684 + lodash._reescape "^3.0.0"
4685 + lodash._reevaluate "^3.0.0"
4686 + lodash._reinterpolate "^3.0.0"
4687 + lodash.template "^3.0.0"
4688 + minimist "^1.1.0"
4689 + multipipe "^0.1.2"
4690 + object-assign "^3.0.0"
4691 + replace-ext "0.0.1"
4692 + through2 "^2.0.0"
4693 + vinyl "^0.5.0"
4694 +
4695 +gulplog@^1.0.0:
4696 + version "1.0.0"
4697 + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
4698 + dependencies:
4699 + glogg "^1.0.0"
4700 +
4701 +handlebars@^4.0.2, handlebars@^4.0.3:
4702 + version "4.0.11"
4703 + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
4704 + dependencies:
4705 + async "^1.4.0"
4706 + optimist "^0.6.1"
4707 + source-map "^0.4.4"
4708 + optionalDependencies:
4709 + uglify-js "^2.6"
4710 +
4711 +har-schema@^1.0.5:
4712 + version "1.0.5"
4713 + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
4714 +
4715 +har-schema@^2.0.0:
4716 + version "2.0.0"
4717 + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
4718 +
4719 +har-validator@~2.0.6:
4720 + version "2.0.6"
4721 + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
4722 + integrity sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=
4723 + dependencies:
4724 + chalk "^1.1.1"
4725 + commander "^2.9.0"
4726 + is-my-json-valid "^2.12.4"
4727 + pinkie-promise "^2.0.0"
4728 +
4729 +har-validator@~4.2.1:
4730 + version "4.2.1"
4731 + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
4732 + dependencies:
4733 + ajv "^4.9.1"
4734 + har-schema "^1.0.5"
4735 +
4736 +har-validator@~5.0.3:
4737 + version "5.0.3"
4738 + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
4739 + dependencies:
4740 + ajv "^5.1.0"
4741 + har-schema "^2.0.0"
4742 +
4743 +has-ansi@^2.0.0:
4744 + version "2.0.0"
4745 + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
4746 + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
4747 + dependencies:
4748 + ansi-regex "^2.0.0"
4749 +
4750 +has-flag@^1.0.0:
4751 + version "1.0.0"
4752 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
4753 + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
4754 +
4755 +has-flag@^2.0.0:
4756 + version "2.0.0"
4757 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
4758 +
4759 +has-flag@^3.0.0:
4760 + version "3.0.0"
4761 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
4762 + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
4763 +
4764 +has-gulplog@^0.1.0:
4765 + version "0.1.0"
4766 + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
4767 + dependencies:
4768 + sparkles "^1.0.0"
4769 +
4770 +has-unicode@^2.0.0:
4771 + version "2.0.1"
4772 + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
4773 + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
4774 +
4775 +has-value@^0.3.1:
4776 + version "0.3.1"
4777 + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
4778 + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
4779 + dependencies:
4780 + get-value "^2.0.3"
4781 + has-values "^0.1.4"
4782 + isobject "^2.0.0"
4783 +
4784 +has-value@^1.0.0:
4785 + version "1.0.0"
4786 + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
4787 + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
4788 + dependencies:
4789 + get-value "^2.0.6"
4790 + has-values "^1.0.0"
4791 + isobject "^3.0.0"
4792 +
4793 +has-values@^0.1.4:
4794 + version "0.1.4"
4795 + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
4796 + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
4797 +
4798 +has-values@^1.0.0:
4799 + version "1.0.0"
4800 + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
4801 + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
4802 + dependencies:
4803 + is-number "^3.0.0"
4804 + kind-of "^4.0.0"
4805 +
4806 +has@^1.0.1:
4807 + version "1.0.1"
4808 + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
4809 + dependencies:
4810 + function-bind "^1.0.2"
4811 +
4812 +hash-base@^3.0.0:
4813 + version "3.0.4"
4814 + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
4815 + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
4816 + dependencies:
4817 + inherits "^2.0.1"
4818 + safe-buffer "^5.0.1"
4819 +
4820 +hash.js@^1.0.0, hash.js@^1.0.3:
4821 + version "1.1.5"
4822 + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
4823 + integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==
4824 + dependencies:
4825 + inherits "^2.0.3"
4826 + minimalistic-assert "^1.0.1"
4827 +
4828 +hawk@3.1.3, hawk@~3.1.3:
4829 + version "3.1.3"
4830 + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
4831 + dependencies:
4832 + boom "2.x.x"
4833 + cryptiles "2.x.x"
4834 + hoek "2.x.x"
4835 + sntp "1.x.x"
4836 +
4837 +hawk@~6.0.2:
4838 + version "6.0.2"
4839 + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
4840 + dependencies:
4841 + boom "4.x.x"
4842 + cryptiles "3.x.x"
4843 + hoek "4.x.x"
4844 + sntp "2.x.x"
4845 +
4846 +hmac-drbg@^1.0.0:
4847 + version "1.0.1"
4848 + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
4849 + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
4850 + dependencies:
4851 + hash.js "^1.0.3"
4852 + minimalistic-assert "^1.0.0"
4853 + minimalistic-crypto-utils "^1.0.1"
4854 +
4855 +hoek@2.x.x:
4856 + version "2.16.3"
4857 + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
4858 + integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
4859 +
4860 +hoek@4.x.x:
4861 + version "4.2.0"
4862 + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
4863 +
4864 +home-or-tmp@^2.0.0:
4865 + version "2.0.0"
4866 + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
4867 + dependencies:
4868 + os-homedir "^1.0.0"
4869 + os-tmpdir "^1.0.1"
4870 +
4871 +hosted-git-info@^2.1.4:
4872 + version "2.1.5"
4873 + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
4874 +
4875 +hosted-git-info@^2.5.0:
4876 + version "2.5.0"
4877 + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
4878 +
4879 +html-encoding-sniffer@^1.0.2:
4880 + version "1.0.2"
4881 + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
4882 + dependencies:
4883 + whatwg-encoding "^1.0.1"
4884 +
4885 +htmlparser2@^3.9.1:
4886 + version "3.9.2"
4887 + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
4888 + dependencies:
4889 + domelementtype "^1.3.0"
4890 + domhandler "^2.3.0"
4891 + domutils "^1.5.1"
4892 + entities "^1.1.1"
4893 + inherits "^2.0.1"
4894 + readable-stream "^2.0.2"
4895 +
4896 +http-browserify@^1.3.2:
4897 + version "1.7.0"
4898 + resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20"
4899 + integrity sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=
4900 + dependencies:
4901 + Base64 "~0.2.0"
4902 + inherits "~2.0.1"
4903 +
4904 +http-signature@~1.1.0:
4905 + version "1.1.1"
4906 + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
4907 + integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
4908 + dependencies:
4909 + assert-plus "^0.2.0"
4910 + jsprim "^1.2.2"
4911 + sshpk "^1.7.0"
4912 +
4913 +http-signature@~1.2.0:
4914 + version "1.2.0"
4915 + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
4916 + dependencies:
4917 + assert-plus "^1.0.0"
4918 + jsprim "^1.2.2"
4919 + sshpk "^1.7.0"
4920 +
4921 +https-browserify@0.0.0:
4922 + version "0.0.0"
4923 + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd"
4924 + integrity sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=
4925 +
4926 +https-browserify@^1.0.0:
4927 + version "1.0.0"
4928 + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
4929 + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
4930 +
4931 +iconv-lite@0.4.19, iconv-lite@^0.4.17:
4932 + version "0.4.19"
4933 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
4934 +
4935 +iconv-lite@^0.4.4:
4936 + version "0.4.24"
4937 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
4938 + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
4939 + dependencies:
4940 + safer-buffer ">= 2.1.2 < 3"
4941 +
4942 +iconv-lite@~0.4.13:
4943 + version "0.4.15"
4944 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
4945 +
4946 +icss-replace-symbols@^1.1.0:
4947 + version "1.1.0"
4948 + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
4949 + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
4950 +
4951 +icss-utils@^2.1.0:
4952 + version "2.1.0"
4953 + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
4954 + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
4955 + dependencies:
4956 + postcss "^6.0.1"
4957 +
4958 +ieee754@^1.1.4:
4959 + version "1.1.12"
4960 + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
4961 + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==
4962 +
4963 +iferr@^0.1.5:
4964 + version "0.1.5"
4965 + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
4966 + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
4967 +
4968 +ignore-walk@^3.0.1:
4969 + version "3.0.1"
4970 + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
4971 + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
4972 + dependencies:
4973 + minimatch "^3.0.4"
4974 +
4975 +ignore@^3.1.2:
4976 + version "3.2.0"
4977 + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435"
4978 +
4979 +ignore@^3.2.0:
4980 + version "3.3.3"
4981 + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
4982 +
4983 +immutable@3.7.6:
4984 + version "3.7.6"
4985 + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
4986 +
4987 +import-lazy@^2.1.0:
4988 + version "2.1.0"
4989 + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
4990 +
4991 +import-local@^1.0.0:
4992 + version "1.0.0"
4993 + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
4994 + dependencies:
4995 + pkg-dir "^2.0.0"
4996 + resolve-cwd "^2.0.0"
4997 +
4998 +import-local@^2.0.0:
4999 + version "2.0.0"

This file is too large to show in full.