├── .babelrc
├── .gitignore
├── README.md
├── lib
└── index.js
├── package-lock.json
├── package.json
└── src
└── index.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "react", "stage-0"],
3 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Relay-compose
2 |
3 | This is a HOC for relay modern to work with сomposable react components.
4 |
5 | You probably want to use this when you work with smart and dumb components and you need to compose relay data fetching in your smart component and pass it down to dumb component.
6 |
7 | # Setup
8 |
9 | `npm install --save relay-compose`
10 |
11 | Set relay [environment](https://facebook.github.io/relay/docs/relay-environment.html) using `setEnvironment` in your entry point. For example in `client.js`:
12 |
13 | ```js
14 | import { setEnvironment } from 'relay-compose';
15 | import relayEnv from './createRelayEnvironment'
16 |
17 | setEnvironment(relayEnv);
18 | ```
19 |
20 | And now you are ready to use it.
21 |
22 | # Examples
23 | ## FragmentContainer
24 |
25 | ```js
26 | import {
27 | graphql,
28 | } from 'react-relay';
29 | import { fragment } from 'relay-compose';
30 |
31 | import Persons from './Persons';
32 |
33 | export default compose(
34 | fragment(graphql`
35 | fragment PersonsContainerDesc on Person @relay(plural: true) {
36 | id
37 | title
38 | }
39 | `),
40 | connect(mapProps, mapDispatch, mergeProps),
41 | )(Persons);
42 | ```
43 |
44 | ## Query renderer(root)
45 |
46 | ```js
47 | import {
48 | graphql,
49 | } from 'react-relay';
50 | import { queryRenderer } from 'relay-compose';
51 |
52 | import PersonsInfoPage from './PersonsInfoPage';
53 | import { PersonsContainer } from '../Persons';
54 |
55 | export default compose(
56 | queryRenderer(graphql`
57 | query PersonsInfoPageContainerQuery {
58 | Person {
59 | ...PersonsContainerDesc
60 | }
61 | }
62 | `),
63 | mapProps(props => ({
64 | persons: ,
65 | })),
66 | )(PersonsInfoPage);
67 | ```
68 |
69 | ## Mutations
70 |
71 | ```js
72 | import { createMutation } from 'relay-compose';
73 |
74 | export default compose(
75 | mapProps(props => ({
76 | onSubmit: (data) => {
77 | createMutation(graphql`
78 | mutation MyComponentContainerMutation($input: MyInput!) {
79 | createUser(input: $input) {
80 | clientMutationId
81 | }
82 | }
83 | `, {
84 | variables: {
85 | input: data,
86 | },
87 | configs: [{
88 | type: 'RANGE_ADD',
89 | ...myConfig,
90 | }],
91 | }).then(res => console.log(res);
92 | },
93 | })),
94 | reduxForm({
95 | form: 'MyForm',
96 | }),
97 | )(MyForm);
98 | ```
99 |
100 | ## RefetchContainer
101 |
102 | ```js
103 | import { queryRenderer, refetchContainer } from 'relay-compose';
104 |
105 | export default compose(
106 | queryRenderer(graphql`
107 | query appQuery {
108 | viewer {
109 | ...Test_viewer
110 | }
111 | }
112 | `),
113 | refetchContainer(
114 | {
115 | viewer: graphql.experimental`
116 | fragment Test_viewer on User
117 | @argumentDefinitions(
118 | name: { type: String }
119 | ) {
120 | id
121 | firstName
122 | lastName
123 | }
124 | `,
125 | },
126 | graphql.experimental`
127 | query TestQuery($name: String!) {
128 | viewer {
129 | ...Test_viewer @arguments(name: $name)
130 | }
131 | }
132 | `,
133 | ),
134 | )(Test);
135 | ```
136 |
137 | ## PaginationContainer
138 |
139 | ```js
140 | import { queryRenderer, paginationContainer } from 'relay-compose';
141 |
142 | export default compose(
143 | queryRenderer(
144 | query songsContainerQuery(
145 | $count: Int!
146 | $cursor: String
147 | ) {
148 | ...songsContainer
149 | }
150 | `),
151 | paginationContainer(
152 | fragment songsContainer on Query {
153 | songs(
154 | first: $count,
155 | after: $cursor,
156 | ) @connection(key: "songsContainer_songs") {
157 | edges {
158 | node {
159 | audioId,
160 | name,
161 | coverImageUrl,
162 | artist,
163 | likes,
164 | dislikes,
165 | }
166 | }
167 | }
168 | }
169 | `),
170 | {
171 | direction: 'forward',
172 | query: graphql`
173 | query songsContainerForwardQuery(
174 | $count: Int!
175 | $cursor: String
176 | ) {
177 | ...songsContainer,
178 | }
179 | `,
180 | getVariables: (_, { count, cursor }) => ({
181 | count,
182 | cursor,
183 | }),
184 | }),
185 | )(Test);
186 | ```
187 |
188 | ## Subscriptions
189 | ```js
190 | import { graphql } from 'react-relay';
191 | import { createSubscription } from 'relay-compose';
192 |
193 | const subscription = graphql`
194 | subscription UnreadMessageNotificationSubscription($input: String) {
195 | unreadMessageNotification(input: $input) {
196 | unreadMessage
197 | }
198 | }
199 | `;
200 |
201 | function create(input) {
202 | return createSubscription(subscription, { input });
203 | }
204 |
205 | export default {
206 | create,
207 | };
208 | ```
209 |
210 | # Information
211 | This project is still in WIP. You are welcome to participate to it.
212 |
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.createSubscription = exports.createMutation = exports.refetchContainer = exports.queryRenderer = exports.paginationContainer = exports.fragment = exports.setEnvironment = exports.setEnviroment = undefined;
7 |
8 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
9 |
10 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
11 |
12 | var _react = require('react');
13 |
14 | var _react2 = _interopRequireDefault(_react);
15 |
16 | var _reactRelay = require('react-relay');
17 |
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19 |
20 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21 |
22 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
23 |
24 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
25 |
26 | var environment = void 0;
27 |
28 | var invariant = function invariant() {
29 | if (!environment) {
30 | throw new Error('Relay environment has not been declared.');
31 | }
32 | };
33 |
34 | // leave this one because by the time we found this typo the lib had been installed by many people.
35 | // So to not break peoples' apps just leave this for noe.
36 | var setEnviroment = exports.setEnviroment = function setEnviroment(env) {
37 | return environment = env;
38 | };
39 | var setEnvironment = exports.setEnvironment = function setEnvironment(env) {
40 | return environment = env;
41 | };
42 |
43 | var fragment = exports.fragment = function fragment(query) {
44 | return function (Component) {
45 | return (0, _reactRelay.createFragmentContainer)(function (props) {
46 | return _react2.default.createElement(Component, props);
47 | }, query);
48 | };
49 | };
50 |
51 | var paginationContainer = exports.paginationContainer = function paginationContainer(query, connectionConfig) {
52 | return function (Component) {
53 | return (0, _reactRelay.createPaginationContainer)(Component, query, connectionConfig);
54 | };
55 | };
56 |
57 | var queryRenderer = exports.queryRenderer = function queryRenderer(rootQuery, variables, LoadingComponent) {
58 | var loadingComponentProps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
59 | return function (Component) {
60 | var _class, _temp;
61 |
62 | return _temp = _class = function (_React$Component) {
63 | _inherits(RelayRoot, _React$Component);
64 |
65 | function RelayRoot() {
66 | _classCallCheck(this, RelayRoot);
67 |
68 | return _possibleConstructorReturn(this, (RelayRoot.__proto__ || Object.getPrototypeOf(RelayRoot)).apply(this, arguments));
69 | }
70 |
71 | _createClass(RelayRoot, [{
72 | key: 'render',
73 | value: function render() {
74 | var _this2 = this;
75 |
76 | invariant();
77 |
78 | var vars = typeof variables === 'function' ? variables(this.props) : variables;
79 |
80 | return _react2.default.createElement(_reactRelay.QueryRenderer, {
81 | environment: environment,
82 | query: rootQuery,
83 | variables: vars,
84 | render: function render(_ref) {
85 | var error = _ref.error,
86 | props = _ref.props,
87 | retry = _ref.retry;
88 |
89 | if (!props && !error) {
90 | var toRenderDuringLoading = LoadingComponent ? _react2.default.createElement(LoadingComponent, loadingComponentProps) : null;
91 |
92 | return toRenderDuringLoading;
93 | }
94 |
95 | return _react2.default.createElement(Component, _extends({}, props, _this2.props, {
96 | error: error,
97 | retry: retry
98 | }));
99 | }
100 | });
101 | }
102 | }]);
103 |
104 | return RelayRoot;
105 | }(_react2.default.Component), _class.displayName = 'RelayRoot(' + Component.displayName + ')', _temp;
106 | };
107 | };
108 |
109 | var refetchContainer = exports.refetchContainer = function refetchContainer(renderVariables, query) {
110 | return function (Component) {
111 | return (0, _reactRelay.createRefetchContainer)(Component, renderVariables, query);
112 | };
113 | };
114 |
115 | var createMutation = exports.createMutation = function createMutation(mutation, config) {
116 | return new Promise(function (res, rej) {
117 | invariant();
118 |
119 | (0, _reactRelay.commitMutation)(environment, _extends({
120 | mutation: mutation,
121 | onCompleted: function onCompleted(result, errors) {
122 | if (errors) {
123 | return rej(errors);
124 | }
125 |
126 | res(result);
127 | },
128 | onError: rej
129 | }, config));
130 | });
131 | };
132 |
133 | var createSubscription = exports.createSubscription = function createSubscription(subscription, variables, config) {
134 | return new Promise(function (res, rej) {
135 | invariant();
136 |
137 | (0, _reactRelay.requestSubscription)(environment, _extends({
138 | subscription: subscription,
139 | variables: variables,
140 | onCompleted: function onCompleted(result, errors) {
141 | if (errors) {
142 | return rej(errors);
143 | }
144 |
145 | res(result);
146 | },
147 | onError: rej
148 | }, config));
149 | });
150 | };
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "relay-compose",
3 | "version": "2.0.3",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "ansi-regex": {
8 | "version": "2.1.1",
9 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
10 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
11 | "dev": true
12 | },
13 | "ansi-styles": {
14 | "version": "2.2.1",
15 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
16 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
17 | "dev": true
18 | },
19 | "anymatch": {
20 | "version": "1.3.2",
21 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
22 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
23 | "dev": true,
24 | "optional": true,
25 | "requires": {
26 | "micromatch": "2.3.11",
27 | "normalize-path": "2.1.1"
28 | }
29 | },
30 | "arr-diff": {
31 | "version": "2.0.0",
32 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
33 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
34 | "dev": true,
35 | "optional": true,
36 | "requires": {
37 | "arr-flatten": "1.1.0"
38 | }
39 | },
40 | "arr-flatten": {
41 | "version": "1.1.0",
42 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
43 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
44 | "dev": true,
45 | "optional": true
46 | },
47 | "array-unique": {
48 | "version": "0.2.1",
49 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
50 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
51 | "dev": true,
52 | "optional": true
53 | },
54 | "async-each": {
55 | "version": "1.0.1",
56 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
57 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
58 | "dev": true,
59 | "optional": true
60 | },
61 | "babel-cli": {
62 | "version": "6.26.0",
63 | "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
64 | "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
65 | "dev": true,
66 | "requires": {
67 | "babel-core": "6.26.3",
68 | "babel-polyfill": "6.26.0",
69 | "babel-register": "6.26.0",
70 | "babel-runtime": "6.26.0",
71 | "chokidar": "1.7.0",
72 | "commander": "2.15.1",
73 | "convert-source-map": "1.5.1",
74 | "fs-readdir-recursive": "1.1.0",
75 | "glob": "7.1.2",
76 | "lodash": "4.17.10",
77 | "output-file-sync": "1.1.2",
78 | "path-is-absolute": "1.0.1",
79 | "slash": "1.0.0",
80 | "source-map": "0.5.7",
81 | "v8flags": "2.1.1"
82 | }
83 | },
84 | "babel-code-frame": {
85 | "version": "6.26.0",
86 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
87 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
88 | "dev": true,
89 | "requires": {
90 | "chalk": "1.1.3",
91 | "esutils": "2.0.2",
92 | "js-tokens": "3.0.2"
93 | }
94 | },
95 | "babel-core": {
96 | "version": "6.26.3",
97 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
98 | "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
99 | "dev": true,
100 | "requires": {
101 | "babel-code-frame": "6.26.0",
102 | "babel-generator": "6.26.1",
103 | "babel-helpers": "6.24.1",
104 | "babel-messages": "6.23.0",
105 | "babel-register": "6.26.0",
106 | "babel-runtime": "6.26.0",
107 | "babel-template": "6.26.0",
108 | "babel-traverse": "6.26.0",
109 | "babel-types": "6.26.0",
110 | "babylon": "6.18.0",
111 | "convert-source-map": "1.5.1",
112 | "debug": "2.6.9",
113 | "json5": "0.5.1",
114 | "lodash": "4.17.10",
115 | "minimatch": "3.0.4",
116 | "path-is-absolute": "1.0.1",
117 | "private": "0.1.8",
118 | "slash": "1.0.0",
119 | "source-map": "0.5.7"
120 | }
121 | },
122 | "babel-generator": {
123 | "version": "6.26.1",
124 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
125 | "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
126 | "dev": true,
127 | "requires": {
128 | "babel-messages": "6.23.0",
129 | "babel-runtime": "6.26.0",
130 | "babel-types": "6.26.0",
131 | "detect-indent": "4.0.0",
132 | "jsesc": "1.3.0",
133 | "lodash": "4.17.10",
134 | "source-map": "0.5.7",
135 | "trim-right": "1.0.1"
136 | }
137 | },
138 | "babel-helper-bindify-decorators": {
139 | "version": "6.24.1",
140 | "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
141 | "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
142 | "dev": true,
143 | "requires": {
144 | "babel-runtime": "6.26.0",
145 | "babel-traverse": "6.26.0",
146 | "babel-types": "6.26.0"
147 | }
148 | },
149 | "babel-helper-builder-binary-assignment-operator-visitor": {
150 | "version": "6.24.1",
151 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
152 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
153 | "dev": true,
154 | "requires": {
155 | "babel-helper-explode-assignable-expression": "6.24.1",
156 | "babel-runtime": "6.26.0",
157 | "babel-types": "6.26.0"
158 | }
159 | },
160 | "babel-helper-builder-react-jsx": {
161 | "version": "6.26.0",
162 | "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
163 | "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
164 | "dev": true,
165 | "requires": {
166 | "babel-runtime": "6.26.0",
167 | "babel-types": "6.26.0",
168 | "esutils": "2.0.2"
169 | }
170 | },
171 | "babel-helper-call-delegate": {
172 | "version": "6.24.1",
173 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
174 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
175 | "dev": true,
176 | "requires": {
177 | "babel-helper-hoist-variables": "6.24.1",
178 | "babel-runtime": "6.26.0",
179 | "babel-traverse": "6.26.0",
180 | "babel-types": "6.26.0"
181 | }
182 | },
183 | "babel-helper-define-map": {
184 | "version": "6.26.0",
185 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
186 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
187 | "dev": true,
188 | "requires": {
189 | "babel-helper-function-name": "6.24.1",
190 | "babel-runtime": "6.26.0",
191 | "babel-types": "6.26.0",
192 | "lodash": "4.17.10"
193 | }
194 | },
195 | "babel-helper-explode-assignable-expression": {
196 | "version": "6.24.1",
197 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
198 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
199 | "dev": true,
200 | "requires": {
201 | "babel-runtime": "6.26.0",
202 | "babel-traverse": "6.26.0",
203 | "babel-types": "6.26.0"
204 | }
205 | },
206 | "babel-helper-explode-class": {
207 | "version": "6.24.1",
208 | "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
209 | "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
210 | "dev": true,
211 | "requires": {
212 | "babel-helper-bindify-decorators": "6.24.1",
213 | "babel-runtime": "6.26.0",
214 | "babel-traverse": "6.26.0",
215 | "babel-types": "6.26.0"
216 | }
217 | },
218 | "babel-helper-function-name": {
219 | "version": "6.24.1",
220 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
221 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
222 | "dev": true,
223 | "requires": {
224 | "babel-helper-get-function-arity": "6.24.1",
225 | "babel-runtime": "6.26.0",
226 | "babel-template": "6.26.0",
227 | "babel-traverse": "6.26.0",
228 | "babel-types": "6.26.0"
229 | }
230 | },
231 | "babel-helper-get-function-arity": {
232 | "version": "6.24.1",
233 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
234 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
235 | "dev": true,
236 | "requires": {
237 | "babel-runtime": "6.26.0",
238 | "babel-types": "6.26.0"
239 | }
240 | },
241 | "babel-helper-hoist-variables": {
242 | "version": "6.24.1",
243 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
244 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
245 | "dev": true,
246 | "requires": {
247 | "babel-runtime": "6.26.0",
248 | "babel-types": "6.26.0"
249 | }
250 | },
251 | "babel-helper-optimise-call-expression": {
252 | "version": "6.24.1",
253 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
254 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
255 | "dev": true,
256 | "requires": {
257 | "babel-runtime": "6.26.0",
258 | "babel-types": "6.26.0"
259 | }
260 | },
261 | "babel-helper-regex": {
262 | "version": "6.26.0",
263 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
264 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
265 | "dev": true,
266 | "requires": {
267 | "babel-runtime": "6.26.0",
268 | "babel-types": "6.26.0",
269 | "lodash": "4.17.10"
270 | }
271 | },
272 | "babel-helper-remap-async-to-generator": {
273 | "version": "6.24.1",
274 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
275 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
276 | "dev": true,
277 | "requires": {
278 | "babel-helper-function-name": "6.24.1",
279 | "babel-runtime": "6.26.0",
280 | "babel-template": "6.26.0",
281 | "babel-traverse": "6.26.0",
282 | "babel-types": "6.26.0"
283 | }
284 | },
285 | "babel-helper-replace-supers": {
286 | "version": "6.24.1",
287 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
288 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
289 | "dev": true,
290 | "requires": {
291 | "babel-helper-optimise-call-expression": "6.24.1",
292 | "babel-messages": "6.23.0",
293 | "babel-runtime": "6.26.0",
294 | "babel-template": "6.26.0",
295 | "babel-traverse": "6.26.0",
296 | "babel-types": "6.26.0"
297 | }
298 | },
299 | "babel-helpers": {
300 | "version": "6.24.1",
301 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
302 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
303 | "dev": true,
304 | "requires": {
305 | "babel-runtime": "6.26.0",
306 | "babel-template": "6.26.0"
307 | }
308 | },
309 | "babel-messages": {
310 | "version": "6.23.0",
311 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
312 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
313 | "dev": true,
314 | "requires": {
315 | "babel-runtime": "6.26.0"
316 | }
317 | },
318 | "babel-plugin-check-es2015-constants": {
319 | "version": "6.22.0",
320 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
321 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
322 | "dev": true,
323 | "requires": {
324 | "babel-runtime": "6.26.0"
325 | }
326 | },
327 | "babel-plugin-syntax-async-functions": {
328 | "version": "6.13.0",
329 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
330 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
331 | "dev": true
332 | },
333 | "babel-plugin-syntax-async-generators": {
334 | "version": "6.13.0",
335 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
336 | "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
337 | "dev": true
338 | },
339 | "babel-plugin-syntax-class-constructor-call": {
340 | "version": "6.18.0",
341 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz",
342 | "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=",
343 | "dev": true
344 | },
345 | "babel-plugin-syntax-class-properties": {
346 | "version": "6.13.0",
347 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
348 | "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
349 | "dev": true
350 | },
351 | "babel-plugin-syntax-decorators": {
352 | "version": "6.13.0",
353 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
354 | "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
355 | "dev": true
356 | },
357 | "babel-plugin-syntax-do-expressions": {
358 | "version": "6.13.0",
359 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz",
360 | "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=",
361 | "dev": true
362 | },
363 | "babel-plugin-syntax-dynamic-import": {
364 | "version": "6.18.0",
365 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
366 | "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
367 | "dev": true
368 | },
369 | "babel-plugin-syntax-exponentiation-operator": {
370 | "version": "6.13.0",
371 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
372 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
373 | "dev": true
374 | },
375 | "babel-plugin-syntax-export-extensions": {
376 | "version": "6.13.0",
377 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz",
378 | "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=",
379 | "dev": true
380 | },
381 | "babel-plugin-syntax-flow": {
382 | "version": "6.18.0",
383 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
384 | "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
385 | "dev": true
386 | },
387 | "babel-plugin-syntax-function-bind": {
388 | "version": "6.13.0",
389 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz",
390 | "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=",
391 | "dev": true
392 | },
393 | "babel-plugin-syntax-jsx": {
394 | "version": "6.18.0",
395 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
396 | "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
397 | "dev": true
398 | },
399 | "babel-plugin-syntax-object-rest-spread": {
400 | "version": "6.13.0",
401 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
402 | "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
403 | "dev": true
404 | },
405 | "babel-plugin-syntax-trailing-function-commas": {
406 | "version": "6.22.0",
407 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
408 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
409 | "dev": true
410 | },
411 | "babel-plugin-transform-async-generator-functions": {
412 | "version": "6.24.1",
413 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
414 | "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
415 | "dev": true,
416 | "requires": {
417 | "babel-helper-remap-async-to-generator": "6.24.1",
418 | "babel-plugin-syntax-async-generators": "6.13.0",
419 | "babel-runtime": "6.26.0"
420 | }
421 | },
422 | "babel-plugin-transform-async-to-generator": {
423 | "version": "6.24.1",
424 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
425 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
426 | "dev": true,
427 | "requires": {
428 | "babel-helper-remap-async-to-generator": "6.24.1",
429 | "babel-plugin-syntax-async-functions": "6.13.0",
430 | "babel-runtime": "6.26.0"
431 | }
432 | },
433 | "babel-plugin-transform-class-constructor-call": {
434 | "version": "6.24.1",
435 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz",
436 | "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=",
437 | "dev": true,
438 | "requires": {
439 | "babel-plugin-syntax-class-constructor-call": "6.18.0",
440 | "babel-runtime": "6.26.0",
441 | "babel-template": "6.26.0"
442 | }
443 | },
444 | "babel-plugin-transform-class-properties": {
445 | "version": "6.24.1",
446 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
447 | "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
448 | "dev": true,
449 | "requires": {
450 | "babel-helper-function-name": "6.24.1",
451 | "babel-plugin-syntax-class-properties": "6.13.0",
452 | "babel-runtime": "6.26.0",
453 | "babel-template": "6.26.0"
454 | }
455 | },
456 | "babel-plugin-transform-decorators": {
457 | "version": "6.24.1",
458 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
459 | "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
460 | "dev": true,
461 | "requires": {
462 | "babel-helper-explode-class": "6.24.1",
463 | "babel-plugin-syntax-decorators": "6.13.0",
464 | "babel-runtime": "6.26.0",
465 | "babel-template": "6.26.0",
466 | "babel-types": "6.26.0"
467 | }
468 | },
469 | "babel-plugin-transform-do-expressions": {
470 | "version": "6.22.0",
471 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz",
472 | "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=",
473 | "dev": true,
474 | "requires": {
475 | "babel-plugin-syntax-do-expressions": "6.13.0",
476 | "babel-runtime": "6.26.0"
477 | }
478 | },
479 | "babel-plugin-transform-es2015-arrow-functions": {
480 | "version": "6.22.0",
481 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
482 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
483 | "dev": true,
484 | "requires": {
485 | "babel-runtime": "6.26.0"
486 | }
487 | },
488 | "babel-plugin-transform-es2015-block-scoped-functions": {
489 | "version": "6.22.0",
490 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
491 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
492 | "dev": true,
493 | "requires": {
494 | "babel-runtime": "6.26.0"
495 | }
496 | },
497 | "babel-plugin-transform-es2015-block-scoping": {
498 | "version": "6.26.0",
499 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
500 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
501 | "dev": true,
502 | "requires": {
503 | "babel-runtime": "6.26.0",
504 | "babel-template": "6.26.0",
505 | "babel-traverse": "6.26.0",
506 | "babel-types": "6.26.0",
507 | "lodash": "4.17.10"
508 | }
509 | },
510 | "babel-plugin-transform-es2015-classes": {
511 | "version": "6.24.1",
512 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
513 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
514 | "dev": true,
515 | "requires": {
516 | "babel-helper-define-map": "6.26.0",
517 | "babel-helper-function-name": "6.24.1",
518 | "babel-helper-optimise-call-expression": "6.24.1",
519 | "babel-helper-replace-supers": "6.24.1",
520 | "babel-messages": "6.23.0",
521 | "babel-runtime": "6.26.0",
522 | "babel-template": "6.26.0",
523 | "babel-traverse": "6.26.0",
524 | "babel-types": "6.26.0"
525 | }
526 | },
527 | "babel-plugin-transform-es2015-computed-properties": {
528 | "version": "6.24.1",
529 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
530 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
531 | "dev": true,
532 | "requires": {
533 | "babel-runtime": "6.26.0",
534 | "babel-template": "6.26.0"
535 | }
536 | },
537 | "babel-plugin-transform-es2015-destructuring": {
538 | "version": "6.23.0",
539 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
540 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
541 | "dev": true,
542 | "requires": {
543 | "babel-runtime": "6.26.0"
544 | }
545 | },
546 | "babel-plugin-transform-es2015-duplicate-keys": {
547 | "version": "6.24.1",
548 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
549 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
550 | "dev": true,
551 | "requires": {
552 | "babel-runtime": "6.26.0",
553 | "babel-types": "6.26.0"
554 | }
555 | },
556 | "babel-plugin-transform-es2015-for-of": {
557 | "version": "6.23.0",
558 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
559 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
560 | "dev": true,
561 | "requires": {
562 | "babel-runtime": "6.26.0"
563 | }
564 | },
565 | "babel-plugin-transform-es2015-function-name": {
566 | "version": "6.24.1",
567 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
568 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
569 | "dev": true,
570 | "requires": {
571 | "babel-helper-function-name": "6.24.1",
572 | "babel-runtime": "6.26.0",
573 | "babel-types": "6.26.0"
574 | }
575 | },
576 | "babel-plugin-transform-es2015-literals": {
577 | "version": "6.22.0",
578 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
579 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
580 | "dev": true,
581 | "requires": {
582 | "babel-runtime": "6.26.0"
583 | }
584 | },
585 | "babel-plugin-transform-es2015-modules-amd": {
586 | "version": "6.24.1",
587 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
588 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
589 | "dev": true,
590 | "requires": {
591 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
592 | "babel-runtime": "6.26.0",
593 | "babel-template": "6.26.0"
594 | }
595 | },
596 | "babel-plugin-transform-es2015-modules-commonjs": {
597 | "version": "6.26.2",
598 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
599 | "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
600 | "dev": true,
601 | "requires": {
602 | "babel-plugin-transform-strict-mode": "6.24.1",
603 | "babel-runtime": "6.26.0",
604 | "babel-template": "6.26.0",
605 | "babel-types": "6.26.0"
606 | }
607 | },
608 | "babel-plugin-transform-es2015-modules-systemjs": {
609 | "version": "6.24.1",
610 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
611 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
612 | "dev": true,
613 | "requires": {
614 | "babel-helper-hoist-variables": "6.24.1",
615 | "babel-runtime": "6.26.0",
616 | "babel-template": "6.26.0"
617 | }
618 | },
619 | "babel-plugin-transform-es2015-modules-umd": {
620 | "version": "6.24.1",
621 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
622 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
623 | "dev": true,
624 | "requires": {
625 | "babel-plugin-transform-es2015-modules-amd": "6.24.1",
626 | "babel-runtime": "6.26.0",
627 | "babel-template": "6.26.0"
628 | }
629 | },
630 | "babel-plugin-transform-es2015-object-super": {
631 | "version": "6.24.1",
632 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
633 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
634 | "dev": true,
635 | "requires": {
636 | "babel-helper-replace-supers": "6.24.1",
637 | "babel-runtime": "6.26.0"
638 | }
639 | },
640 | "babel-plugin-transform-es2015-parameters": {
641 | "version": "6.24.1",
642 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
643 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
644 | "dev": true,
645 | "requires": {
646 | "babel-helper-call-delegate": "6.24.1",
647 | "babel-helper-get-function-arity": "6.24.1",
648 | "babel-runtime": "6.26.0",
649 | "babel-template": "6.26.0",
650 | "babel-traverse": "6.26.0",
651 | "babel-types": "6.26.0"
652 | }
653 | },
654 | "babel-plugin-transform-es2015-shorthand-properties": {
655 | "version": "6.24.1",
656 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
657 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
658 | "dev": true,
659 | "requires": {
660 | "babel-runtime": "6.26.0",
661 | "babel-types": "6.26.0"
662 | }
663 | },
664 | "babel-plugin-transform-es2015-spread": {
665 | "version": "6.22.0",
666 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
667 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
668 | "dev": true,
669 | "requires": {
670 | "babel-runtime": "6.26.0"
671 | }
672 | },
673 | "babel-plugin-transform-es2015-sticky-regex": {
674 | "version": "6.24.1",
675 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
676 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
677 | "dev": true,
678 | "requires": {
679 | "babel-helper-regex": "6.26.0",
680 | "babel-runtime": "6.26.0",
681 | "babel-types": "6.26.0"
682 | }
683 | },
684 | "babel-plugin-transform-es2015-template-literals": {
685 | "version": "6.22.0",
686 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
687 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
688 | "dev": true,
689 | "requires": {
690 | "babel-runtime": "6.26.0"
691 | }
692 | },
693 | "babel-plugin-transform-es2015-typeof-symbol": {
694 | "version": "6.23.0",
695 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
696 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
697 | "dev": true,
698 | "requires": {
699 | "babel-runtime": "6.26.0"
700 | }
701 | },
702 | "babel-plugin-transform-es2015-unicode-regex": {
703 | "version": "6.24.1",
704 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
705 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
706 | "dev": true,
707 | "requires": {
708 | "babel-helper-regex": "6.26.0",
709 | "babel-runtime": "6.26.0",
710 | "regexpu-core": "2.0.0"
711 | }
712 | },
713 | "babel-plugin-transform-exponentiation-operator": {
714 | "version": "6.24.1",
715 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
716 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
717 | "dev": true,
718 | "requires": {
719 | "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
720 | "babel-plugin-syntax-exponentiation-operator": "6.13.0",
721 | "babel-runtime": "6.26.0"
722 | }
723 | },
724 | "babel-plugin-transform-export-extensions": {
725 | "version": "6.22.0",
726 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz",
727 | "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=",
728 | "dev": true,
729 | "requires": {
730 | "babel-plugin-syntax-export-extensions": "6.13.0",
731 | "babel-runtime": "6.26.0"
732 | }
733 | },
734 | "babel-plugin-transform-flow-strip-types": {
735 | "version": "6.22.0",
736 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
737 | "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
738 | "dev": true,
739 | "requires": {
740 | "babel-plugin-syntax-flow": "6.18.0",
741 | "babel-runtime": "6.26.0"
742 | }
743 | },
744 | "babel-plugin-transform-function-bind": {
745 | "version": "6.22.0",
746 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz",
747 | "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=",
748 | "dev": true,
749 | "requires": {
750 | "babel-plugin-syntax-function-bind": "6.13.0",
751 | "babel-runtime": "6.26.0"
752 | }
753 | },
754 | "babel-plugin-transform-object-rest-spread": {
755 | "version": "6.26.0",
756 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
757 | "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
758 | "dev": true,
759 | "requires": {
760 | "babel-plugin-syntax-object-rest-spread": "6.13.0",
761 | "babel-runtime": "6.26.0"
762 | }
763 | },
764 | "babel-plugin-transform-react-display-name": {
765 | "version": "6.25.0",
766 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
767 | "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
768 | "dev": true,
769 | "requires": {
770 | "babel-runtime": "6.26.0"
771 | }
772 | },
773 | "babel-plugin-transform-react-jsx": {
774 | "version": "6.24.1",
775 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
776 | "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
777 | "dev": true,
778 | "requires": {
779 | "babel-helper-builder-react-jsx": "6.26.0",
780 | "babel-plugin-syntax-jsx": "6.18.0",
781 | "babel-runtime": "6.26.0"
782 | }
783 | },
784 | "babel-plugin-transform-react-jsx-self": {
785 | "version": "6.22.0",
786 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
787 | "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
788 | "dev": true,
789 | "requires": {
790 | "babel-plugin-syntax-jsx": "6.18.0",
791 | "babel-runtime": "6.26.0"
792 | }
793 | },
794 | "babel-plugin-transform-react-jsx-source": {
795 | "version": "6.22.0",
796 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
797 | "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
798 | "dev": true,
799 | "requires": {
800 | "babel-plugin-syntax-jsx": "6.18.0",
801 | "babel-runtime": "6.26.0"
802 | }
803 | },
804 | "babel-plugin-transform-regenerator": {
805 | "version": "6.26.0",
806 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
807 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
808 | "dev": true,
809 | "requires": {
810 | "regenerator-transform": "0.10.1"
811 | }
812 | },
813 | "babel-plugin-transform-strict-mode": {
814 | "version": "6.24.1",
815 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
816 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
817 | "dev": true,
818 | "requires": {
819 | "babel-runtime": "6.26.0",
820 | "babel-types": "6.26.0"
821 | }
822 | },
823 | "babel-polyfill": {
824 | "version": "6.26.0",
825 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
826 | "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
827 | "dev": true,
828 | "requires": {
829 | "babel-runtime": "6.26.0",
830 | "core-js": "2.5.5",
831 | "regenerator-runtime": "0.10.5"
832 | },
833 | "dependencies": {
834 | "regenerator-runtime": {
835 | "version": "0.10.5",
836 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
837 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
838 | "dev": true
839 | }
840 | }
841 | },
842 | "babel-preset-es2015": {
843 | "version": "6.24.1",
844 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
845 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
846 | "dev": true,
847 | "requires": {
848 | "babel-plugin-check-es2015-constants": "6.22.0",
849 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
850 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
851 | "babel-plugin-transform-es2015-block-scoping": "6.26.0",
852 | "babel-plugin-transform-es2015-classes": "6.24.1",
853 | "babel-plugin-transform-es2015-computed-properties": "6.24.1",
854 | "babel-plugin-transform-es2015-destructuring": "6.23.0",
855 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
856 | "babel-plugin-transform-es2015-for-of": "6.23.0",
857 | "babel-plugin-transform-es2015-function-name": "6.24.1",
858 | "babel-plugin-transform-es2015-literals": "6.22.0",
859 | "babel-plugin-transform-es2015-modules-amd": "6.24.1",
860 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
861 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
862 | "babel-plugin-transform-es2015-modules-umd": "6.24.1",
863 | "babel-plugin-transform-es2015-object-super": "6.24.1",
864 | "babel-plugin-transform-es2015-parameters": "6.24.1",
865 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
866 | "babel-plugin-transform-es2015-spread": "6.22.0",
867 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
868 | "babel-plugin-transform-es2015-template-literals": "6.22.0",
869 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
870 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
871 | "babel-plugin-transform-regenerator": "6.26.0"
872 | }
873 | },
874 | "babel-preset-flow": {
875 | "version": "6.23.0",
876 | "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
877 | "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
878 | "dev": true,
879 | "requires": {
880 | "babel-plugin-transform-flow-strip-types": "6.22.0"
881 | }
882 | },
883 | "babel-preset-react": {
884 | "version": "6.24.1",
885 | "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
886 | "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
887 | "dev": true,
888 | "requires": {
889 | "babel-plugin-syntax-jsx": "6.18.0",
890 | "babel-plugin-transform-react-display-name": "6.25.0",
891 | "babel-plugin-transform-react-jsx": "6.24.1",
892 | "babel-plugin-transform-react-jsx-self": "6.22.0",
893 | "babel-plugin-transform-react-jsx-source": "6.22.0",
894 | "babel-preset-flow": "6.23.0"
895 | }
896 | },
897 | "babel-preset-stage-0": {
898 | "version": "6.24.1",
899 | "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz",
900 | "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=",
901 | "dev": true,
902 | "requires": {
903 | "babel-plugin-transform-do-expressions": "6.22.0",
904 | "babel-plugin-transform-function-bind": "6.22.0",
905 | "babel-preset-stage-1": "6.24.1"
906 | }
907 | },
908 | "babel-preset-stage-1": {
909 | "version": "6.24.1",
910 | "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz",
911 | "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=",
912 | "dev": true,
913 | "requires": {
914 | "babel-plugin-transform-class-constructor-call": "6.24.1",
915 | "babel-plugin-transform-export-extensions": "6.22.0",
916 | "babel-preset-stage-2": "6.24.1"
917 | }
918 | },
919 | "babel-preset-stage-2": {
920 | "version": "6.24.1",
921 | "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
922 | "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
923 | "dev": true,
924 | "requires": {
925 | "babel-plugin-syntax-dynamic-import": "6.18.0",
926 | "babel-plugin-transform-class-properties": "6.24.1",
927 | "babel-plugin-transform-decorators": "6.24.1",
928 | "babel-preset-stage-3": "6.24.1"
929 | }
930 | },
931 | "babel-preset-stage-3": {
932 | "version": "6.24.1",
933 | "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
934 | "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
935 | "dev": true,
936 | "requires": {
937 | "babel-plugin-syntax-trailing-function-commas": "6.22.0",
938 | "babel-plugin-transform-async-generator-functions": "6.24.1",
939 | "babel-plugin-transform-async-to-generator": "6.24.1",
940 | "babel-plugin-transform-exponentiation-operator": "6.24.1",
941 | "babel-plugin-transform-object-rest-spread": "6.26.0"
942 | }
943 | },
944 | "babel-register": {
945 | "version": "6.26.0",
946 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
947 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
948 | "dev": true,
949 | "requires": {
950 | "babel-core": "6.26.3",
951 | "babel-runtime": "6.26.0",
952 | "core-js": "2.5.5",
953 | "home-or-tmp": "2.0.0",
954 | "lodash": "4.17.10",
955 | "mkdirp": "0.5.1",
956 | "source-map-support": "0.4.18"
957 | }
958 | },
959 | "babel-runtime": {
960 | "version": "6.26.0",
961 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
962 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
963 | "dev": true,
964 | "requires": {
965 | "core-js": "2.5.5",
966 | "regenerator-runtime": "0.11.1"
967 | }
968 | },
969 | "babel-template": {
970 | "version": "6.26.0",
971 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
972 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
973 | "dev": true,
974 | "requires": {
975 | "babel-runtime": "6.26.0",
976 | "babel-traverse": "6.26.0",
977 | "babel-types": "6.26.0",
978 | "babylon": "6.18.0",
979 | "lodash": "4.17.10"
980 | }
981 | },
982 | "babel-traverse": {
983 | "version": "6.26.0",
984 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
985 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
986 | "dev": true,
987 | "requires": {
988 | "babel-code-frame": "6.26.0",
989 | "babel-messages": "6.23.0",
990 | "babel-runtime": "6.26.0",
991 | "babel-types": "6.26.0",
992 | "babylon": "6.18.0",
993 | "debug": "2.6.9",
994 | "globals": "9.18.0",
995 | "invariant": "2.2.4",
996 | "lodash": "4.17.10"
997 | }
998 | },
999 | "babel-types": {
1000 | "version": "6.26.0",
1001 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
1002 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
1003 | "dev": true,
1004 | "requires": {
1005 | "babel-runtime": "6.26.0",
1006 | "esutils": "2.0.2",
1007 | "lodash": "4.17.10",
1008 | "to-fast-properties": "1.0.3"
1009 | }
1010 | },
1011 | "babylon": {
1012 | "version": "6.18.0",
1013 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
1014 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
1015 | "dev": true
1016 | },
1017 | "balanced-match": {
1018 | "version": "1.0.0",
1019 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1020 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1021 | "dev": true
1022 | },
1023 | "binary-extensions": {
1024 | "version": "1.11.0",
1025 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
1026 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
1027 | "dev": true,
1028 | "optional": true
1029 | },
1030 | "brace-expansion": {
1031 | "version": "1.1.11",
1032 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1033 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1034 | "dev": true,
1035 | "requires": {
1036 | "balanced-match": "1.0.0",
1037 | "concat-map": "0.0.1"
1038 | }
1039 | },
1040 | "braces": {
1041 | "version": "1.8.5",
1042 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
1043 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
1044 | "dev": true,
1045 | "optional": true,
1046 | "requires": {
1047 | "expand-range": "1.8.2",
1048 | "preserve": "0.2.0",
1049 | "repeat-element": "1.1.2"
1050 | }
1051 | },
1052 | "chalk": {
1053 | "version": "1.1.3",
1054 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1055 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1056 | "dev": true,
1057 | "requires": {
1058 | "ansi-styles": "2.2.1",
1059 | "escape-string-regexp": "1.0.5",
1060 | "has-ansi": "2.0.0",
1061 | "strip-ansi": "3.0.1",
1062 | "supports-color": "2.0.0"
1063 | }
1064 | },
1065 | "chokidar": {
1066 | "version": "1.7.0",
1067 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
1068 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
1069 | "dev": true,
1070 | "optional": true,
1071 | "requires": {
1072 | "anymatch": "1.3.2",
1073 | "async-each": "1.0.1",
1074 | "fsevents": "1.2.3",
1075 | "glob-parent": "2.0.0",
1076 | "inherits": "2.0.3",
1077 | "is-binary-path": "1.0.1",
1078 | "is-glob": "2.0.1",
1079 | "path-is-absolute": "1.0.1",
1080 | "readdirp": "2.1.0"
1081 | }
1082 | },
1083 | "commander": {
1084 | "version": "2.15.1",
1085 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
1086 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
1087 | "dev": true
1088 | },
1089 | "concat-map": {
1090 | "version": "0.0.1",
1091 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1092 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1093 | "dev": true
1094 | },
1095 | "convert-source-map": {
1096 | "version": "1.5.1",
1097 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
1098 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
1099 | "dev": true
1100 | },
1101 | "core-js": {
1102 | "version": "2.5.5",
1103 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz",
1104 | "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=",
1105 | "dev": true
1106 | },
1107 | "core-util-is": {
1108 | "version": "1.0.2",
1109 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1110 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
1111 | "dev": true,
1112 | "optional": true
1113 | },
1114 | "debug": {
1115 | "version": "2.6.9",
1116 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1117 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1118 | "dev": true,
1119 | "requires": {
1120 | "ms": "2.0.0"
1121 | }
1122 | },
1123 | "detect-indent": {
1124 | "version": "4.0.0",
1125 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
1126 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
1127 | "dev": true,
1128 | "requires": {
1129 | "repeating": "2.0.1"
1130 | }
1131 | },
1132 | "escape-string-regexp": {
1133 | "version": "1.0.5",
1134 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1135 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1136 | "dev": true
1137 | },
1138 | "esutils": {
1139 | "version": "2.0.2",
1140 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
1141 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
1142 | "dev": true
1143 | },
1144 | "expand-brackets": {
1145 | "version": "0.1.5",
1146 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
1147 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
1148 | "dev": true,
1149 | "optional": true,
1150 | "requires": {
1151 | "is-posix-bracket": "0.1.1"
1152 | }
1153 | },
1154 | "expand-range": {
1155 | "version": "1.8.2",
1156 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
1157 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
1158 | "dev": true,
1159 | "optional": true,
1160 | "requires": {
1161 | "fill-range": "2.2.3"
1162 | }
1163 | },
1164 | "extglob": {
1165 | "version": "0.3.2",
1166 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
1167 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
1168 | "dev": true,
1169 | "optional": true,
1170 | "requires": {
1171 | "is-extglob": "1.0.0"
1172 | }
1173 | },
1174 | "filename-regex": {
1175 | "version": "2.0.1",
1176 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
1177 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
1178 | "dev": true,
1179 | "optional": true
1180 | },
1181 | "fill-range": {
1182 | "version": "2.2.3",
1183 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
1184 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
1185 | "dev": true,
1186 | "optional": true,
1187 | "requires": {
1188 | "is-number": "2.1.0",
1189 | "isobject": "2.1.0",
1190 | "randomatic": "1.1.7",
1191 | "repeat-element": "1.1.2",
1192 | "repeat-string": "1.6.1"
1193 | }
1194 | },
1195 | "for-in": {
1196 | "version": "1.0.2",
1197 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1198 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1199 | "dev": true,
1200 | "optional": true
1201 | },
1202 | "for-own": {
1203 | "version": "0.1.5",
1204 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
1205 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
1206 | "dev": true,
1207 | "optional": true,
1208 | "requires": {
1209 | "for-in": "1.0.2"
1210 | }
1211 | },
1212 | "fs-readdir-recursive": {
1213 | "version": "1.1.0",
1214 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
1215 | "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
1216 | "dev": true
1217 | },
1218 | "fs.realpath": {
1219 | "version": "1.0.0",
1220 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1221 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1222 | "dev": true
1223 | },
1224 | "fsevents": {
1225 | "version": "1.2.3",
1226 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz",
1227 | "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==",
1228 | "dev": true,
1229 | "optional": true,
1230 | "requires": {
1231 | "nan": "2.10.0",
1232 | "node-pre-gyp": "0.9.1"
1233 | },
1234 | "dependencies": {
1235 | "abbrev": {
1236 | "version": "1.1.1",
1237 | "bundled": true,
1238 | "dev": true,
1239 | "optional": true
1240 | },
1241 | "ansi-regex": {
1242 | "version": "2.1.1",
1243 | "bundled": true,
1244 | "dev": true
1245 | },
1246 | "aproba": {
1247 | "version": "1.2.0",
1248 | "bundled": true,
1249 | "dev": true,
1250 | "optional": true
1251 | },
1252 | "are-we-there-yet": {
1253 | "version": "1.1.4",
1254 | "bundled": true,
1255 | "dev": true,
1256 | "optional": true,
1257 | "requires": {
1258 | "delegates": "1.0.0",
1259 | "readable-stream": "2.3.6"
1260 | }
1261 | },
1262 | "balanced-match": {
1263 | "version": "1.0.0",
1264 | "bundled": true,
1265 | "dev": true
1266 | },
1267 | "brace-expansion": {
1268 | "version": "1.1.11",
1269 | "bundled": true,
1270 | "dev": true,
1271 | "requires": {
1272 | "balanced-match": "1.0.0",
1273 | "concat-map": "0.0.1"
1274 | }
1275 | },
1276 | "chownr": {
1277 | "version": "1.0.1",
1278 | "bundled": true,
1279 | "dev": true,
1280 | "optional": true
1281 | },
1282 | "code-point-at": {
1283 | "version": "1.1.0",
1284 | "bundled": true,
1285 | "dev": true
1286 | },
1287 | "concat-map": {
1288 | "version": "0.0.1",
1289 | "bundled": true,
1290 | "dev": true
1291 | },
1292 | "console-control-strings": {
1293 | "version": "1.1.0",
1294 | "bundled": true,
1295 | "dev": true
1296 | },
1297 | "core-util-is": {
1298 | "version": "1.0.2",
1299 | "bundled": true,
1300 | "dev": true,
1301 | "optional": true
1302 | },
1303 | "debug": {
1304 | "version": "2.6.9",
1305 | "bundled": true,
1306 | "dev": true,
1307 | "optional": true,
1308 | "requires": {
1309 | "ms": "2.0.0"
1310 | }
1311 | },
1312 | "deep-extend": {
1313 | "version": "0.4.2",
1314 | "bundled": true,
1315 | "dev": true,
1316 | "optional": true
1317 | },
1318 | "delegates": {
1319 | "version": "1.0.0",
1320 | "bundled": true,
1321 | "dev": true,
1322 | "optional": true
1323 | },
1324 | "detect-libc": {
1325 | "version": "1.0.3",
1326 | "bundled": true,
1327 | "dev": true,
1328 | "optional": true
1329 | },
1330 | "fs-minipass": {
1331 | "version": "1.2.5",
1332 | "bundled": true,
1333 | "dev": true,
1334 | "optional": true,
1335 | "requires": {
1336 | "minipass": "2.2.4"
1337 | }
1338 | },
1339 | "fs.realpath": {
1340 | "version": "1.0.0",
1341 | "bundled": true,
1342 | "dev": true,
1343 | "optional": true
1344 | },
1345 | "gauge": {
1346 | "version": "2.7.4",
1347 | "bundled": true,
1348 | "dev": true,
1349 | "optional": true,
1350 | "requires": {
1351 | "aproba": "1.2.0",
1352 | "console-control-strings": "1.1.0",
1353 | "has-unicode": "2.0.1",
1354 | "object-assign": "4.1.1",
1355 | "signal-exit": "3.0.2",
1356 | "string-width": "1.0.2",
1357 | "strip-ansi": "3.0.1",
1358 | "wide-align": "1.1.2"
1359 | }
1360 | },
1361 | "glob": {
1362 | "version": "7.1.2",
1363 | "bundled": true,
1364 | "dev": true,
1365 | "optional": true,
1366 | "requires": {
1367 | "fs.realpath": "1.0.0",
1368 | "inflight": "1.0.6",
1369 | "inherits": "2.0.3",
1370 | "minimatch": "3.0.4",
1371 | "once": "1.4.0",
1372 | "path-is-absolute": "1.0.1"
1373 | }
1374 | },
1375 | "has-unicode": {
1376 | "version": "2.0.1",
1377 | "bundled": true,
1378 | "dev": true,
1379 | "optional": true
1380 | },
1381 | "iconv-lite": {
1382 | "version": "0.4.21",
1383 | "bundled": true,
1384 | "dev": true,
1385 | "optional": true,
1386 | "requires": {
1387 | "safer-buffer": "2.1.2"
1388 | }
1389 | },
1390 | "ignore-walk": {
1391 | "version": "3.0.1",
1392 | "bundled": true,
1393 | "dev": true,
1394 | "optional": true,
1395 | "requires": {
1396 | "minimatch": "3.0.4"
1397 | }
1398 | },
1399 | "inflight": {
1400 | "version": "1.0.6",
1401 | "bundled": true,
1402 | "dev": true,
1403 | "optional": true,
1404 | "requires": {
1405 | "once": "1.4.0",
1406 | "wrappy": "1.0.2"
1407 | }
1408 | },
1409 | "inherits": {
1410 | "version": "2.0.3",
1411 | "bundled": true,
1412 | "dev": true
1413 | },
1414 | "ini": {
1415 | "version": "1.3.5",
1416 | "bundled": true,
1417 | "dev": true,
1418 | "optional": true
1419 | },
1420 | "is-fullwidth-code-point": {
1421 | "version": "1.0.0",
1422 | "bundled": true,
1423 | "dev": true,
1424 | "requires": {
1425 | "number-is-nan": "1.0.1"
1426 | }
1427 | },
1428 | "isarray": {
1429 | "version": "1.0.0",
1430 | "bundled": true,
1431 | "dev": true,
1432 | "optional": true
1433 | },
1434 | "minimatch": {
1435 | "version": "3.0.4",
1436 | "bundled": true,
1437 | "dev": true,
1438 | "requires": {
1439 | "brace-expansion": "1.1.11"
1440 | }
1441 | },
1442 | "minimist": {
1443 | "version": "0.0.8",
1444 | "bundled": true,
1445 | "dev": true
1446 | },
1447 | "minipass": {
1448 | "version": "2.2.4",
1449 | "bundled": true,
1450 | "dev": true,
1451 | "requires": {
1452 | "safe-buffer": "5.1.1",
1453 | "yallist": "3.0.2"
1454 | }
1455 | },
1456 | "minizlib": {
1457 | "version": "1.1.0",
1458 | "bundled": true,
1459 | "dev": true,
1460 | "optional": true,
1461 | "requires": {
1462 | "minipass": "2.2.4"
1463 | }
1464 | },
1465 | "mkdirp": {
1466 | "version": "0.5.1",
1467 | "bundled": true,
1468 | "dev": true,
1469 | "requires": {
1470 | "minimist": "0.0.8"
1471 | }
1472 | },
1473 | "ms": {
1474 | "version": "2.0.0",
1475 | "bundled": true,
1476 | "dev": true,
1477 | "optional": true
1478 | },
1479 | "needle": {
1480 | "version": "2.2.0",
1481 | "bundled": true,
1482 | "dev": true,
1483 | "optional": true,
1484 | "requires": {
1485 | "debug": "2.6.9",
1486 | "iconv-lite": "0.4.21",
1487 | "sax": "1.2.4"
1488 | }
1489 | },
1490 | "node-pre-gyp": {
1491 | "version": "0.9.1",
1492 | "bundled": true,
1493 | "dev": true,
1494 | "optional": true,
1495 | "requires": {
1496 | "detect-libc": "1.0.3",
1497 | "mkdirp": "0.5.1",
1498 | "needle": "2.2.0",
1499 | "nopt": "4.0.1",
1500 | "npm-packlist": "1.1.10",
1501 | "npmlog": "4.1.2",
1502 | "rc": "1.2.6",
1503 | "rimraf": "2.6.2",
1504 | "semver": "5.5.0",
1505 | "tar": "4.4.1"
1506 | }
1507 | },
1508 | "nopt": {
1509 | "version": "4.0.1",
1510 | "bundled": true,
1511 | "dev": true,
1512 | "optional": true,
1513 | "requires": {
1514 | "abbrev": "1.1.1",
1515 | "osenv": "0.1.5"
1516 | }
1517 | },
1518 | "npm-bundled": {
1519 | "version": "1.0.3",
1520 | "bundled": true,
1521 | "dev": true,
1522 | "optional": true
1523 | },
1524 | "npm-packlist": {
1525 | "version": "1.1.10",
1526 | "bundled": true,
1527 | "dev": true,
1528 | "optional": true,
1529 | "requires": {
1530 | "ignore-walk": "3.0.1",
1531 | "npm-bundled": "1.0.3"
1532 | }
1533 | },
1534 | "npmlog": {
1535 | "version": "4.1.2",
1536 | "bundled": true,
1537 | "dev": true,
1538 | "optional": true,
1539 | "requires": {
1540 | "are-we-there-yet": "1.1.4",
1541 | "console-control-strings": "1.1.0",
1542 | "gauge": "2.7.4",
1543 | "set-blocking": "2.0.0"
1544 | }
1545 | },
1546 | "number-is-nan": {
1547 | "version": "1.0.1",
1548 | "bundled": true,
1549 | "dev": true
1550 | },
1551 | "object-assign": {
1552 | "version": "4.1.1",
1553 | "bundled": true,
1554 | "dev": true,
1555 | "optional": true
1556 | },
1557 | "once": {
1558 | "version": "1.4.0",
1559 | "bundled": true,
1560 | "dev": true,
1561 | "requires": {
1562 | "wrappy": "1.0.2"
1563 | }
1564 | },
1565 | "os-homedir": {
1566 | "version": "1.0.2",
1567 | "bundled": true,
1568 | "dev": true,
1569 | "optional": true
1570 | },
1571 | "os-tmpdir": {
1572 | "version": "1.0.2",
1573 | "bundled": true,
1574 | "dev": true,
1575 | "optional": true
1576 | },
1577 | "osenv": {
1578 | "version": "0.1.5",
1579 | "bundled": true,
1580 | "dev": true,
1581 | "optional": true,
1582 | "requires": {
1583 | "os-homedir": "1.0.2",
1584 | "os-tmpdir": "1.0.2"
1585 | }
1586 | },
1587 | "path-is-absolute": {
1588 | "version": "1.0.1",
1589 | "bundled": true,
1590 | "dev": true,
1591 | "optional": true
1592 | },
1593 | "process-nextick-args": {
1594 | "version": "2.0.0",
1595 | "bundled": true,
1596 | "dev": true,
1597 | "optional": true
1598 | },
1599 | "rc": {
1600 | "version": "1.2.6",
1601 | "bundled": true,
1602 | "dev": true,
1603 | "optional": true,
1604 | "requires": {
1605 | "deep-extend": "0.4.2",
1606 | "ini": "1.3.5",
1607 | "minimist": "1.2.0",
1608 | "strip-json-comments": "2.0.1"
1609 | },
1610 | "dependencies": {
1611 | "minimist": {
1612 | "version": "1.2.0",
1613 | "bundled": true,
1614 | "dev": true,
1615 | "optional": true
1616 | }
1617 | }
1618 | },
1619 | "readable-stream": {
1620 | "version": "2.3.6",
1621 | "bundled": true,
1622 | "dev": true,
1623 | "optional": true,
1624 | "requires": {
1625 | "core-util-is": "1.0.2",
1626 | "inherits": "2.0.3",
1627 | "isarray": "1.0.0",
1628 | "process-nextick-args": "2.0.0",
1629 | "safe-buffer": "5.1.1",
1630 | "string_decoder": "1.1.1",
1631 | "util-deprecate": "1.0.2"
1632 | }
1633 | },
1634 | "rimraf": {
1635 | "version": "2.6.2",
1636 | "bundled": true,
1637 | "dev": true,
1638 | "optional": true,
1639 | "requires": {
1640 | "glob": "7.1.2"
1641 | }
1642 | },
1643 | "safe-buffer": {
1644 | "version": "5.1.1",
1645 | "bundled": true,
1646 | "dev": true
1647 | },
1648 | "safer-buffer": {
1649 | "version": "2.1.2",
1650 | "bundled": true,
1651 | "dev": true,
1652 | "optional": true
1653 | },
1654 | "sax": {
1655 | "version": "1.2.4",
1656 | "bundled": true,
1657 | "dev": true,
1658 | "optional": true
1659 | },
1660 | "semver": {
1661 | "version": "5.5.0",
1662 | "bundled": true,
1663 | "dev": true,
1664 | "optional": true
1665 | },
1666 | "set-blocking": {
1667 | "version": "2.0.0",
1668 | "bundled": true,
1669 | "dev": true,
1670 | "optional": true
1671 | },
1672 | "signal-exit": {
1673 | "version": "3.0.2",
1674 | "bundled": true,
1675 | "dev": true,
1676 | "optional": true
1677 | },
1678 | "string-width": {
1679 | "version": "1.0.2",
1680 | "bundled": true,
1681 | "dev": true,
1682 | "requires": {
1683 | "code-point-at": "1.1.0",
1684 | "is-fullwidth-code-point": "1.0.0",
1685 | "strip-ansi": "3.0.1"
1686 | }
1687 | },
1688 | "string_decoder": {
1689 | "version": "1.1.1",
1690 | "bundled": true,
1691 | "dev": true,
1692 | "optional": true,
1693 | "requires": {
1694 | "safe-buffer": "5.1.1"
1695 | }
1696 | },
1697 | "strip-ansi": {
1698 | "version": "3.0.1",
1699 | "bundled": true,
1700 | "dev": true,
1701 | "requires": {
1702 | "ansi-regex": "2.1.1"
1703 | }
1704 | },
1705 | "strip-json-comments": {
1706 | "version": "2.0.1",
1707 | "bundled": true,
1708 | "dev": true,
1709 | "optional": true
1710 | },
1711 | "tar": {
1712 | "version": "4.4.1",
1713 | "bundled": true,
1714 | "dev": true,
1715 | "optional": true,
1716 | "requires": {
1717 | "chownr": "1.0.1",
1718 | "fs-minipass": "1.2.5",
1719 | "minipass": "2.2.4",
1720 | "minizlib": "1.1.0",
1721 | "mkdirp": "0.5.1",
1722 | "safe-buffer": "5.1.1",
1723 | "yallist": "3.0.2"
1724 | }
1725 | },
1726 | "util-deprecate": {
1727 | "version": "1.0.2",
1728 | "bundled": true,
1729 | "dev": true,
1730 | "optional": true
1731 | },
1732 | "wide-align": {
1733 | "version": "1.1.2",
1734 | "bundled": true,
1735 | "dev": true,
1736 | "optional": true,
1737 | "requires": {
1738 | "string-width": "1.0.2"
1739 | }
1740 | },
1741 | "wrappy": {
1742 | "version": "1.0.2",
1743 | "bundled": true,
1744 | "dev": true
1745 | },
1746 | "yallist": {
1747 | "version": "3.0.2",
1748 | "bundled": true,
1749 | "dev": true
1750 | }
1751 | }
1752 | },
1753 | "glob": {
1754 | "version": "7.1.2",
1755 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
1756 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1757 | "dev": true,
1758 | "requires": {
1759 | "fs.realpath": "1.0.0",
1760 | "inflight": "1.0.6",
1761 | "inherits": "2.0.3",
1762 | "minimatch": "3.0.4",
1763 | "once": "1.4.0",
1764 | "path-is-absolute": "1.0.1"
1765 | }
1766 | },
1767 | "glob-base": {
1768 | "version": "0.3.0",
1769 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1770 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1771 | "dev": true,
1772 | "optional": true,
1773 | "requires": {
1774 | "glob-parent": "2.0.0",
1775 | "is-glob": "2.0.1"
1776 | }
1777 | },
1778 | "glob-parent": {
1779 | "version": "2.0.0",
1780 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1781 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1782 | "dev": true,
1783 | "requires": {
1784 | "is-glob": "2.0.1"
1785 | }
1786 | },
1787 | "globals": {
1788 | "version": "9.18.0",
1789 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
1790 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
1791 | "dev": true
1792 | },
1793 | "graceful-fs": {
1794 | "version": "4.1.11",
1795 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1796 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1797 | "dev": true
1798 | },
1799 | "has-ansi": {
1800 | "version": "2.0.0",
1801 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1802 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1803 | "dev": true,
1804 | "requires": {
1805 | "ansi-regex": "2.1.1"
1806 | }
1807 | },
1808 | "home-or-tmp": {
1809 | "version": "2.0.0",
1810 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
1811 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
1812 | "dev": true,
1813 | "requires": {
1814 | "os-homedir": "1.0.2",
1815 | "os-tmpdir": "1.0.2"
1816 | }
1817 | },
1818 | "inflight": {
1819 | "version": "1.0.6",
1820 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1821 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1822 | "dev": true,
1823 | "requires": {
1824 | "once": "1.4.0",
1825 | "wrappy": "1.0.2"
1826 | }
1827 | },
1828 | "inherits": {
1829 | "version": "2.0.3",
1830 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1831 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1832 | "dev": true
1833 | },
1834 | "invariant": {
1835 | "version": "2.2.4",
1836 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
1837 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
1838 | "dev": true,
1839 | "requires": {
1840 | "loose-envify": "1.3.1"
1841 | }
1842 | },
1843 | "is-binary-path": {
1844 | "version": "1.0.1",
1845 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
1846 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
1847 | "dev": true,
1848 | "optional": true,
1849 | "requires": {
1850 | "binary-extensions": "1.11.0"
1851 | }
1852 | },
1853 | "is-buffer": {
1854 | "version": "1.1.6",
1855 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1856 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1857 | "dev": true
1858 | },
1859 | "is-dotfile": {
1860 | "version": "1.0.3",
1861 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
1862 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
1863 | "dev": true,
1864 | "optional": true
1865 | },
1866 | "is-equal-shallow": {
1867 | "version": "0.1.3",
1868 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1869 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1870 | "dev": true,
1871 | "optional": true,
1872 | "requires": {
1873 | "is-primitive": "2.0.0"
1874 | }
1875 | },
1876 | "is-extendable": {
1877 | "version": "0.1.1",
1878 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1879 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1880 | "dev": true,
1881 | "optional": true
1882 | },
1883 | "is-extglob": {
1884 | "version": "1.0.0",
1885 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1886 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1887 | "dev": true
1888 | },
1889 | "is-finite": {
1890 | "version": "1.0.2",
1891 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
1892 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
1893 | "dev": true,
1894 | "requires": {
1895 | "number-is-nan": "1.0.1"
1896 | }
1897 | },
1898 | "is-glob": {
1899 | "version": "2.0.1",
1900 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1901 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1902 | "dev": true,
1903 | "requires": {
1904 | "is-extglob": "1.0.0"
1905 | }
1906 | },
1907 | "is-number": {
1908 | "version": "2.1.0",
1909 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1910 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1911 | "dev": true,
1912 | "optional": true,
1913 | "requires": {
1914 | "kind-of": "3.2.2"
1915 | }
1916 | },
1917 | "is-posix-bracket": {
1918 | "version": "0.1.1",
1919 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
1920 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
1921 | "dev": true,
1922 | "optional": true
1923 | },
1924 | "is-primitive": {
1925 | "version": "2.0.0",
1926 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
1927 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
1928 | "dev": true,
1929 | "optional": true
1930 | },
1931 | "isarray": {
1932 | "version": "1.0.0",
1933 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1934 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1935 | "dev": true
1936 | },
1937 | "isobject": {
1938 | "version": "2.1.0",
1939 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1940 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1941 | "dev": true,
1942 | "optional": true,
1943 | "requires": {
1944 | "isarray": "1.0.0"
1945 | }
1946 | },
1947 | "js-tokens": {
1948 | "version": "3.0.2",
1949 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
1950 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1951 | "dev": true
1952 | },
1953 | "jsesc": {
1954 | "version": "1.3.0",
1955 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
1956 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
1957 | "dev": true
1958 | },
1959 | "json5": {
1960 | "version": "0.5.1",
1961 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
1962 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
1963 | "dev": true
1964 | },
1965 | "kind-of": {
1966 | "version": "3.2.2",
1967 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1968 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1969 | "dev": true,
1970 | "requires": {
1971 | "is-buffer": "1.1.6"
1972 | }
1973 | },
1974 | "lodash": {
1975 | "version": "4.17.10",
1976 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
1977 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
1978 | "dev": true
1979 | },
1980 | "loose-envify": {
1981 | "version": "1.3.1",
1982 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
1983 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
1984 | "dev": true,
1985 | "requires": {
1986 | "js-tokens": "3.0.2"
1987 | }
1988 | },
1989 | "micromatch": {
1990 | "version": "2.3.11",
1991 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1992 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1993 | "dev": true,
1994 | "optional": true,
1995 | "requires": {
1996 | "arr-diff": "2.0.0",
1997 | "array-unique": "0.2.1",
1998 | "braces": "1.8.5",
1999 | "expand-brackets": "0.1.5",
2000 | "extglob": "0.3.2",
2001 | "filename-regex": "2.0.1",
2002 | "is-extglob": "1.0.0",
2003 | "is-glob": "2.0.1",
2004 | "kind-of": "3.2.2",
2005 | "normalize-path": "2.1.1",
2006 | "object.omit": "2.0.1",
2007 | "parse-glob": "3.0.4",
2008 | "regex-cache": "0.4.4"
2009 | }
2010 | },
2011 | "minimatch": {
2012 | "version": "3.0.4",
2013 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2014 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2015 | "dev": true,
2016 | "requires": {
2017 | "brace-expansion": "1.1.11"
2018 | }
2019 | },
2020 | "minimist": {
2021 | "version": "0.0.8",
2022 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2023 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2024 | "dev": true
2025 | },
2026 | "mkdirp": {
2027 | "version": "0.5.1",
2028 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2029 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2030 | "dev": true,
2031 | "requires": {
2032 | "minimist": "0.0.8"
2033 | }
2034 | },
2035 | "ms": {
2036 | "version": "2.0.0",
2037 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2038 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2039 | "dev": true
2040 | },
2041 | "nan": {
2042 | "version": "2.10.0",
2043 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
2044 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
2045 | "dev": true,
2046 | "optional": true
2047 | },
2048 | "normalize-path": {
2049 | "version": "2.1.1",
2050 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
2051 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
2052 | "dev": true,
2053 | "requires": {
2054 | "remove-trailing-separator": "1.1.0"
2055 | }
2056 | },
2057 | "number-is-nan": {
2058 | "version": "1.0.1",
2059 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2060 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2061 | "dev": true
2062 | },
2063 | "object-assign": {
2064 | "version": "4.1.1",
2065 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2066 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2067 | "dev": true
2068 | },
2069 | "object.omit": {
2070 | "version": "2.0.1",
2071 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
2072 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
2073 | "dev": true,
2074 | "optional": true,
2075 | "requires": {
2076 | "for-own": "0.1.5",
2077 | "is-extendable": "0.1.1"
2078 | }
2079 | },
2080 | "once": {
2081 | "version": "1.4.0",
2082 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2083 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2084 | "dev": true,
2085 | "requires": {
2086 | "wrappy": "1.0.2"
2087 | }
2088 | },
2089 | "os-homedir": {
2090 | "version": "1.0.2",
2091 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
2092 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
2093 | "dev": true
2094 | },
2095 | "os-tmpdir": {
2096 | "version": "1.0.2",
2097 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
2098 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
2099 | "dev": true
2100 | },
2101 | "output-file-sync": {
2102 | "version": "1.1.2",
2103 | "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
2104 | "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
2105 | "dev": true,
2106 | "requires": {
2107 | "graceful-fs": "4.1.11",
2108 | "mkdirp": "0.5.1",
2109 | "object-assign": "4.1.1"
2110 | }
2111 | },
2112 | "parse-glob": {
2113 | "version": "3.0.4",
2114 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
2115 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
2116 | "dev": true,
2117 | "optional": true,
2118 | "requires": {
2119 | "glob-base": "0.3.0",
2120 | "is-dotfile": "1.0.3",
2121 | "is-extglob": "1.0.0",
2122 | "is-glob": "2.0.1"
2123 | }
2124 | },
2125 | "path-is-absolute": {
2126 | "version": "1.0.1",
2127 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2128 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2129 | "dev": true
2130 | },
2131 | "preserve": {
2132 | "version": "0.2.0",
2133 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
2134 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
2135 | "dev": true,
2136 | "optional": true
2137 | },
2138 | "private": {
2139 | "version": "0.1.8",
2140 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
2141 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
2142 | "dev": true
2143 | },
2144 | "process-nextick-args": {
2145 | "version": "2.0.0",
2146 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2147 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
2148 | "dev": true,
2149 | "optional": true
2150 | },
2151 | "randomatic": {
2152 | "version": "1.1.7",
2153 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
2154 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
2155 | "dev": true,
2156 | "optional": true,
2157 | "requires": {
2158 | "is-number": "3.0.0",
2159 | "kind-of": "4.0.0"
2160 | },
2161 | "dependencies": {
2162 | "is-number": {
2163 | "version": "3.0.0",
2164 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2165 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2166 | "dev": true,
2167 | "optional": true,
2168 | "requires": {
2169 | "kind-of": "3.2.2"
2170 | },
2171 | "dependencies": {
2172 | "kind-of": {
2173 | "version": "3.2.2",
2174 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2175 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2176 | "dev": true,
2177 | "optional": true,
2178 | "requires": {
2179 | "is-buffer": "1.1.6"
2180 | }
2181 | }
2182 | }
2183 | },
2184 | "kind-of": {
2185 | "version": "4.0.0",
2186 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2187 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2188 | "dev": true,
2189 | "optional": true,
2190 | "requires": {
2191 | "is-buffer": "1.1.6"
2192 | }
2193 | }
2194 | }
2195 | },
2196 | "readable-stream": {
2197 | "version": "2.3.6",
2198 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2199 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2200 | "dev": true,
2201 | "optional": true,
2202 | "requires": {
2203 | "core-util-is": "1.0.2",
2204 | "inherits": "2.0.3",
2205 | "isarray": "1.0.0",
2206 | "process-nextick-args": "2.0.0",
2207 | "safe-buffer": "5.1.2",
2208 | "string_decoder": "1.1.1",
2209 | "util-deprecate": "1.0.2"
2210 | }
2211 | },
2212 | "readdirp": {
2213 | "version": "2.1.0",
2214 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
2215 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
2216 | "dev": true,
2217 | "optional": true,
2218 | "requires": {
2219 | "graceful-fs": "4.1.11",
2220 | "minimatch": "3.0.4",
2221 | "readable-stream": "2.3.6",
2222 | "set-immediate-shim": "1.0.1"
2223 | }
2224 | },
2225 | "regenerate": {
2226 | "version": "1.3.3",
2227 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
2228 | "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
2229 | "dev": true
2230 | },
2231 | "regenerator-runtime": {
2232 | "version": "0.11.1",
2233 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
2234 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
2235 | "dev": true
2236 | },
2237 | "regenerator-transform": {
2238 | "version": "0.10.1",
2239 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
2240 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
2241 | "dev": true,
2242 | "requires": {
2243 | "babel-runtime": "6.26.0",
2244 | "babel-types": "6.26.0",
2245 | "private": "0.1.8"
2246 | }
2247 | },
2248 | "regex-cache": {
2249 | "version": "0.4.4",
2250 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
2251 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
2252 | "dev": true,
2253 | "optional": true,
2254 | "requires": {
2255 | "is-equal-shallow": "0.1.3"
2256 | }
2257 | },
2258 | "regexpu-core": {
2259 | "version": "2.0.0",
2260 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
2261 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
2262 | "dev": true,
2263 | "requires": {
2264 | "regenerate": "1.3.3",
2265 | "regjsgen": "0.2.0",
2266 | "regjsparser": "0.1.5"
2267 | }
2268 | },
2269 | "regjsgen": {
2270 | "version": "0.2.0",
2271 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
2272 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
2273 | "dev": true
2274 | },
2275 | "regjsparser": {
2276 | "version": "0.1.5",
2277 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
2278 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
2279 | "dev": true,
2280 | "requires": {
2281 | "jsesc": "0.5.0"
2282 | },
2283 | "dependencies": {
2284 | "jsesc": {
2285 | "version": "0.5.0",
2286 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
2287 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
2288 | "dev": true
2289 | }
2290 | }
2291 | },
2292 | "remove-trailing-separator": {
2293 | "version": "1.1.0",
2294 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
2295 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
2296 | "dev": true
2297 | },
2298 | "repeat-element": {
2299 | "version": "1.1.2",
2300 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
2301 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
2302 | "dev": true
2303 | },
2304 | "repeat-string": {
2305 | "version": "1.6.1",
2306 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
2307 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
2308 | "dev": true,
2309 | "optional": true
2310 | },
2311 | "repeating": {
2312 | "version": "2.0.1",
2313 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
2314 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2315 | "dev": true,
2316 | "requires": {
2317 | "is-finite": "1.0.2"
2318 | }
2319 | },
2320 | "safe-buffer": {
2321 | "version": "5.1.2",
2322 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2323 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2324 | "dev": true
2325 | },
2326 | "set-immediate-shim": {
2327 | "version": "1.0.1",
2328 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
2329 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
2330 | "dev": true,
2331 | "optional": true
2332 | },
2333 | "slash": {
2334 | "version": "1.0.0",
2335 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
2336 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
2337 | "dev": true
2338 | },
2339 | "source-map": {
2340 | "version": "0.5.7",
2341 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2342 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2343 | "dev": true
2344 | },
2345 | "source-map-support": {
2346 | "version": "0.4.18",
2347 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
2348 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
2349 | "dev": true,
2350 | "requires": {
2351 | "source-map": "0.5.7"
2352 | }
2353 | },
2354 | "string_decoder": {
2355 | "version": "1.1.1",
2356 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2357 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2358 | "dev": true,
2359 | "optional": true,
2360 | "requires": {
2361 | "safe-buffer": "5.1.2"
2362 | }
2363 | },
2364 | "strip-ansi": {
2365 | "version": "3.0.1",
2366 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2367 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2368 | "dev": true,
2369 | "requires": {
2370 | "ansi-regex": "2.1.1"
2371 | }
2372 | },
2373 | "supports-color": {
2374 | "version": "2.0.0",
2375 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2376 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2377 | "dev": true
2378 | },
2379 | "to-fast-properties": {
2380 | "version": "1.0.3",
2381 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
2382 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
2383 | "dev": true
2384 | },
2385 | "trim-right": {
2386 | "version": "1.0.1",
2387 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
2388 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
2389 | "dev": true
2390 | },
2391 | "user-home": {
2392 | "version": "1.1.1",
2393 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
2394 | "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
2395 | "dev": true
2396 | },
2397 | "util-deprecate": {
2398 | "version": "1.0.2",
2399 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2400 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2401 | "dev": true,
2402 | "optional": true
2403 | },
2404 | "v8flags": {
2405 | "version": "2.1.1",
2406 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
2407 | "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
2408 | "dev": true,
2409 | "requires": {
2410 | "user-home": "1.1.1"
2411 | }
2412 | },
2413 | "wrappy": {
2414 | "version": "1.0.2",
2415 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2416 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2417 | "dev": true
2418 | }
2419 | }
2420 | }
2421 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "relay-compose",
3 | "version": "2.3.0",
4 | "description": "This is HOC for relay modern to work with сomposable components.",
5 | "main": "./lib/index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "build": "babel src/ --out-dir lib"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/ErrorPro/relay-compose.git"
13 | },
14 | "author": "Ven Korolev",
15 | "license": "MIT",
16 | "keywords": [
17 | "react",
18 | "compose",
19 | "relay",
20 | "relay-modern",
21 | "react-relay",
22 | "relay-compose"
23 | ],
24 | "bugs": {
25 | "url": "https://github.com/ErrorPro/relay-compose/issues"
26 | },
27 | "homepage": "https://github.com/ErrorPro/relay-compose#readme",
28 | "peerDependencies": {
29 | "react": "^15.0.0 || ^16.0.0",
30 | "react-relay": "^1.0.0 || ^2.0.0"
31 | },
32 | "devDependencies": {
33 | "babel-cli": "^6.24.1",
34 | "babel-core": "^6.25.0",
35 | "babel-preset-es2015": "^6.24.1",
36 | "babel-preset-react": "^6.24.1",
37 | "babel-preset-stage-0": "^6.24.1"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {
3 | QueryRenderer,
4 | createFragmentContainer,
5 | commitMutation,
6 | createRefetchContainer,
7 | createPaginationContainer,
8 | requestSubscription,
9 | } from 'react-relay';
10 |
11 | let environment;
12 |
13 | const invariant = () => {
14 | if (!environment) {
15 | throw new Error('Relay environment has not been declared.');
16 | }
17 | };
18 |
19 | // leave this one because by the time we found this typo the lib had been installed by many people.
20 | // So to not break peoples' apps just leave this for noe.
21 | export const setEnviroment = env => environment = env;
22 | export const setEnvironment = env => environment = env;
23 |
24 | export const fragment = query => Component => createFragmentContainer(
25 | props => ,
26 | query,
27 | );
28 |
29 | export const paginationContainer = (query, connectionConfig) => Component => createPaginationContainer(
30 | Component,
31 | query,
32 | connectionConfig,
33 | );
34 |
35 | export const queryRenderer = (rootQuery, variables, LoadingComponent, loadingComponentProps = {}) =>
36 | Component => class RelayRoot extends React.Component {
37 | static displayName = `RelayRoot(${Component.displayName})`
38 |
39 | render() {
40 | invariant();
41 |
42 | const vars = typeof variables === 'function' ? variables(this.props) : variables;
43 |
44 | return (
45 | {
50 | if (!props && !error) {
51 | const toRenderDuringLoading = LoadingComponent
52 | ?
53 | : null;
54 |
55 | return toRenderDuringLoading;
56 | }
57 |
58 | return (
59 |
65 | );
66 | }}
67 | />
68 | );
69 | }
70 | };
71 |
72 | export const refetchContainer = (renderVariables, query) => Component => createRefetchContainer(
73 | Component,
74 | renderVariables,
75 | query,
76 | );
77 |
78 | export const createMutation = (
79 | mutation,
80 | config,
81 | ) => new Promise((res, rej) => {
82 | invariant();
83 |
84 | commitMutation(
85 | environment,
86 | {
87 | mutation,
88 | onCompleted: (result, errors) => {
89 | if (errors) {
90 | return rej(errors);
91 | }
92 |
93 | res(result);
94 | },
95 | onError: rej,
96 | ...config,
97 | },
98 | );
99 | });
100 |
101 | export const createSubscription = (
102 | subscription,
103 | variables,
104 | config,
105 | ) => new Promise((res, rej) => {
106 | invariant();
107 |
108 | requestSubscription(
109 | environment,
110 | {
111 | subscription,
112 | variables,
113 | onCompleted: (result, errors) => {
114 | if (errors) {
115 | return rej(errors);
116 | }
117 |
118 | res(result);
119 | },
120 | onError: rej,
121 | ...config,
122 | },
123 | );
124 | });
--------------------------------------------------------------------------------