├── .eslintrc
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── VISION.md
├── package.json
├── src
├── cli
│ └── index.js
├── parser
│ ├── babylon.conf.js
│ ├── fixtures
│ │ ├── exportDefaultArrow.js
│ │ ├── exportDefaultClass.js
│ │ ├── exportDefaultIdentifier.js
│ │ ├── exportDefaultReactless.js
│ │ ├── exportDefaultStateless.js
│ │ ├── routesByIdentifier.js
│ │ ├── routesByObjectLiteral.js
│ │ └── transition.js
│ ├── getComponentName.js
│ ├── getComponentName.test.js
│ ├── getRoutes.js
│ ├── getRoutes.test.js
│ ├── getTransitions.js
│ ├── getTransitions.test.js
│ ├── index.js
│ ├── isNavigationContainer.js
│ ├── isNavigationContainer.test.js
│ ├── resolveRoute.js
│ └── resolveRoute.test.js
└── utils
│ ├── filterByCallee.js
│ ├── resolveObjectExpression.js
│ ├── resolveObjectExpression.test.js
│ ├── resolveObjectIdentifier.js
│ └── resolveSpread.js
└── yarn.lock
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "airbnb",
3 | "env": {
4 | "jest": true
5 | }
6 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | *.tgz
3 | node_modules
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | This code of conduct outlines our expectations for participants within the `react-navigation-parser` community, as well as steps to reporting unacceptable behavior. We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. Anyone who violates this code of conduct may be banned from the community.
2 |
3 | Our open source community strives to:
4 |
5 | - Be friendly and patient.
6 | - Be welcoming: We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
7 | - Be considerate: Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we’re a world-wide community, so you might not be communicating in someone else’s primary language.
8 | - Be respectful: Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one.
9 | - Be careful in the words that we choose: we are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren’t acceptable.
10 | - Try to understand why we disagree: Disagreements, both social and technical, happen all the time. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of our community comes from its diversity, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes.
11 |
12 | Definitions
13 | --
14 | Harassment includes, but is not limited to:
15 |
16 | - Offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, age, regional discrimination, political or religious affiliation
17 | - Unwelcome comments regarding a person’s lifestyle choices and practices, including those related to food, health, parenting, drugs, and employment
18 | - Deliberate misgendering. This includes deadnaming or persistently using a pronoun that does not correctly reflect a person’s gender identity. You must address people by the name they give you when not addressing them by their username or handle
19 | - Physical contact and simulated physical contact (eg, textual descriptions like “hug” or “backrub”) without consent or after a request to stop
20 | - Threats of violence, both physical and psychological
21 | - Incitement of violence towards any individual, including encouraging a person to commit suicide or to engage in self-harm
22 | - Deliberate intimidation
23 | - Stalking or following
24 | - Harassing photography or recording, including logging online activity for harassment purposes
25 | - Sustained disruption of discussion
26 | - Unwelcome sexual attention, including gratuitous or off-topic sexual images or behaviour
27 | - Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others
28 | - Continued one-on-one communication after requests to cease
29 | - Deliberate “outing” of any aspect of a person’s identity without their consent except as necessary to protect others from intentional abuse
30 | - Publication of non-harassing private communication
31 | - Our open source community prioritizes marginalized people’s safety over privileged people’s comfort. We will not act on complaints regarding:
32 |
33 | - ‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’
34 | - Reasonable communication of boundaries, such as “leave me alone,” “go away,” or “I’m not discussing this with you”
35 | - Refusal to explain or debate social justice concepts
36 | - Communicating in a ‘tone’ you don’t find congenial
37 | - Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions
38 |
39 | Diversity Statement
40 | --
41 | We encourage everyone to participate and are committed to building a community for all. Although we will fail at times, we seek to treat everyone both as fairly and equally as possible. Whenever a participant has made a mistake, we expect them to take responsibility for it. If someone has been harmed or offended, it is our responsibility to listen carefully and respectfully, and do our best to right the wrong.
42 |
43 | Although this list cannot be exhaustive, we explicitly honor diversity in age, gender, gender identity or expression, culture, ethnicity, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected characteristics above, including participants with disabilities.
44 |
45 | Reporting Issues
46 | --
47 | If you experience or witness unacceptable behavior—or have any other concerns—please report it by contacting us via DM to @kureevalexey on twitter / email to a.g.kureev@gmail.com. All reports will be handled with discretion. In your report please include:
48 |
49 | - Your contact information.
50 | - Names (real, nicknames, or pseudonyms) of any individuals involved. If there are additional witnesses, please include them as well. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a public IRC logger), please include a link.
51 | - Any additional information that may be helpful.
52 | - After filing a report, a representative will contact you personally, review the incident, follow up with any additional questions, and make a decision as to how to respond. If the person who is harassing you is part of the response team, they will recuse themselves from handling your incident. If the complaint originates from a member of the response team, it will be handled by a different member of the response team. We will respect confidentiality requests for the purpose of protecting victims of abuse.
53 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Alexey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Tiny parser for react-navigation based projects
2 | ----
3 | Parse react-navigation based project to find containers, routes, transitions etc.
4 |
5 | Getting started
6 | ----
7 | - Install using `npm`:
8 | ```bash
9 | $ npm i git@github.com:Kureev/react-navigation-parser.git -g
10 | ```
11 |
12 | - Download any react-native project, using react-navigation
13 | - Run `parse-navigation` CLI:
14 | ```bash
15 | $ parse-navigation path/to/react-navigation-project
16 | ```
17 | or use it via JS API:
18 | ```js
19 | const parser = require('react-navigation-parser');
20 | const result = parse('project/folder');
21 | ```
22 |
23 | Example
24 | ----
25 | For the [PocketGear](https://github.com/satya164/PocketGear) project, tool gives the following output:
26 |
27 | ```json
28 | {
29 | "containers":{
30 | "/Users//PocketGear/src/components/Home.js":{
31 | "navigationType":"StackNavigator",
32 | "routes":[
33 | {
34 | "name":"Main",
35 | "value":"/Users//PocketGear/src/components/PokemonChooser.js"
36 | },
37 | {
38 | "name":"StrongAgainst",
39 | "value":"/Users//PocketGear/src/components/StrongAgainstList.js"
40 | },
41 | {
42 | "name":"WeakAgainst",
43 | "value":"/Users//PocketGear/src/components/WeakAgainstList.js"
44 | },
45 | {
46 | "name":"Info",
47 | "value":"/Users//PocketGear/src/components/PokemonInfo.js"
48 | }
49 | ],
50 | "component":null,
51 | "transitions":[]
52 | },
53 | "/Users//PocketGear/src/components/PokemonInfo.js":{
54 | "navigationType":"TabNavigator",
55 | "routes":[
56 | {
57 | "name":"Details",
58 | "value":"/Users//PocketGear/src/components/PokemonDetails.js"
59 | },
60 | {
61 | "name":"Matches",
62 | "value":"/Users//PocketGear/src/components/PokemonMatches.js"
63 | },
64 | {
65 | "name":"Tools",
66 | "value":"/Users//PocketGear/src/components/PokemonTools.js"
67 | }
68 | ],
69 | "component":"PokemonInfo",
70 | "transitions":[]
71 | }
72 | },
73 | "components":{
74 | "/Users//PocketGear/src/components/Appbar.js":{
75 | "component":"Appbar",
76 | "transitions":[]
77 | },
78 | "/Users//PocketGear/src/components/AppbarShell.js":{
79 | "component":"AppbarShell",
80 | "transitions":[]
81 | },
82 | "/Users//PocketGear/src/components/Attack.js":{
83 | "component":"Attack",
84 | "transitions":[]
85 | },
86 | "/Users//PocketGear/src/components/CPCalculator.js":{
87 | "component":"CPCalculator",
88 | "transitions":[
89 | "Info"
90 | ]
91 | },
92 | "/Users//PocketGear/src/components/Evolution.js":{
93 | "component":"Evolution",
94 | "transitions":[
95 | "Info"
96 | ]
97 | },
98 | "/Users//PocketGear/src/components/GridView.js":{
99 | "component":"GridView",
100 | "transitions":[]
101 | },
102 | "/Users//PocketGear/src/components/Heading.js":{
103 | "component":"Heading",
104 | "transitions":[]
105 | },
106 | "/Users//PocketGear/src/components/More.js":{
107 | "component":"More",
108 | "transitions":[]
109 | },
110 | "/Users//PocketGear/src/components/NoResults.js":{
111 | "component":"NoResults",
112 | "transitions":[]
113 | },
114 | "/Users//PocketGear/src/components/Paragraph.js":{
115 | "component":"Paragraph",
116 | "transitions":[]
117 | },
118 | "/Users//PocketGear/src/components/Placeholder.js":{
119 | "component":"Placeholder",
120 | "transitions":[]
121 | },
122 | "/Users//PocketGear/src/components/PokemonChooser.js":{
123 | "component":"PokemonChooser",
124 | "transitions":[]
125 | },
126 | "/Users//PocketGear/src/components/PokemonDetails.js":{
127 | "component":"PokemonDetails",
128 | "transitions":[
129 | "Info"
130 | ]
131 | },
132 | "/Users//PocketGear/src/components/PokemonList.js":{
133 | "component":"PokemonList",
134 | "transitions":[]
135 | },
136 | "/Users//PocketGear/src/components/PokemonListCard.js":{
137 | "component":"PokemonListCard",
138 | "transitions":[
139 | "Info"
140 | ]
141 | },
142 | "/Users//PocketGear/src/components/PokemonMatches.js":{
143 | "component":"PokemonMatches",
144 | "transitions":[
145 | "Info",
146 | "StrongAgainst",
147 | "WeakAgainst"
148 | ]
149 | },
150 | "/Users//PocketGear/src/components/PokemonTools.js":{
151 | "component":"PokemonTools",
152 | "transitions":[
153 | "Info"
154 | ]
155 | },
156 | "/Users//PocketGear/src/components/PokemonTypeLabel.js":{
157 | "component":"PokemonTypeLabel",
158 | "transitions":[]
159 | },
160 | "/Users//PocketGear/src/components/ProgressBar.js":{
161 | "component":"ProgressBar",
162 | "transitions":[]
163 | },
164 | "/Users//PocketGear/src/components/SearchBar.js":{
165 | "component":"SearchBar",
166 | "transitions":[]
167 | },
168 | "/Users//PocketGear/src/components/SpinButton.js":{
169 | "component":"SpinButton",
170 | "transitions":[]
171 | },
172 | "/Users//PocketGear/src/components/StrongAgainstList.js":{
173 | "component":"StrongAgainstList",
174 | "transitions":[]
175 | },
176 | "/Users//PocketGear/src/components/TouchableButton.js":{
177 | "component":"TouchableButton",
178 | "transitions":[]
179 | },
180 | "/Users//PocketGear/src/components/TouchableItem.js":{
181 | "component":"TouchableItem",
182 | "transitions":[]
183 | },
184 | "/Users//PocketGear/src/components/WeakAgainstList.js":{
185 | "component":"WeakAgainstList",
186 | "transitions":[]
187 | }
188 | },
189 | "routes":{
190 | "Main":"/Users//PocketGear/src/components/PokemonChooser.js",
191 | "StrongAgainst":"/Users//PocketGear/src/components/StrongAgainstList.js",
192 | "WeakAgainst":"/Users//PocketGear/src/components/WeakAgainstList.js",
193 | "Info":"/Users//PocketGear/src/components/PokemonInfo.js",
194 | "Details":"/Users//PocketGear/src/components/PokemonDetails.js",
195 | "Matches":"/Users//PocketGear/src/components/PokemonMatches.js",
196 | "Tools":"/Users//PocketGear/src/components/PokemonTools.js"
197 | }
198 | }
199 | ```
200 |
201 |
202 | Capabilities
203 | ----
204 | - Detect navigation containers with routes
205 | - StackNavigator
206 | - DrawerNavigator
207 | - TabNavigator
208 | - Detect components
209 | - `export default () => {}`
210 | - `export default function Foo() {}`
211 | - `export default Foo` where `Foo` is a class that extends `React.Component`
212 | - `export default class Foo extends React.Component`
213 | - `export default connect(x, y)(Foo)`
214 | - Detect transitions
215 | - `this.props.navigate('route', config)`
216 | - `navigate('route', config)`
--------------------------------------------------------------------------------
/VISION.md:
--------------------------------------------------------------------------------
1 | This program is designed to supply a reliable parsing functionality for projects, using `react-navigation`.
2 |
3 | Beware!
4 | --
5 | - This project will never analyze / modify your code. If you want such tool, you'll have to build it on your own using react-navigation-parser as an underlying tool.
6 | - This project works only with `react-navigation` and it is not a subject to change.
7 | - If `react-navigation` project fail / won't have much adoption, most likely this project will be discontinued or handed over to a person who'd like to maintain it.
8 |
9 | Contributing
10 | --
11 | Please, read Code of Conduct & Contributing Guide
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-navigation-parser",
3 | "version": "1.0.0",
4 | "description": "Parser tool for react-navigation",
5 | "main": "./src/parser/index.js",
6 | "author": "Alexey Kureev ",
7 | "license": "MIT",
8 | "bin": {
9 | "parse-navigation": "./src/cli/index.js"
10 | },
11 | "dependencies": {
12 | "babel-types": "^6.22.0",
13 | "babylon": "^6.15.0",
14 | "babylon-walk": "^1.0.2"
15 | },
16 | "scripts": {
17 | "test": "jest"
18 | },
19 | "devDependencies": {
20 | "eslint": "^3.14.1",
21 | "eslint-config-airbnb": "latest",
22 | "eslint-plugin-import": "^2.2.0",
23 | "eslint-plugin-jsx-a11y": "^3.0.2",
24 | "eslint-plugin-react": "^6.9.0",
25 | "jest": "^18.1.0"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/cli/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | const path = require('path');
3 | const parse = require('../parser');
4 |
5 | const args = process.argv.slice(2);
6 | const projectRoot = path.resolve(process.cwd(), args[0]);
7 |
8 | const results = parse(projectRoot);
9 |
10 | console.log(JSON.stringify(results));
11 |
--------------------------------------------------------------------------------
/src/parser/babylon.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | sourceType: 'module',
3 | plugins: ['jsx', 'flow', 'objectRestSpread', 'asyncGenerators', 'classProperties'],
4 | };
5 |
--------------------------------------------------------------------------------
/src/parser/fixtures/exportDefaultArrow.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import {Text} from 'react-native';
3 | export default () => (
4 | test
5 | );
6 |
7 |
--------------------------------------------------------------------------------
/src/parser/fixtures/exportDefaultClass.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | export default class Foo extends Component {};
3 |
--------------------------------------------------------------------------------
/src/parser/fixtures/exportDefaultIdentifier.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | class Foo extends Component {}
3 | export default Foo;
4 |
--------------------------------------------------------------------------------
/src/parser/fixtures/exportDefaultReactless.js:
--------------------------------------------------------------------------------
1 | export default function Foo() {};
2 |
--------------------------------------------------------------------------------
/src/parser/fixtures/exportDefaultStateless.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | export default function Foo() {};
3 |
--------------------------------------------------------------------------------
/src/parser/fixtures/routesByIdentifier.js:
--------------------------------------------------------------------------------
1 | /* @flow */
2 |
3 | import React from 'react';
4 |
5 | import {
6 | Platform,
7 | ScrollView,
8 | StyleSheet,
9 | TouchableOpacity,
10 | Text,
11 | View,
12 | } from 'react-native';
13 | import { StackNavigator } from 'react-navigation';
14 |
15 | import Banner from './Banner';
16 | import CustomTabs from './CustomTabs';
17 | import Drawer from './Drawer';
18 | import ModalStack from './ModalStack';
19 | import StacksInTabs from './StacksInTabs';
20 | import SimpleStack from './SimpleStack';
21 | import SimpleTabs from './SimpleTabs';
22 |
23 | const ExampleRoutes = {
24 | SimpleStack: {
25 | name: 'Stack Example',
26 | description: 'A card stack',
27 | screen: SimpleStack,
28 | },
29 | SimpleTabs: {
30 | name: 'Tabs Example',
31 | description: 'Tabs following platform conventions',
32 | screen: SimpleTabs,
33 | },
34 | Drawer: {
35 | name: 'Drawer Example',
36 | description: 'Android-style drawer navigation',
37 | screen: Drawer,
38 | },
39 | CustomTabs: {
40 | name: 'Custom Tabs',
41 | description: 'Custom tabs with tab router',
42 | screen: CustomTabs,
43 | },
44 | ModalStack: {
45 | name: Platform.OS === 'ios' ? 'Modal Stack Example': 'Stack with Dynamic Header',
46 | description: Platform.OS === 'ios' ? 'Stack navigation with modals' : 'Dynamically showing and hiding the header',
47 | screen: ModalStack,
48 | },
49 | StacksInTabs: {
50 | name: 'Stacks in Tabs',
51 | description: 'Nested stack navigation in tabs',
52 | screen: StacksInTabs,
53 | },
54 | LinkStack: {
55 | name: 'Link in Stack',
56 | description: 'Deep linking into a route in stack',
57 | screen: SimpleStack,
58 | path: 'people/Jordan',
59 | },
60 | LinkTabs: {
61 | name: 'Link to Settings Tab',
62 | description: 'Deep linking into a route in tab',
63 | screen: SimpleTabs,
64 | path: 'settings',
65 | },
66 | };
67 |
68 | const MainScreen = ({ navigation }) => (
69 |
70 |
71 | {Object.keys(ExampleRoutes).map((routeName: String) =>
72 | {
75 | const { path, params, screen } = ExampleRoutes[routeName];
76 | const { router } = screen;
77 | const action = path && router.getActionForPathAndParams(path, params);
78 | navigation.navigate(routeName, {}, action);
79 | }}
80 | >
81 |
82 | {ExampleRoutes[routeName].name}
83 | {ExampleRoutes[routeName].description}
84 |
85 |
86 | )}
87 |
88 | );
89 |
90 | const AppNavigator = StackNavigator(ExampleRoutes, {
91 | initialRouteName: 'Index',
92 | headerMode: 'none',
93 |
94 | /*
95 | * Use modal on iOS because the card mode comes from the right,
96 | * which conflicts with the drawer example gesture
97 | */
98 | mode: Platform.OS === 'ios' ? 'modal' : 'card',
99 | });
100 |
101 | export default () => ;
102 |
103 | const styles = StyleSheet.create({
104 | item: {
105 | backgroundColor: '#fff',
106 | paddingHorizontal: 16,
107 | paddingVertical: 12,
108 | borderBottomWidth: StyleSheet.hairlineWidth,
109 | borderBottomColor: '#ddd',
110 | },
111 | image: {
112 | width: 120,
113 | height: 120,
114 | alignSelf: 'center',
115 | marginBottom: 20,
116 | resizeMode: 'contain',
117 | },
118 | title: {
119 | fontSize: 16,
120 | fontWeight: 'bold',
121 | color: '#444',
122 | },
123 | description: {
124 | fontSize: 13,
125 | color: '#999',
126 | },
127 | });
--------------------------------------------------------------------------------
/src/parser/fixtures/routesByObjectLiteral.js:
--------------------------------------------------------------------------------
1 | /* @flow */
2 |
3 | import React from 'react';
4 |
5 | import {
6 | Platform,
7 | ScrollView,
8 | StyleSheet,
9 | TouchableOpacity,
10 | Text,
11 | View,
12 | } from 'react-native';
13 | import { StackNavigator } from 'react-navigation';
14 |
15 | import Banner from './Banner';
16 | import CustomTabs from './CustomTabs';
17 | import Drawer from './Drawer';
18 | import ModalStack from './ModalStack';
19 | import StacksInTabs from './StacksInTabs';
20 | import SimpleStack from './SimpleStack';
21 | import SimpleTabs from './SimpleTabs';
22 |
23 | const ExampleRoutes = {
24 | SimpleStack: {
25 | name: 'Stack Example',
26 | description: 'A card stack',
27 | screen: SimpleStack,
28 | },
29 | SimpleTabs: {
30 | name: 'Tabs Example',
31 | description: 'Tabs following platform conventions',
32 | screen: SimpleTabs,
33 | },
34 | Drawer: {
35 | name: 'Drawer Example',
36 | description: 'Android-style drawer navigation',
37 | screen: Drawer,
38 | },
39 | CustomTabs: {
40 | name: 'Custom Tabs',
41 | description: 'Custom tabs with tab router',
42 | screen: CustomTabs,
43 | },
44 | ModalStack: {
45 | name: Platform.OS === 'ios' ? 'Modal Stack Example': 'Stack with Dynamic Header',
46 | description: Platform.OS === 'ios' ? 'Stack navigation with modals' : 'Dynamically showing and hiding the header',
47 | screen: ModalStack,
48 | },
49 | StacksInTabs: {
50 | name: 'Stacks in Tabs',
51 | description: 'Nested stack navigation in tabs',
52 | screen: StacksInTabs,
53 | },
54 | LinkStack: {
55 | name: 'Link in Stack',
56 | description: 'Deep linking into a route in stack',
57 | screen: SimpleStack,
58 | path: 'people/Jordan',
59 | },
60 | LinkTabs: {
61 | name: 'Link to Settings Tab',
62 | description: 'Deep linking into a route in tab',
63 | screen: SimpleTabs,
64 | path: 'settings',
65 | },
66 | };
67 |
68 | const MainScreen = ({ navigation }) => (
69 |
70 |
71 | {Object.keys(ExampleRoutes).map((routeName: String) =>
72 | {
75 | const { path, params, screen } = ExampleRoutes[routeName];
76 | const { router } = screen;
77 | const action = path && router.getActionForPathAndParams(path, params);
78 | navigation.navigate(routeName, {}, action);
79 | }}
80 | >
81 |
82 | {ExampleRoutes[routeName].name}
83 | {ExampleRoutes[routeName].description}
84 |
85 |
86 | )}
87 |
88 | );
89 |
90 | const AppNavigator = StackNavigator({
91 | ...ExampleRoutes,
92 | Index: {
93 | screen: MainScreen,
94 | },
95 | }, {
96 | initialRouteName: 'Index',
97 | headerMode: 'none',
98 |
99 | /*
100 | * Use modal on iOS because the card mode comes from the right,
101 | * which conflicts with the drawer example gesture
102 | */
103 | mode: Platform.OS === 'ios' ? 'modal' : 'card',
104 | });
105 |
106 | export default () => ;
107 |
108 | const styles = StyleSheet.create({
109 | item: {
110 | backgroundColor: '#fff',
111 | paddingHorizontal: 16,
112 | paddingVertical: 12,
113 | borderBottomWidth: StyleSheet.hairlineWidth,
114 | borderBottomColor: '#ddd',
115 | },
116 | image: {
117 | width: 120,
118 | height: 120,
119 | alignSelf: 'center',
120 | marginBottom: 20,
121 | resizeMode: 'contain',
122 | },
123 | title: {
124 | fontSize: 16,
125 | fontWeight: 'bold',
126 | color: '#444',
127 | },
128 | description: {
129 | fontSize: 13,
130 | color: '#999',
131 | },
132 | });
--------------------------------------------------------------------------------
/src/parser/fixtures/transition.js:
--------------------------------------------------------------------------------
1 | import React, { PropTypes } from 'react';
2 | import { TouchableOpacity } from 'react-native';
3 |
4 | export default function ComponentWithTransition(props) {
5 | return ;
6 | }
7 |
8 | ComponentWithTransition.propTypes = {
9 | navigate: PropTypes.func,
10 | };
11 |
--------------------------------------------------------------------------------
/src/parser/getComponentName.js:
--------------------------------------------------------------------------------
1 | const walk = require('babylon-walk');
2 | const t = require('babel-types');
3 |
4 | /**
5 | * This parser doesn't support constructions like
6 | * export default const Foo = class extends Component or similar
7 | * If you want to help this project - please, submit a PR
8 | */
9 |
10 | module.exports = function getComponents(ast) {
11 | let defaultExportNode;
12 | let importsReact = false;
13 | let hasExport = false;
14 | let isStatefulComponent = false;
15 |
16 | const visitors = {
17 | ExportDefaultDeclaration({ declaration }) {
18 | hasExport = true;
19 | defaultExportNode = declaration;
20 | },
21 | ImportDeclaration({ source }) {
22 | if (source.value === 'react' || source.value === 'react-native') {
23 | importsReact = true;
24 | }
25 | },
26 | ImportSpecifier({ imported }) {
27 | if (imported.name === 'Component') {
28 | isStatefulComponent = true;
29 | }
30 | },
31 | ClassDeclaration({ superClass }) {
32 | if (t.isIdentifier(superClass)) {
33 | if (['PureComponent', 'Component'].indexOf(superClass.name) > -1) {
34 | isStatefulComponent = true;
35 | }
36 | } else if (t.isMemberExpression(superClass)) {
37 | if (
38 | superClass.object.name === 'React' &&
39 | superClass.property.name === 'Component'
40 | ) {
41 | isStatefulComponent = true;
42 | }
43 | }
44 | },
45 | };
46 |
47 | walk.simple(ast, visitors);
48 | const isReactComponent = importsReact && hasExport;
49 |
50 | if (!isReactComponent) {
51 | return null;
52 | }
53 |
54 | if (isStatefulComponent && t.isIdentifier(defaultExportNode)) {
55 | return defaultExportNode.name;
56 | }
57 |
58 | if (t.isCallExpression(defaultExportNode)) {
59 | if (defaultExportNode.callee.callee.name === 'connect') {
60 | return defaultExportNode.arguments[0].name;
61 | }
62 | }
63 |
64 | if (t.isArrowFunctionExpression(defaultExportNode)) {
65 | return '';
66 | }
67 |
68 | return defaultExportNode.id.name;
69 | };
70 |
--------------------------------------------------------------------------------
/src/parser/getComponentName.test.js:
--------------------------------------------------------------------------------
1 | const getComponentName = require('./getComponentName');
2 | const fs = require('fs');
3 | const path = require('path');
4 | const babylon = require('babylon');
5 | const babylonConfig = require('./babylon.conf');
6 |
7 | function getAST(filename) {
8 | const fileContent = fs.readFileSync(filename, 'utf8');
9 | return babylon.parse(fileContent, babylonConfig);
10 | }
11 |
12 | describe('getComponentName with various input sources', () => {
13 | it('export default class X extends Y {}', () => {
14 | const filename = path.join(__dirname, 'fixtures/exportDefaultClass.js');
15 | const name = getComponentName(getAST(filename));
16 | expect(name).toBe('Foo');
17 | });
18 |
19 | it('export default Foo', () => {
20 | const filename = path.join(__dirname, 'fixtures/exportDefaultIdentifier.js');
21 | const name = getComponentName(getAST(filename));
22 | expect(name).toBe('Foo');
23 | });
24 |
25 | it('export default () => {}', () => {
26 | const filename = path.join(__dirname, 'fixtures/exportDefaultArrow.js');
27 | const name = getComponentName(getAST(filename));
28 | expect(name).toBe('');
29 | });
30 |
31 | it('export default function Foo() {}', () => {
32 | const filename = path.join(__dirname, 'fixtures/exportDefaultStateless.js');
33 | const name = getComponentName(getAST(filename));
34 | expect(name).toBe('Foo');
35 | });
36 |
37 | it('export default function Foo() {} (without requiring React)', () => {
38 | const filename = path.join(__dirname, 'fixtures/exportDefaultReactless.js');
39 | const name = getComponentName(getAST(filename));
40 | expect(name).toBe(null);
41 | });
42 | });
43 |
--------------------------------------------------------------------------------
/src/parser/getRoutes.js:
--------------------------------------------------------------------------------
1 | const walk = require('babylon-walk');
2 | const t = require('babel-types');
3 | const resolveRoute = require('./resolveRoute');
4 | const resolveObjectExpression = require('../utils/resolveObjectExpression');
5 | const resolveObjectIdentifier = require('../utils/resolveObjectIdentifier');
6 |
7 | const navigatorsList = [
8 | 'StackNavigator',
9 | 'TabNavigator',
10 | 'DrawerNavigator',
11 | ];
12 |
13 | module.exports = function getRoutes(ast) {
14 | const nodes = [];
15 | let navigationType;
16 |
17 | const visitors = {
18 | CallExpression(node) {
19 | const navigatorIndex = navigatorsList.indexOf(node.callee.name);
20 | if (navigatorIndex > -1) {
21 | navigationType = navigatorsList[navigatorIndex];
22 | nodes.push(node);
23 | }
24 | },
25 | };
26 |
27 | /**
28 | * First we walk through the file AST to find a call expression(s) that
29 | * creates a StackNavigator instance. (@todo Change it to all possible navigators)
30 | * All call expressions are collected in `nodes` array.
31 | */
32 | walk.simple(ast, visitors);
33 |
34 | /**
35 | * Once we have all call expressions in array, we can get their arguments (e.g. routes)
36 | * In the scope of proof of concept implementation I'll keep it simple and take only
37 | * the first one call expression. If it'll be needed, this code can be replaced by
38 | * something more generic. We also take the first argument (object / variable with routes)
39 | */
40 | const firstArg = nodes[0].arguments[0];
41 |
42 | /**
43 | * Routes can be passed as object expression or a variable. We need to handle both cases:
44 | */
45 | let routes;
46 | if (t.isObjectExpression(firstArg)) {
47 | routes = resolveObjectExpression(firstArg, ast);
48 | } else if (t.isIdentifier(firstArg)) {
49 | routes = resolveObjectIdentifier(firstArg, ast);
50 | }
51 |
52 | routes = routes.map(route => resolveRoute(route, ast));
53 |
54 | return { navigationType, routes };
55 | };
56 |
--------------------------------------------------------------------------------
/src/parser/getRoutes.test.js:
--------------------------------------------------------------------------------
1 | const getRoutes = require('./getRoutes');
2 | const fs = require('fs');
3 | const path = require('path');
4 | const babylon = require('babylon');
5 | const babylonConfig = require('./babylon.conf');
6 |
7 | describe('getRoutes with various input sources', () => {
8 | it('getRoutes gets a list of app routes (object literal)', () => {
9 | const filename = path.join(__dirname, 'fixtures/routesByObjectLiteral.js');
10 | const fileContent = fs.readFileSync(filename, 'utf8');
11 | const ast = babylon.parse(fileContent, babylonConfig);
12 | const { routes } = getRoutes(ast);
13 | const names = routes.map(({ name }) => name);
14 | expect(JSON.stringify(names)).toBe(
15 | JSON.stringify([
16 | 'SimpleStack',
17 | 'SimpleTabs',
18 | 'Drawer',
19 | 'CustomTabs',
20 | 'ModalStack',
21 | 'StacksInTabs',
22 | 'LinkStack',
23 | 'LinkTabs',
24 | 'Index',
25 | ]),
26 | );
27 | });
28 |
29 | it('getRoutes gets a list of app routes (identifier)', () => {
30 | const filename = path.join(__dirname, 'fixtures/routesByIdentifier.js');
31 | const fileContent = fs.readFileSync(filename, 'utf8');
32 | const ast = babylon.parse(fileContent, babylonConfig);
33 | const { routes } = getRoutes(ast);
34 | const names = routes.map(({ name }) => name);
35 | expect(JSON.stringify(names)).toBe(
36 | JSON.stringify([
37 | 'SimpleStack',
38 | 'SimpleTabs',
39 | 'Drawer',
40 | 'CustomTabs',
41 | 'ModalStack',
42 | 'StacksInTabs',
43 | 'LinkStack',
44 | 'LinkTabs',
45 | ]),
46 | );
47 | });
48 | });
49 |
--------------------------------------------------------------------------------
/src/parser/getTransitions.js:
--------------------------------------------------------------------------------
1 | const walk = require('babylon-walk');
2 | const t = require('babel-types');
3 |
4 | function hasNavigationSignature(args) {
5 | return t.isStringLiteral(args[0]) && (
6 | /**
7 | * @todo Write a function that gets identifier's value
8 | */
9 | t.isObjectExpression(args[1]) ||
10 | t.isIdentifier(args[1]) ||
11 | typeof args === 'undefined'
12 | );
13 | }
14 |
15 | module.exports = function getTransitions(ast) {
16 | const transitions = [];
17 | const visitors = {
18 | CallExpression(node) {
19 | const args = node.arguments;
20 | const { callee } = node;
21 | const isCalledByIdentifier = (
22 | t.isIdentifier(callee) &&
23 | callee.name === 'navigate' &&
24 | hasNavigationSignature(args)
25 | );
26 |
27 | const isCalledByMemberExpression = (
28 | t.isMemberExpression(callee) &&
29 | t.isIdentifier(callee.property) &&
30 | callee.property.name === 'navigate' &&
31 | hasNavigationSignature(args)
32 | );
33 |
34 | if (isCalledByIdentifier || isCalledByMemberExpression) {
35 | transitions.push(args[0].value);
36 | }
37 | },
38 | };
39 |
40 | walk.simple(ast, visitors);
41 | return transitions;
42 | };
43 |
--------------------------------------------------------------------------------
/src/parser/getTransitions.test.js:
--------------------------------------------------------------------------------
1 | const getTransitions = require('./getTransitions');
2 | const fs = require('fs');
3 | const path = require('path');
4 | const babylon = require('babylon');
5 | const babylonConfig = require('./babylon.conf');
6 |
7 | function getAST(filename) {
8 | const fileContent = fs.readFileSync(filename, 'utf8');
9 | return babylon.parse(fileContent, babylonConfig);
10 | }
11 |
12 | test('getTransitions detects screen transitions', () => {
13 | const filename = path.join(__dirname, 'fixtures/transition.js');
14 | const ast = getAST(filename);
15 | expect(getTransitions(ast)).toEqual(['foo']);
16 | });
17 |
18 | test('getTransitions returns an empty array if no transitions', () => {
19 | const filename = path.join(__dirname, 'fixtures/routesByIdentifier.js');
20 | const ast = getAST(filename);
21 | expect(getTransitions(ast)).toEqual([]);
22 | });
23 |
--------------------------------------------------------------------------------
/src/parser/index.js:
--------------------------------------------------------------------------------
1 | const exec = require('child_process').execSync;
2 | const path = require('path');
3 | const fs = require('fs');
4 | const babylon = require('babylon');
5 | const babylonConfig = require('./babylon.conf');
6 | const getRoutes = require('./getRoutes');
7 | const getComponentName = require('./getComponentName');
8 | const getTransitions = require('./getTransitions');
9 | const isNavigationContainer = require('./isNavigationContainer');
10 |
11 | module.exports = function parse(projectRoot, options = {}) {
12 | /**
13 | * @todo Add support for Windows
14 | */
15 | let cmd = `find ${projectRoot} -name "*.js" -not -path "*node_modules*"`;
16 | if (options.exclude && Array.isArray(options.exclude)) {
17 | cmd += options.exclude
18 | .reduce((acc, x) => (acc.push(` -not -path "${x}"`) && acc), [])
19 | .join('');
20 | }
21 |
22 | const jsFiles = exec(cmd, { encoding: 'utf8' })
23 | .split('\n')
24 | .slice(0, -1);
25 |
26 | const results = {
27 | containers: {},
28 | components: {},
29 | routes: {},
30 | };
31 | const containers = [];
32 |
33 | /**
34 | * Read given files and check if they are navigation containers or not
35 | */
36 | jsFiles.forEach((file) => {
37 | const fileContent = fs.readFileSync(file, 'utf8');
38 | const isContainer = isNavigationContainer(fileContent);
39 | const ast = babylon.parse(fileContent, babylonConfig);
40 | const component = getComponentName(ast);
41 | let transitions = [];
42 | if (component) {
43 | transitions = getTransitions(ast);
44 | }
45 | /**
46 | * If so, get container's routes and store them to the result object
47 | */
48 | if (isContainer) {
49 | containers.push(file);
50 | const routesObj = getRoutes(ast);
51 | const { navigationType } = routesObj;
52 | let { routes } = routesObj;
53 | routes = routes.map(({ name, value }) => {
54 | results.routes[name] = path.join(path.dirname(file), value) + path.extname(file);
55 | return { name, value: results.routes[name] };
56 | });
57 | results.containers[file] = { navigationType, routes, component, transitions };
58 | } else if (component) {
59 | results.components[file] = { component, transitions };
60 | }
61 | });
62 |
63 | /**
64 | * Once we have an object with navigators and related routes,
65 | * it's time to build a hierarchy. Some navigators can be nested,
66 | * so we loop over our `results` hash to check if any of the routes
67 | * refers to other navigator.
68 | */
69 | Object.keys(results).forEach((r) => {
70 | if (!results[r].routes) {
71 | return;
72 | }
73 | results[r].routes.forEach((route) => {
74 | const matches = containers.filter(c => c === route.value);
75 | if (matches.length) {
76 | if (!results[r].children) {
77 | results[r].children = {};
78 | }
79 | results[r].children[matches[0]] = results[matches[0]];
80 | }
81 | });
82 | });
83 |
84 | return results;
85 | };
86 |
--------------------------------------------------------------------------------
/src/parser/isNavigationContainer.js:
--------------------------------------------------------------------------------
1 | const babylon = require('babylon');
2 | const walk = require('babylon-walk');
3 | const babylonConfig = require('./babylon.conf');
4 |
5 | module.exports = function isNavigationContainer(fileContent) {
6 | let isContainer = false;
7 | const ast = babylon.parse(fileContent, babylonConfig);
8 |
9 | walk.simple(ast, {
10 | ImportDeclaration(node) {
11 | if (node.source.value === 'react-navigation') {
12 | isContainer = true;
13 | }
14 | },
15 | });
16 |
17 | return isContainer;
18 | };
19 |
--------------------------------------------------------------------------------
/src/parser/isNavigationContainer.test.js:
--------------------------------------------------------------------------------
1 | const isNavigationContainer = require('./isNavigationContainer');
2 | const fs = require('fs');
3 | const path = require('path');
4 |
5 | test('isNavigationContainer detects entry points', () => {
6 | const filename = path.join(__dirname, 'fixtures/routesByObjectLiteral.js');
7 | const fileContent = fs.readFileSync(filename, 'utf8');
8 | expect(isNavigationContainer(fileContent)).toBe(true);
9 | });
10 |
--------------------------------------------------------------------------------
/src/parser/resolveRoute.js:
--------------------------------------------------------------------------------
1 | const t = require('babel-types');
2 |
3 | module.exports = function resolveRoute(route, ast) {
4 | /**
5 | * Resolved is a final shape route.
6 | * - `name` reflects the route name,
7 | * - `value` corresponds to the screen require path. Sometimes,
8 | * if screen is declared inside the container itself,
9 | * value is an empty string
10 | */
11 | const resolved = {
12 | name: route.key.name,
13 | value: '',
14 | };
15 | /**
16 | * Every route may have multiple keys like description, screen etc.
17 | * We're interested only in the value of the `screen` field.
18 | */
19 | let screenName = '';
20 | route.value.properties.forEach((prop) => {
21 | if (prop.key.name === 'screen') {
22 | screenName = prop.value.name;
23 | }
24 | });
25 |
26 | /**
27 | * Once we have a screen name, we look for it in file's import declarations
28 | */
29 | const imports = ast.program.body.filter(t.isImportDeclaration);
30 | imports.forEach((i) => {
31 | const matches = i.specifiers
32 | .filter(({ local }) => local.name === screenName);
33 |
34 | /**
35 | * If we found a specifier that corresponds to the screen name,
36 | * write it to the `resolved` object and return it back to the callee
37 | */
38 | if (matches.length > 0) {
39 | resolved.value = i.source.value;
40 | }
41 | });
42 |
43 | return resolved;
44 | };
45 |
--------------------------------------------------------------------------------
/src/parser/resolveRoute.test.js:
--------------------------------------------------------------------------------
1 | const resolveRoute = require('./resolveRoute');
2 | const babylon = require('babylon');
3 | const babylonConfig = require('./babylon.conf');
4 |
5 | test('resolveRoute resolves screen name', () => {
6 | const routeNode = babylon.parse(
7 | '({Foo: {screen: Foo}})',
8 | babylonConfig,
9 | ).program.body[0].expression.properties[0];
10 | const sourceAST = babylon.parse(`
11 | import Foo from "X";
12 | import Bar from "Y";
13 |
14 | class Example extends React.Component {}
15 | `, babylonConfig);
16 | expect(resolveRoute(routeNode, sourceAST)).toEqual({
17 | name: 'Foo',
18 | value: 'X',
19 | });
20 | });
21 |
--------------------------------------------------------------------------------
/src/utils/filterByCallee.js:
--------------------------------------------------------------------------------
1 | module.exports = function filterByCallee(calleeName) {
2 | return node => node.callee.name === calleeName;
3 | };
4 |
--------------------------------------------------------------------------------
/src/utils/resolveObjectExpression.js:
--------------------------------------------------------------------------------
1 | const t = require('babel-types');
2 | const resolveSpread = require('./resolveSpread');
3 |
4 | /**
5 | * Resolve object expression and return an array of object properties
6 | */
7 | module.exports = function resolveObjectExpression(objectExpressionNode, ast) {
8 | let objectProperties = [];
9 | /**
10 | * Properties of object expression can be spreads (i.e. ...something), so
11 | * we need to check for them and if they exists, resolve them first.
12 | */
13 | objectExpressionNode.properties.forEach((prop) => {
14 | if (t.isSpreadProperty(prop)) {
15 | objectProperties = objectProperties.concat(resolveSpread(prop, ast));
16 | } else if (t.isObjectProperty(prop)) {
17 | objectProperties = objectProperties.concat(prop);
18 | } else {
19 | throw Error('Unrecognized object property');
20 | }
21 | });
22 |
23 | return objectProperties;
24 | };
25 |
--------------------------------------------------------------------------------
/src/utils/resolveObjectExpression.test.js:
--------------------------------------------------------------------------------
1 | const babylon = require('babylon');
2 | const resolveObjectExpression = require('./resolveObjectExpression');
3 | const babylonConfig = require('../parser/babylon.conf');
4 |
5 | test('resolveObjectExpression() resolves nested spreads', () => {
6 | const code = `
7 | const a = {a: 1, b: 2};
8 | const b = {...a, c: 3};
9 | const c = {...b, d: 4};
10 | `;
11 | const ast = babylon.parse(code, babylonConfig);
12 | const objectExpression = ast.program.body[2].declarations[0].init;
13 | const resolved = resolveObjectExpression(objectExpression, ast);
14 | const keys = resolved.map(r => r.key.name);
15 | expect(JSON.stringify(keys)).toEqual(JSON.stringify(['a', 'b', 'c', 'd']));
16 | });
17 |
--------------------------------------------------------------------------------
/src/utils/resolveObjectIdentifier.js:
--------------------------------------------------------------------------------
1 | const walk = require('babylon-walk');
2 | const t = require('babel-types');
3 | /**
4 | * Resolve identifier and return it's value
5 | */
6 | module.exports = function resolveObjectIdentifier(identifier, ast) {
7 | let objectProperties = [];
8 | const declarations = [];
9 | const visitors = {
10 | VariableDeclaration(node) {
11 | node.declarations.forEach((declaration) => {
12 | if (declaration.id.name === identifier.name) {
13 | t.assertObjectExpression(declaration.init);
14 | /**
15 | * Theoretically, `init` may contain nested spreads, but for now
16 | * I don't take it into account.
17 | * @todo Recursively check for nested spreads
18 | */
19 | declarations.push(declaration.init);
20 | }
21 | });
22 | },
23 | };
24 |
25 | walk.simple(ast, visitors);
26 | /**
27 | * We assume that nobody re-declare variables, so `declarations` will
28 | * always have only one element
29 | */
30 | objectProperties = objectProperties.concat(declarations[0].properties);
31 |
32 | return objectProperties;
33 | };
34 |
--------------------------------------------------------------------------------
/src/utils/resolveSpread.js:
--------------------------------------------------------------------------------
1 | const walk = require('babylon-walk');
2 | const t = require('babel-types');
3 |
4 | module.exports = function resolveSpread(spreadProperty, ast) {
5 | let properties = [];
6 |
7 | const visitors = {
8 | VariableDeclaration(node) {
9 | node.declarations.forEach((declaration) => {
10 | if (declaration.id.name === spreadProperty.argument.name) {
11 | t.assertObjectExpression(declaration.init);
12 | /**
13 | * Theoretically, `init` may contain nested spreads, but for now
14 | * I don't take it into account.
15 | * @todo Recursively check for nested spreads
16 | */
17 | declaration.init.properties.forEach((p) => {
18 | if (t.isSpreadProperty(p)) {
19 | properties = properties.concat(resolveSpread(p, ast));
20 | } else {
21 | properties.push(p);
22 | }
23 | });
24 | }
25 | });
26 | },
27 | };
28 |
29 | walk.simple(ast, visitors);
30 | return properties;
31 | };
32 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | abab@^1.0.0:
6 | version "1.0.3"
7 | resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
8 |
9 | acorn-globals@^1.0.4:
10 | version "1.0.9"
11 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf"
12 | dependencies:
13 | acorn "^2.1.0"
14 |
15 | acorn-jsx@^3.0.0, acorn-jsx@^3.0.1:
16 | version "3.0.1"
17 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
18 | dependencies:
19 | acorn "^3.0.4"
20 |
21 | acorn@4.0.4:
22 | version "4.0.4"
23 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a"
24 |
25 | acorn@^2.1.0, acorn@^2.4.0:
26 | version "2.7.0"
27 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
28 |
29 | acorn@^3.0.4:
30 | version "3.3.0"
31 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
32 |
33 | ajv-keywords@^1.0.0:
34 | version "1.5.1"
35 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
36 |
37 | ajv@^4.7.0:
38 | version "4.11.2"
39 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6"
40 | dependencies:
41 | co "^4.6.0"
42 | json-stable-stringify "^1.0.1"
43 |
44 | align-text@^0.1.1, align-text@^0.1.3:
45 | version "0.1.4"
46 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
47 | dependencies:
48 | kind-of "^3.0.2"
49 | longest "^1.0.1"
50 | repeat-string "^1.5.2"
51 |
52 | amdefine@>=0.0.4:
53 | version "1.0.1"
54 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
55 |
56 | ansi-escapes@^1.1.0, ansi-escapes@^1.4.0:
57 | version "1.4.0"
58 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
59 |
60 | ansi-regex@^2.0.0:
61 | version "2.1.1"
62 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
63 |
64 | ansi-styles@^2.2.1:
65 | version "2.2.1"
66 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
67 |
68 | ansicolors@~0.2.1:
69 | version "0.2.1"
70 | resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef"
71 |
72 | append-transform@^0.4.0:
73 | version "0.4.0"
74 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
75 | dependencies:
76 | default-require-extensions "^1.0.0"
77 |
78 | argparse@^1.0.7:
79 | version "1.0.9"
80 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
81 | dependencies:
82 | sprintf-js "~1.0.2"
83 |
84 | arr-diff@^2.0.0:
85 | version "2.0.0"
86 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
87 | dependencies:
88 | arr-flatten "^1.0.1"
89 |
90 | arr-flatten@^1.0.1:
91 | version "1.0.1"
92 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
93 |
94 | array-equal@^1.0.0:
95 | version "1.0.0"
96 | resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
97 |
98 | array-union@^1.0.1:
99 | version "1.0.2"
100 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
101 | dependencies:
102 | array-uniq "^1.0.1"
103 |
104 | array-uniq@^1.0.1:
105 | version "1.0.3"
106 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
107 |
108 | array-unique@^0.2.1:
109 | version "0.2.1"
110 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
111 |
112 | array.prototype.find@^2.0.1:
113 | version "2.0.3"
114 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.3.tgz#08c3ec33e32ec4bab362a2958e686ae92f59271d"
115 | dependencies:
116 | define-properties "^1.1.2"
117 | es-abstract "^1.7.0"
118 |
119 | arrify@^1.0.0, arrify@^1.0.1:
120 | version "1.0.1"
121 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
122 |
123 | asn1@~0.2.3:
124 | version "0.2.3"
125 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
126 |
127 | assert-plus@^0.2.0:
128 | version "0.2.0"
129 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
130 |
131 | assert-plus@^1.0.0:
132 | version "1.0.0"
133 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
134 |
135 | async@^1.4.0, async@^1.4.2:
136 | version "1.5.2"
137 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
138 |
139 | async@^2.1.4:
140 | version "2.1.4"
141 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
142 | dependencies:
143 | lodash "^4.14.0"
144 |
145 | async@~0.2.6:
146 | version "0.2.10"
147 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
148 |
149 | asynckit@^0.4.0:
150 | version "0.4.0"
151 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
152 |
153 | aws-sign2@~0.6.0:
154 | version "0.6.0"
155 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
156 |
157 | aws4@^1.2.1:
158 | version "1.5.0"
159 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
160 |
161 | babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
162 | version "6.22.0"
163 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
164 | dependencies:
165 | chalk "^1.1.0"
166 | esutils "^2.0.2"
167 | js-tokens "^3.0.0"
168 |
169 | babel-core@^6.0.0, babel-core@^6.22.0:
170 | version "6.22.1"
171 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648"
172 | dependencies:
173 | babel-code-frame "^6.22.0"
174 | babel-generator "^6.22.0"
175 | babel-helpers "^6.22.0"
176 | babel-messages "^6.22.0"
177 | babel-register "^6.22.0"
178 | babel-runtime "^6.22.0"
179 | babel-template "^6.22.0"
180 | babel-traverse "^6.22.1"
181 | babel-types "^6.22.0"
182 | babylon "^6.11.0"
183 | convert-source-map "^1.1.0"
184 | debug "^2.1.1"
185 | json5 "^0.5.0"
186 | lodash "^4.2.0"
187 | minimatch "^3.0.2"
188 | path-is-absolute "^1.0.0"
189 | private "^0.1.6"
190 | slash "^1.0.0"
191 | source-map "^0.5.0"
192 |
193 | babel-generator@^6.18.0, babel-generator@^6.22.0:
194 | version "6.22.0"
195 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805"
196 | dependencies:
197 | babel-messages "^6.22.0"
198 | babel-runtime "^6.22.0"
199 | babel-types "^6.22.0"
200 | detect-indent "^4.0.0"
201 | jsesc "^1.3.0"
202 | lodash "^4.2.0"
203 | source-map "^0.5.0"
204 |
205 | babel-helpers@^6.22.0:
206 | version "6.22.0"
207 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c"
208 | dependencies:
209 | babel-runtime "^6.22.0"
210 | babel-template "^6.22.0"
211 |
212 | babel-jest@^18.0.0:
213 | version "18.0.0"
214 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-18.0.0.tgz#17ebba8cb3285c906d859e8707e4e79795fb65e3"
215 | dependencies:
216 | babel-core "^6.0.0"
217 | babel-plugin-istanbul "^3.0.0"
218 | babel-preset-jest "^18.0.0"
219 |
220 | babel-messages@^6.22.0:
221 | version "6.22.0"
222 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575"
223 | dependencies:
224 | babel-runtime "^6.22.0"
225 |
226 | babel-plugin-istanbul@^3.0.0:
227 | version "3.1.2"
228 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-3.1.2.tgz#11d5abde18425ec24b5d648c7e0b5d25cd354a22"
229 | dependencies:
230 | find-up "^1.1.2"
231 | istanbul-lib-instrument "^1.4.2"
232 | object-assign "^4.1.0"
233 | test-exclude "^3.3.0"
234 |
235 | babel-plugin-jest-hoist@^18.0.0:
236 | version "18.0.0"
237 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-18.0.0.tgz#4150e70ecab560e6e7344adc849498072d34e12a"
238 |
239 | babel-preset-jest@^18.0.0:
240 | version "18.0.0"
241 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-18.0.0.tgz#84faf8ca3ec65aba7d5e3f59bbaed935ab24049e"
242 | dependencies:
243 | babel-plugin-jest-hoist "^18.0.0"
244 |
245 | babel-register@^6.22.0:
246 | version "6.22.0"
247 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63"
248 | dependencies:
249 | babel-core "^6.22.0"
250 | babel-runtime "^6.22.0"
251 | core-js "^2.4.0"
252 | home-or-tmp "^2.0.0"
253 | lodash "^4.2.0"
254 | mkdirp "^0.5.1"
255 | source-map-support "^0.4.2"
256 |
257 | babel-runtime@^6.11.6, babel-runtime@^6.22.0:
258 | version "6.22.0"
259 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611"
260 | dependencies:
261 | core-js "^2.4.0"
262 | regenerator-runtime "^0.10.0"
263 |
264 | babel-template@^6.16.0, babel-template@^6.22.0:
265 | version "6.22.0"
266 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb"
267 | dependencies:
268 | babel-runtime "^6.22.0"
269 | babel-traverse "^6.22.0"
270 | babel-types "^6.22.0"
271 | babylon "^6.11.0"
272 | lodash "^4.2.0"
273 |
274 | babel-traverse@^6.18.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1:
275 | version "6.22.1"
276 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f"
277 | dependencies:
278 | babel-code-frame "^6.22.0"
279 | babel-messages "^6.22.0"
280 | babel-runtime "^6.22.0"
281 | babel-types "^6.22.0"
282 | babylon "^6.15.0"
283 | debug "^2.2.0"
284 | globals "^9.0.0"
285 | invariant "^2.2.0"
286 | lodash "^4.2.0"
287 |
288 | babel-types@^6.15.0, babel-types@^6.18.0, babel-types@^6.22.0:
289 | version "6.22.0"
290 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db"
291 | dependencies:
292 | babel-runtime "^6.22.0"
293 | esutils "^2.0.2"
294 | lodash "^4.2.0"
295 | to-fast-properties "^1.0.1"
296 |
297 | babylon-walk@^1.0.2:
298 | version "1.0.2"
299 | resolved "https://registry.yarnpkg.com/babylon-walk/-/babylon-walk-1.0.2.tgz#3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce"
300 | dependencies:
301 | babel-runtime "^6.11.6"
302 | babel-types "^6.15.0"
303 | lodash.clone "^4.5.0"
304 |
305 | babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0:
306 | version "6.15.0"
307 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e"
308 |
309 | balanced-match@^0.4.1:
310 | version "0.4.2"
311 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
312 |
313 | bcrypt-pbkdf@^1.0.0:
314 | version "1.0.1"
315 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
316 | dependencies:
317 | tweetnacl "^0.14.3"
318 |
319 | boom@2.x.x:
320 | version "2.10.1"
321 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
322 | dependencies:
323 | hoek "2.x.x"
324 |
325 | brace-expansion@^1.0.0:
326 | version "1.1.6"
327 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
328 | dependencies:
329 | balanced-match "^0.4.1"
330 | concat-map "0.0.1"
331 |
332 | braces@^1.8.2:
333 | version "1.8.5"
334 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
335 | dependencies:
336 | expand-range "^1.8.1"
337 | preserve "^0.2.0"
338 | repeat-element "^1.1.2"
339 |
340 | browser-resolve@^1.11.2:
341 | version "1.11.2"
342 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
343 | dependencies:
344 | resolve "1.1.7"
345 |
346 | bser@1.0.2:
347 | version "1.0.2"
348 | resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
349 | dependencies:
350 | node-int64 "^0.4.0"
351 |
352 | buffer-shims@^1.0.0:
353 | version "1.0.0"
354 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
355 |
356 | builtin-modules@^1.0.0, builtin-modules@^1.1.1:
357 | version "1.1.1"
358 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
359 |
360 | caller-path@^0.1.0:
361 | version "0.1.0"
362 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
363 | dependencies:
364 | callsites "^0.2.0"
365 |
366 | callsites@^0.2.0:
367 | version "0.2.0"
368 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
369 |
370 | callsites@^2.0.0:
371 | version "2.0.0"
372 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
373 |
374 | camelcase@^1.0.2:
375 | version "1.2.1"
376 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
377 |
378 | camelcase@^3.0.0:
379 | version "3.0.0"
380 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
381 |
382 | cardinal@^1.0.0:
383 | version "1.0.0"
384 | resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9"
385 | dependencies:
386 | ansicolors "~0.2.1"
387 | redeyed "~1.0.0"
388 |
389 | caseless@~0.11.0:
390 | version "0.11.0"
391 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
392 |
393 | center-align@^0.1.1:
394 | version "0.1.3"
395 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
396 | dependencies:
397 | align-text "^0.1.3"
398 | lazy-cache "^1.0.3"
399 |
400 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
401 | version "1.1.3"
402 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
403 | dependencies:
404 | ansi-styles "^2.2.1"
405 | escape-string-regexp "^1.0.2"
406 | has-ansi "^2.0.0"
407 | strip-ansi "^3.0.0"
408 | supports-color "^2.0.0"
409 |
410 | ci-info@^1.0.0:
411 | version "1.0.0"
412 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
413 |
414 | circular-json@^0.3.1:
415 | version "0.3.1"
416 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
417 |
418 | cli-cursor@^1.0.1:
419 | version "1.0.2"
420 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
421 | dependencies:
422 | restore-cursor "^1.0.1"
423 |
424 | cli-table@^0.3.1:
425 | version "0.3.1"
426 | resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
427 | dependencies:
428 | colors "1.0.3"
429 |
430 | cli-usage@^0.1.1:
431 | version "0.1.4"
432 | resolved "https://registry.yarnpkg.com/cli-usage/-/cli-usage-0.1.4.tgz#7c01e0dc706c234b39c933838c8e20b2175776e2"
433 | dependencies:
434 | marked "^0.3.6"
435 | marked-terminal "^1.6.2"
436 |
437 | cli-width@^2.0.0:
438 | version "2.1.0"
439 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
440 |
441 | cliui@^2.1.0:
442 | version "2.1.0"
443 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
444 | dependencies:
445 | center-align "^0.1.1"
446 | right-align "^0.1.1"
447 | wordwrap "0.0.2"
448 |
449 | cliui@^3.2.0:
450 | version "3.2.0"
451 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
452 | dependencies:
453 | string-width "^1.0.1"
454 | strip-ansi "^3.0.1"
455 | wrap-ansi "^2.0.0"
456 |
457 | co@^4.6.0:
458 | version "4.6.0"
459 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
460 |
461 | code-point-at@^1.0.0:
462 | version "1.1.0"
463 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
464 |
465 | colors@1.0.3:
466 | version "1.0.3"
467 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
468 |
469 | combined-stream@^1.0.5, combined-stream@~1.0.5:
470 | version "1.0.5"
471 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
472 | dependencies:
473 | delayed-stream "~1.0.0"
474 |
475 | commander@^2.9.0:
476 | version "2.9.0"
477 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
478 | dependencies:
479 | graceful-readlink ">= 1.0.0"
480 |
481 | concat-map@0.0.1:
482 | version "0.0.1"
483 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
484 |
485 | concat-stream@^1.4.6:
486 | version "1.6.0"
487 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
488 | dependencies:
489 | inherits "^2.0.3"
490 | readable-stream "^2.2.2"
491 | typedarray "^0.0.6"
492 |
493 | contains-path@^0.1.0:
494 | version "0.1.0"
495 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
496 |
497 | content-type-parser@^1.0.1:
498 | version "1.0.1"
499 | resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
500 |
501 | convert-source-map@^1.1.0:
502 | version "1.3.0"
503 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
504 |
505 | core-js@^2.4.0:
506 | version "2.4.1"
507 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
508 |
509 | core-util-is@~1.0.0:
510 | version "1.0.2"
511 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
512 |
513 | cryptiles@2.x.x:
514 | version "2.0.5"
515 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
516 | dependencies:
517 | boom "2.x.x"
518 |
519 | cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0":
520 | version "0.3.2"
521 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
522 |
523 | "cssstyle@>= 0.2.36 < 0.3.0":
524 | version "0.2.37"
525 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
526 | dependencies:
527 | cssom "0.3.x"
528 |
529 | d@^0.1.1, d@~0.1.1:
530 | version "0.1.1"
531 | resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309"
532 | dependencies:
533 | es5-ext "~0.10.2"
534 |
535 | damerau-levenshtein@^1.0.0:
536 | version "1.0.3"
537 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2"
538 |
539 | dashdash@^1.12.0:
540 | version "1.14.1"
541 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
542 | dependencies:
543 | assert-plus "^1.0.0"
544 |
545 | debug@2.2.0:
546 | version "2.2.0"
547 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
548 | dependencies:
549 | ms "0.7.1"
550 |
551 | debug@^2.1.1, debug@^2.2.0:
552 | version "2.6.0"
553 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
554 | dependencies:
555 | ms "0.7.2"
556 |
557 | decamelize@^1.0.0, decamelize@^1.1.1:
558 | version "1.2.0"
559 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
560 |
561 | deep-is@~0.1.3:
562 | version "0.1.3"
563 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
564 |
565 | default-require-extensions@^1.0.0:
566 | version "1.0.0"
567 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
568 | dependencies:
569 | strip-bom "^2.0.0"
570 |
571 | define-properties@^1.1.2:
572 | version "1.1.2"
573 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
574 | dependencies:
575 | foreach "^2.0.5"
576 | object-keys "^1.0.8"
577 |
578 | del@^2.0.2:
579 | version "2.2.2"
580 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
581 | dependencies:
582 | globby "^5.0.0"
583 | is-path-cwd "^1.0.0"
584 | is-path-in-cwd "^1.0.0"
585 | object-assign "^4.0.1"
586 | pify "^2.0.0"
587 | pinkie-promise "^2.0.0"
588 | rimraf "^2.2.8"
589 |
590 | delayed-stream@~1.0.0:
591 | version "1.0.0"
592 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
593 |
594 | detect-indent@^4.0.0:
595 | version "4.0.0"
596 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
597 | dependencies:
598 | repeating "^2.0.0"
599 |
600 | diff@^3.0.0:
601 | version "3.2.0"
602 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
603 |
604 | doctrine@1.5.0, doctrine@^1.2.2:
605 | version "1.5.0"
606 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
607 | dependencies:
608 | esutils "^2.0.2"
609 | isarray "^1.0.0"
610 |
611 | ecc-jsbn@~0.1.1:
612 | version "0.1.1"
613 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
614 | dependencies:
615 | jsbn "~0.1.0"
616 |
617 | "errno@>=0.1.1 <0.2.0-0":
618 | version "0.1.4"
619 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
620 | dependencies:
621 | prr "~0.0.0"
622 |
623 | error-ex@^1.2.0:
624 | version "1.3.0"
625 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
626 | dependencies:
627 | is-arrayish "^0.2.1"
628 |
629 | es-abstract@^1.7.0:
630 | version "1.7.0"
631 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
632 | dependencies:
633 | es-to-primitive "^1.1.1"
634 | function-bind "^1.1.0"
635 | is-callable "^1.1.3"
636 | is-regex "^1.0.3"
637 |
638 | es-to-primitive@^1.1.1:
639 | version "1.1.1"
640 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
641 | dependencies:
642 | is-callable "^1.1.1"
643 | is-date-object "^1.0.1"
644 | is-symbol "^1.0.1"
645 |
646 | es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7:
647 | version "0.10.12"
648 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047"
649 | dependencies:
650 | es6-iterator "2"
651 | es6-symbol "~3.1"
652 |
653 | es6-iterator@2:
654 | version "2.0.0"
655 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac"
656 | dependencies:
657 | d "^0.1.1"
658 | es5-ext "^0.10.7"
659 | es6-symbol "3"
660 |
661 | es6-map@^0.1.3:
662 | version "0.1.4"
663 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897"
664 | dependencies:
665 | d "~0.1.1"
666 | es5-ext "~0.10.11"
667 | es6-iterator "2"
668 | es6-set "~0.1.3"
669 | es6-symbol "~3.1.0"
670 | event-emitter "~0.3.4"
671 |
672 | es6-set@~0.1.3:
673 | version "0.1.4"
674 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8"
675 | dependencies:
676 | d "~0.1.1"
677 | es5-ext "~0.10.11"
678 | es6-iterator "2"
679 | es6-symbol "3"
680 | event-emitter "~0.3.4"
681 |
682 | es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0:
683 | version "3.1.0"
684 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa"
685 | dependencies:
686 | d "~0.1.1"
687 | es5-ext "~0.10.11"
688 |
689 | es6-weak-map@^2.0.1:
690 | version "2.0.1"
691 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81"
692 | dependencies:
693 | d "^0.1.1"
694 | es5-ext "^0.10.8"
695 | es6-iterator "2"
696 | es6-symbol "3"
697 |
698 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
699 | version "1.0.5"
700 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
701 |
702 | escodegen@^1.6.1:
703 | version "1.8.1"
704 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
705 | dependencies:
706 | esprima "^2.7.1"
707 | estraverse "^1.9.1"
708 | esutils "^2.0.2"
709 | optionator "^0.8.1"
710 | optionalDependencies:
711 | source-map "~0.2.0"
712 |
713 | escope@^3.6.0:
714 | version "3.6.0"
715 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
716 | dependencies:
717 | es6-map "^0.1.3"
718 | es6-weak-map "^2.0.1"
719 | esrecurse "^4.1.0"
720 | estraverse "^4.1.1"
721 |
722 | eslint-config-airbnb-base@^11.0.1:
723 | version "11.0.1"
724 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.0.1.tgz#5401dba284c6b7d7c8fb1c2ee19aba018f9dfa21"
725 |
726 | eslint-config-airbnb@latest:
727 | version "14.0.0"
728 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.0.0.tgz#bfd87a71102ba3ee19c3733357000b3d5e39790f"
729 | dependencies:
730 | eslint-config-airbnb-base "^11.0.1"
731 |
732 | eslint-import-resolver-node@^0.2.0:
733 | version "0.2.3"
734 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
735 | dependencies:
736 | debug "^2.2.0"
737 | object-assign "^4.0.1"
738 | resolve "^1.1.6"
739 |
740 | eslint-module-utils@^2.0.0:
741 | version "2.0.0"
742 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce"
743 | dependencies:
744 | debug "2.2.0"
745 | pkg-dir "^1.0.0"
746 |
747 | eslint-plugin-import@^2.2.0:
748 | version "2.2.0"
749 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e"
750 | dependencies:
751 | builtin-modules "^1.1.1"
752 | contains-path "^0.1.0"
753 | debug "^2.2.0"
754 | doctrine "1.5.0"
755 | eslint-import-resolver-node "^0.2.0"
756 | eslint-module-utils "^2.0.0"
757 | has "^1.0.1"
758 | lodash.cond "^4.3.0"
759 | minimatch "^3.0.3"
760 | pkg-up "^1.0.0"
761 |
762 | eslint-plugin-jsx-a11y@^3.0.2:
763 | version "3.0.2"
764 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz#9f0eabcafde3d2a2600d96a66adb90d099e841fe"
765 | dependencies:
766 | damerau-levenshtein "^1.0.0"
767 | jsx-ast-utils "^1.0.0"
768 | object-assign "^4.0.1"
769 |
770 | eslint-plugin-react@^6.9.0:
771 | version "6.9.0"
772 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz#54c2e9906b76f9d10142030bdc34e9d6840a0bb2"
773 | dependencies:
774 | array.prototype.find "^2.0.1"
775 | doctrine "^1.2.2"
776 | jsx-ast-utils "^1.3.4"
777 |
778 | eslint@^3.14.1:
779 | version "3.14.1"
780 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.14.1.tgz#8a62175f2255109494747a1b25128d97b8eb3d97"
781 | dependencies:
782 | babel-code-frame "^6.16.0"
783 | chalk "^1.1.3"
784 | concat-stream "^1.4.6"
785 | debug "^2.1.1"
786 | doctrine "^1.2.2"
787 | escope "^3.6.0"
788 | espree "^3.3.1"
789 | estraverse "^4.2.0"
790 | esutils "^2.0.2"
791 | file-entry-cache "^2.0.0"
792 | glob "^7.0.3"
793 | globals "^9.14.0"
794 | ignore "^3.2.0"
795 | imurmurhash "^0.1.4"
796 | inquirer "^0.12.0"
797 | is-my-json-valid "^2.10.0"
798 | is-resolvable "^1.0.0"
799 | js-yaml "^3.5.1"
800 | json-stable-stringify "^1.0.0"
801 | levn "^0.3.0"
802 | lodash "^4.0.0"
803 | mkdirp "^0.5.0"
804 | natural-compare "^1.4.0"
805 | optionator "^0.8.2"
806 | path-is-inside "^1.0.1"
807 | pluralize "^1.2.1"
808 | progress "^1.1.8"
809 | require-uncached "^1.0.2"
810 | shelljs "^0.7.5"
811 | strip-bom "^3.0.0"
812 | strip-json-comments "~2.0.1"
813 | table "^3.7.8"
814 | text-table "~0.2.0"
815 | user-home "^2.0.0"
816 |
817 | espree@^3.3.1:
818 | version "3.4.0"
819 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.0.tgz#41656fa5628e042878025ef467e78f125cb86e1d"
820 | dependencies:
821 | acorn "4.0.4"
822 | acorn-jsx "^3.0.0"
823 |
824 | esprima@^2.6.0, esprima@^2.7.1:
825 | version "2.7.3"
826 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
827 |
828 | esprima@~3.0.0:
829 | version "3.0.0"
830 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9"
831 |
832 | esrecurse@^4.1.0:
833 | version "4.1.0"
834 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
835 | dependencies:
836 | estraverse "~4.1.0"
837 | object-assign "^4.0.1"
838 |
839 | estraverse@^1.9.1:
840 | version "1.9.3"
841 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
842 |
843 | estraverse@^4.1.1, estraverse@^4.2.0:
844 | version "4.2.0"
845 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
846 |
847 | estraverse@~4.1.0:
848 | version "4.1.1"
849 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
850 |
851 | esutils@^2.0.2:
852 | version "2.0.2"
853 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
854 |
855 | event-emitter@~0.3.4:
856 | version "0.3.4"
857 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5"
858 | dependencies:
859 | d "~0.1.1"
860 | es5-ext "~0.10.7"
861 |
862 | exec-sh@^0.2.0:
863 | version "0.2.0"
864 | resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10"
865 | dependencies:
866 | merge "^1.1.3"
867 |
868 | exit-hook@^1.0.0:
869 | version "1.1.1"
870 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
871 |
872 | expand-brackets@^0.1.4:
873 | version "0.1.5"
874 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
875 | dependencies:
876 | is-posix-bracket "^0.1.0"
877 |
878 | expand-range@^1.8.1:
879 | version "1.8.2"
880 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
881 | dependencies:
882 | fill-range "^2.1.0"
883 |
884 | extend@~3.0.0:
885 | version "3.0.0"
886 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
887 |
888 | extglob@^0.3.1:
889 | version "0.3.2"
890 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
891 | dependencies:
892 | is-extglob "^1.0.0"
893 |
894 | extsprintf@1.0.2:
895 | version "1.0.2"
896 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
897 |
898 | fast-levenshtein@~2.0.4:
899 | version "2.0.6"
900 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
901 |
902 | fb-watchman@^1.8.0, fb-watchman@^1.9.0:
903 | version "1.9.2"
904 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383"
905 | dependencies:
906 | bser "1.0.2"
907 |
908 | figures@^1.3.5:
909 | version "1.7.0"
910 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
911 | dependencies:
912 | escape-string-regexp "^1.0.5"
913 | object-assign "^4.1.0"
914 |
915 | file-entry-cache@^2.0.0:
916 | version "2.0.0"
917 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
918 | dependencies:
919 | flat-cache "^1.2.1"
920 | object-assign "^4.0.1"
921 |
922 | filename-regex@^2.0.0:
923 | version "2.0.0"
924 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
925 |
926 | fileset@^2.0.2:
927 | version "2.0.3"
928 | resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
929 | dependencies:
930 | glob "^7.0.3"
931 | minimatch "^3.0.3"
932 |
933 | fill-range@^2.1.0:
934 | version "2.2.3"
935 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
936 | dependencies:
937 | is-number "^2.1.0"
938 | isobject "^2.0.0"
939 | randomatic "^1.1.3"
940 | repeat-element "^1.1.2"
941 | repeat-string "^1.5.2"
942 |
943 | find-up@^1.0.0, find-up@^1.1.2:
944 | version "1.1.2"
945 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
946 | dependencies:
947 | path-exists "^2.0.0"
948 | pinkie-promise "^2.0.0"
949 |
950 | flat-cache@^1.2.1:
951 | version "1.2.2"
952 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
953 | dependencies:
954 | circular-json "^0.3.1"
955 | del "^2.0.2"
956 | graceful-fs "^4.1.2"
957 | write "^0.2.1"
958 |
959 | for-in@^0.1.5:
960 | version "0.1.6"
961 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
962 |
963 | for-own@^0.1.4:
964 | version "0.1.4"
965 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072"
966 | dependencies:
967 | for-in "^0.1.5"
968 |
969 | foreach@^2.0.5:
970 | version "2.0.5"
971 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
972 |
973 | forever-agent@~0.6.1:
974 | version "0.6.1"
975 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
976 |
977 | form-data@~2.1.1:
978 | version "2.1.2"
979 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
980 | dependencies:
981 | asynckit "^0.4.0"
982 | combined-stream "^1.0.5"
983 | mime-types "^2.1.12"
984 |
985 | fs.realpath@^1.0.0:
986 | version "1.0.0"
987 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
988 |
989 | function-bind@^1.0.2, function-bind@^1.1.0:
990 | version "1.1.0"
991 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
992 |
993 | generate-function@^2.0.0:
994 | version "2.0.0"
995 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
996 |
997 | generate-object-property@^1.1.0:
998 | version "1.2.0"
999 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
1000 | dependencies:
1001 | is-property "^1.0.0"
1002 |
1003 | get-caller-file@^1.0.1:
1004 | version "1.0.2"
1005 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
1006 |
1007 | getpass@^0.1.1:
1008 | version "0.1.6"
1009 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
1010 | dependencies:
1011 | assert-plus "^1.0.0"
1012 |
1013 | glob-base@^0.3.0:
1014 | version "0.3.0"
1015 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1016 | dependencies:
1017 | glob-parent "^2.0.0"
1018 | is-glob "^2.0.0"
1019 |
1020 | glob-parent@^2.0.0:
1021 | version "2.0.0"
1022 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1023 | dependencies:
1024 | is-glob "^2.0.0"
1025 |
1026 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
1027 | version "7.1.1"
1028 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
1029 | dependencies:
1030 | fs.realpath "^1.0.0"
1031 | inflight "^1.0.4"
1032 | inherits "2"
1033 | minimatch "^3.0.2"
1034 | once "^1.3.0"
1035 | path-is-absolute "^1.0.0"
1036 |
1037 | globals@^9.0.0, globals@^9.14.0:
1038 | version "9.14.0"
1039 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034"
1040 |
1041 | globby@^5.0.0:
1042 | version "5.0.0"
1043 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
1044 | dependencies:
1045 | array-union "^1.0.1"
1046 | arrify "^1.0.0"
1047 | glob "^7.0.3"
1048 | object-assign "^4.0.1"
1049 | pify "^2.0.0"
1050 | pinkie-promise "^2.0.0"
1051 |
1052 | graceful-fs@^4.1.2, graceful-fs@^4.1.6:
1053 | version "4.1.11"
1054 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1055 |
1056 | "graceful-readlink@>= 1.0.0":
1057 | version "1.0.1"
1058 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
1059 |
1060 | growly@^1.2.0:
1061 | version "1.3.0"
1062 | resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
1063 |
1064 | handlebars@^4.0.3:
1065 | version "4.0.6"
1066 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7"
1067 | dependencies:
1068 | async "^1.4.0"
1069 | optimist "^0.6.1"
1070 | source-map "^0.4.4"
1071 | optionalDependencies:
1072 | uglify-js "^2.6"
1073 |
1074 | har-validator@~2.0.6:
1075 | version "2.0.6"
1076 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
1077 | dependencies:
1078 | chalk "^1.1.1"
1079 | commander "^2.9.0"
1080 | is-my-json-valid "^2.12.4"
1081 | pinkie-promise "^2.0.0"
1082 |
1083 | has-ansi@^2.0.0:
1084 | version "2.0.0"
1085 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1086 | dependencies:
1087 | ansi-regex "^2.0.0"
1088 |
1089 | has-flag@^1.0.0:
1090 | version "1.0.0"
1091 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
1092 |
1093 | has@^1.0.1:
1094 | version "1.0.1"
1095 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
1096 | dependencies:
1097 | function-bind "^1.0.2"
1098 |
1099 | hawk@~3.1.3:
1100 | version "3.1.3"
1101 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1102 | dependencies:
1103 | boom "2.x.x"
1104 | cryptiles "2.x.x"
1105 | hoek "2.x.x"
1106 | sntp "1.x.x"
1107 |
1108 | hoek@2.x.x:
1109 | version "2.16.3"
1110 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1111 |
1112 | home-or-tmp@^2.0.0:
1113 | version "2.0.0"
1114 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
1115 | dependencies:
1116 | os-homedir "^1.0.0"
1117 | os-tmpdir "^1.0.1"
1118 |
1119 | hosted-git-info@^2.1.4:
1120 | version "2.1.5"
1121 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
1122 |
1123 | html-encoding-sniffer@^1.0.1:
1124 | version "1.0.1"
1125 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da"
1126 | dependencies:
1127 | whatwg-encoding "^1.0.1"
1128 |
1129 | http-signature@~1.1.0:
1130 | version "1.1.1"
1131 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1132 | dependencies:
1133 | assert-plus "^0.2.0"
1134 | jsprim "^1.2.2"
1135 | sshpk "^1.7.0"
1136 |
1137 | iconv-lite@0.4.13:
1138 | version "0.4.13"
1139 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
1140 |
1141 | iconv-lite@^0.4.13:
1142 | version "0.4.15"
1143 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
1144 |
1145 | ignore@^3.2.0:
1146 | version "3.2.2"
1147 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.2.tgz#1c51e1ef53bab6ddc15db4d9ac4ec139eceb3410"
1148 |
1149 | imurmurhash@^0.1.4:
1150 | version "0.1.4"
1151 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1152 |
1153 | inflight@^1.0.4:
1154 | version "1.0.6"
1155 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1156 | dependencies:
1157 | once "^1.3.0"
1158 | wrappy "1"
1159 |
1160 | inherits@2, inherits@^2.0.3, inherits@~2.0.1:
1161 | version "2.0.3"
1162 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1163 |
1164 | inquirer@^0.12.0:
1165 | version "0.12.0"
1166 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
1167 | dependencies:
1168 | ansi-escapes "^1.1.0"
1169 | ansi-regex "^2.0.0"
1170 | chalk "^1.0.0"
1171 | cli-cursor "^1.0.1"
1172 | cli-width "^2.0.0"
1173 | figures "^1.3.5"
1174 | lodash "^4.3.0"
1175 | readline2 "^1.0.1"
1176 | run-async "^0.1.0"
1177 | rx-lite "^3.1.2"
1178 | string-width "^1.0.1"
1179 | strip-ansi "^3.0.0"
1180 | through "^2.3.6"
1181 |
1182 | interpret@^1.0.0:
1183 | version "1.0.1"
1184 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
1185 |
1186 | invariant@^2.2.0:
1187 | version "2.2.2"
1188 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
1189 | dependencies:
1190 | loose-envify "^1.0.0"
1191 |
1192 | invert-kv@^1.0.0:
1193 | version "1.0.0"
1194 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
1195 |
1196 | is-arrayish@^0.2.1:
1197 | version "0.2.1"
1198 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1199 |
1200 | is-buffer@^1.0.2:
1201 | version "1.1.4"
1202 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
1203 |
1204 | is-builtin-module@^1.0.0:
1205 | version "1.0.0"
1206 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1207 | dependencies:
1208 | builtin-modules "^1.0.0"
1209 |
1210 | is-callable@^1.1.1, is-callable@^1.1.3:
1211 | version "1.1.3"
1212 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
1213 |
1214 | is-ci@^1.0.9:
1215 | version "1.0.10"
1216 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
1217 | dependencies:
1218 | ci-info "^1.0.0"
1219 |
1220 | is-date-object@^1.0.1:
1221 | version "1.0.1"
1222 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
1223 |
1224 | is-dotfile@^1.0.0:
1225 | version "1.0.2"
1226 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
1227 |
1228 | is-equal-shallow@^0.1.3:
1229 | version "0.1.3"
1230 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1231 | dependencies:
1232 | is-primitive "^2.0.0"
1233 |
1234 | is-extendable@^0.1.1:
1235 | version "0.1.1"
1236 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1237 |
1238 | is-extglob@^1.0.0:
1239 | version "1.0.0"
1240 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1241 |
1242 | is-finite@^1.0.0:
1243 | version "1.0.2"
1244 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
1245 | dependencies:
1246 | number-is-nan "^1.0.0"
1247 |
1248 | is-fullwidth-code-point@^1.0.0:
1249 | version "1.0.0"
1250 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1251 | dependencies:
1252 | number-is-nan "^1.0.0"
1253 |
1254 | is-fullwidth-code-point@^2.0.0:
1255 | version "2.0.0"
1256 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1257 |
1258 | is-glob@^2.0.0, is-glob@^2.0.1:
1259 | version "2.0.1"
1260 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1261 | dependencies:
1262 | is-extglob "^1.0.0"
1263 |
1264 | is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
1265 | version "2.15.0"
1266 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b"
1267 | dependencies:
1268 | generate-function "^2.0.0"
1269 | generate-object-property "^1.1.0"
1270 | jsonpointer "^4.0.0"
1271 | xtend "^4.0.0"
1272 |
1273 | is-number@^2.0.2, is-number@^2.1.0:
1274 | version "2.1.0"
1275 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1276 | dependencies:
1277 | kind-of "^3.0.2"
1278 |
1279 | is-path-cwd@^1.0.0:
1280 | version "1.0.0"
1281 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
1282 |
1283 | is-path-in-cwd@^1.0.0:
1284 | version "1.0.0"
1285 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
1286 | dependencies:
1287 | is-path-inside "^1.0.0"
1288 |
1289 | is-path-inside@^1.0.0:
1290 | version "1.0.0"
1291 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
1292 | dependencies:
1293 | path-is-inside "^1.0.1"
1294 |
1295 | is-posix-bracket@^0.1.0:
1296 | version "0.1.1"
1297 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1298 |
1299 | is-primitive@^2.0.0:
1300 | version "2.0.0"
1301 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1302 |
1303 | is-property@^1.0.0:
1304 | version "1.0.2"
1305 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
1306 |
1307 | is-regex@^1.0.3:
1308 | version "1.0.3"
1309 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"
1310 |
1311 | is-resolvable@^1.0.0:
1312 | version "1.0.0"
1313 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
1314 | dependencies:
1315 | tryit "^1.0.1"
1316 |
1317 | is-symbol@^1.0.1:
1318 | version "1.0.1"
1319 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
1320 |
1321 | is-typedarray@~1.0.0:
1322 | version "1.0.0"
1323 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1324 |
1325 | is-utf8@^0.2.0:
1326 | version "0.2.1"
1327 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
1328 |
1329 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
1330 | version "1.0.0"
1331 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1332 |
1333 | isexe@^1.1.1:
1334 | version "1.1.2"
1335 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0"
1336 |
1337 | isobject@^2.0.0:
1338 | version "2.1.0"
1339 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1340 | dependencies:
1341 | isarray "1.0.0"
1342 |
1343 | isstream@~0.1.2:
1344 | version "0.1.2"
1345 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1346 |
1347 | istanbul-api@^1.1.0-alpha.1:
1348 | version "1.1.1"
1349 | resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.1.tgz#d36e2f1560d1a43ce304c4ff7338182de61c8f73"
1350 | dependencies:
1351 | async "^2.1.4"
1352 | fileset "^2.0.2"
1353 | istanbul-lib-coverage "^1.0.0"
1354 | istanbul-lib-hook "^1.0.0"
1355 | istanbul-lib-instrument "^1.3.0"
1356 | istanbul-lib-report "^1.0.0-alpha.3"
1357 | istanbul-lib-source-maps "^1.1.0"
1358 | istanbul-reports "^1.0.0"
1359 | js-yaml "^3.7.0"
1360 | mkdirp "^0.5.1"
1361 | once "^1.4.0"
1362 |
1363 | istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0:
1364 | version "1.0.1"
1365 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz#f263efb519c051c5f1f3343034fc40e7b43ff212"
1366 |
1367 | istanbul-lib-hook@^1.0.0:
1368 | version "1.0.0"
1369 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5"
1370 | dependencies:
1371 | append-transform "^0.4.0"
1372 |
1373 | istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.3.0, istanbul-lib-instrument@^1.4.2:
1374 | version "1.4.2"
1375 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.4.2.tgz#0e2fdfac93c1dabf2e31578637dc78a19089f43e"
1376 | dependencies:
1377 | babel-generator "^6.18.0"
1378 | babel-template "^6.16.0"
1379 | babel-traverse "^6.18.0"
1380 | babel-types "^6.18.0"
1381 | babylon "^6.13.0"
1382 | istanbul-lib-coverage "^1.0.0"
1383 | semver "^5.3.0"
1384 |
1385 | istanbul-lib-report@^1.0.0-alpha.3:
1386 | version "1.0.0-alpha.3"
1387 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af"
1388 | dependencies:
1389 | async "^1.4.2"
1390 | istanbul-lib-coverage "^1.0.0-alpha"
1391 | mkdirp "^0.5.1"
1392 | path-parse "^1.0.5"
1393 | rimraf "^2.4.3"
1394 | supports-color "^3.1.2"
1395 |
1396 | istanbul-lib-source-maps@^1.1.0:
1397 | version "1.1.0"
1398 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.0.tgz#9d429218f35b823560ea300a96ff0c3bbdab785f"
1399 | dependencies:
1400 | istanbul-lib-coverage "^1.0.0-alpha.0"
1401 | mkdirp "^0.5.1"
1402 | rimraf "^2.4.4"
1403 | source-map "^0.5.3"
1404 |
1405 | istanbul-reports@^1.0.0:
1406 | version "1.0.1"
1407 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.1.tgz#9a17176bc4a6cbebdae52b2f15961d52fa623fbc"
1408 | dependencies:
1409 | handlebars "^4.0.3"
1410 |
1411 | jest-changed-files@^17.0.2:
1412 | version "17.0.2"
1413 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-17.0.2.tgz#f5657758736996f590a51b87e5c9369d904ba7b7"
1414 |
1415 | jest-cli@^18.1.0:
1416 | version "18.1.0"
1417 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-18.1.0.tgz#5ead36ecad420817c2c9baa2aa7574f63257b3d6"
1418 | dependencies:
1419 | ansi-escapes "^1.4.0"
1420 | callsites "^2.0.0"
1421 | chalk "^1.1.1"
1422 | graceful-fs "^4.1.6"
1423 | is-ci "^1.0.9"
1424 | istanbul-api "^1.1.0-alpha.1"
1425 | istanbul-lib-coverage "^1.0.0"
1426 | istanbul-lib-instrument "^1.1.1"
1427 | jest-changed-files "^17.0.2"
1428 | jest-config "^18.1.0"
1429 | jest-environment-jsdom "^18.1.0"
1430 | jest-file-exists "^17.0.0"
1431 | jest-haste-map "^18.1.0"
1432 | jest-jasmine2 "^18.1.0"
1433 | jest-mock "^18.0.0"
1434 | jest-resolve "^18.1.0"
1435 | jest-resolve-dependencies "^18.1.0"
1436 | jest-runtime "^18.1.0"
1437 | jest-snapshot "^18.1.0"
1438 | jest-util "^18.1.0"
1439 | json-stable-stringify "^1.0.0"
1440 | node-notifier "^4.6.1"
1441 | sane "~1.4.1"
1442 | strip-ansi "^3.0.1"
1443 | throat "^3.0.0"
1444 | which "^1.1.1"
1445 | worker-farm "^1.3.1"
1446 | yargs "^6.3.0"
1447 |
1448 | jest-config@^18.1.0:
1449 | version "18.1.0"
1450 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-18.1.0.tgz#6111740a6d48aab86ff5a9e6ab0b98bd993b6ff4"
1451 | dependencies:
1452 | chalk "^1.1.1"
1453 | jest-environment-jsdom "^18.1.0"
1454 | jest-environment-node "^18.1.0"
1455 | jest-jasmine2 "^18.1.0"
1456 | jest-mock "^18.0.0"
1457 | jest-resolve "^18.1.0"
1458 | jest-util "^18.1.0"
1459 | json-stable-stringify "^1.0.0"
1460 |
1461 | jest-diff@^18.1.0:
1462 | version "18.1.0"
1463 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-18.1.0.tgz#4ff79e74dd988c139195b365dc65d87f606f4803"
1464 | dependencies:
1465 | chalk "^1.1.3"
1466 | diff "^3.0.0"
1467 | jest-matcher-utils "^18.1.0"
1468 | pretty-format "^18.1.0"
1469 |
1470 | jest-environment-jsdom@^18.1.0:
1471 | version "18.1.0"
1472 | resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-18.1.0.tgz#18b42f0c4ea2bae9f36cab3639b1e8f8c384e24e"
1473 | dependencies:
1474 | jest-mock "^18.0.0"
1475 | jest-util "^18.1.0"
1476 | jsdom "^9.9.1"
1477 |
1478 | jest-environment-node@^18.1.0:
1479 | version "18.1.0"
1480 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-18.1.0.tgz#4d6797572c8dda99acf5fae696eb62945547c779"
1481 | dependencies:
1482 | jest-mock "^18.0.0"
1483 | jest-util "^18.1.0"
1484 |
1485 | jest-file-exists@^17.0.0:
1486 | version "17.0.0"
1487 | resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-17.0.0.tgz#7f63eb73a1c43a13f461be261768b45af2cdd169"
1488 |
1489 | jest-haste-map@^18.1.0:
1490 | version "18.1.0"
1491 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-18.1.0.tgz#06839c74b770a40c1a106968851df8d281c08375"
1492 | dependencies:
1493 | fb-watchman "^1.9.0"
1494 | graceful-fs "^4.1.6"
1495 | micromatch "^2.3.11"
1496 | sane "~1.4.1"
1497 | worker-farm "^1.3.1"
1498 |
1499 | jest-jasmine2@^18.1.0:
1500 | version "18.1.0"
1501 | resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-18.1.0.tgz#094e104c2c189708766c77263bb2aecb5860a80b"
1502 | dependencies:
1503 | graceful-fs "^4.1.6"
1504 | jest-matcher-utils "^18.1.0"
1505 | jest-matchers "^18.1.0"
1506 | jest-snapshot "^18.1.0"
1507 | jest-util "^18.1.0"
1508 |
1509 | jest-matcher-utils@^18.1.0:
1510 | version "18.1.0"
1511 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-18.1.0.tgz#1ac4651955ee2a60cef1e7fcc98cdfd773c0f932"
1512 | dependencies:
1513 | chalk "^1.1.3"
1514 | pretty-format "^18.1.0"
1515 |
1516 | jest-matchers@^18.1.0:
1517 | version "18.1.0"
1518 | resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-18.1.0.tgz#0341484bf87a1fd0bac0a4d2c899e2b77a3f1ead"
1519 | dependencies:
1520 | jest-diff "^18.1.0"
1521 | jest-matcher-utils "^18.1.0"
1522 | jest-util "^18.1.0"
1523 | pretty-format "^18.1.0"
1524 |
1525 | jest-mock@^18.0.0:
1526 | version "18.0.0"
1527 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-18.0.0.tgz#5c248846ea33fa558b526f5312ab4a6765e489b3"
1528 |
1529 | jest-resolve-dependencies@^18.1.0:
1530 | version "18.1.0"
1531 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-18.1.0.tgz#8134fb5caf59c9ed842fe0152ab01c52711f1bbb"
1532 | dependencies:
1533 | jest-file-exists "^17.0.0"
1534 | jest-resolve "^18.1.0"
1535 |
1536 | jest-resolve@^18.1.0:
1537 | version "18.1.0"
1538 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-18.1.0.tgz#6800accb536658c906cd5e29de412b1ab9ac249b"
1539 | dependencies:
1540 | browser-resolve "^1.11.2"
1541 | jest-file-exists "^17.0.0"
1542 | jest-haste-map "^18.1.0"
1543 | resolve "^1.2.0"
1544 |
1545 | jest-runtime@^18.1.0:
1546 | version "18.1.0"
1547 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-18.1.0.tgz#3abfd687175b21fc3b85a2b8064399e997859922"
1548 | dependencies:
1549 | babel-core "^6.0.0"
1550 | babel-jest "^18.0.0"
1551 | babel-plugin-istanbul "^3.0.0"
1552 | chalk "^1.1.3"
1553 | graceful-fs "^4.1.6"
1554 | jest-config "^18.1.0"
1555 | jest-file-exists "^17.0.0"
1556 | jest-haste-map "^18.1.0"
1557 | jest-mock "^18.0.0"
1558 | jest-resolve "^18.1.0"
1559 | jest-snapshot "^18.1.0"
1560 | jest-util "^18.1.0"
1561 | json-stable-stringify "^1.0.0"
1562 | micromatch "^2.3.11"
1563 | yargs "^6.3.0"
1564 |
1565 | jest-snapshot@^18.1.0:
1566 | version "18.1.0"
1567 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-18.1.0.tgz#55b96d2ee639c9bce76f87f2a3fd40b71c7a5916"
1568 | dependencies:
1569 | jest-diff "^18.1.0"
1570 | jest-file-exists "^17.0.0"
1571 | jest-matcher-utils "^18.1.0"
1572 | jest-util "^18.1.0"
1573 | natural-compare "^1.4.0"
1574 | pretty-format "^18.1.0"
1575 |
1576 | jest-util@^18.1.0:
1577 | version "18.1.0"
1578 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-18.1.0.tgz#3a99c32114ab17f84be094382527006e6d4bfc6a"
1579 | dependencies:
1580 | chalk "^1.1.1"
1581 | diff "^3.0.0"
1582 | graceful-fs "^4.1.6"
1583 | jest-file-exists "^17.0.0"
1584 | jest-mock "^18.0.0"
1585 | mkdirp "^0.5.1"
1586 |
1587 | jest@^18.1.0:
1588 | version "18.1.0"
1589 | resolved "https://registry.yarnpkg.com/jest/-/jest-18.1.0.tgz#bcebf1e203dee5c2ad2091c805300a343d9e6c7d"
1590 | dependencies:
1591 | jest-cli "^18.1.0"
1592 |
1593 | jodid25519@^1.0.0:
1594 | version "1.0.2"
1595 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
1596 | dependencies:
1597 | jsbn "~0.1.0"
1598 |
1599 | js-tokens@^3.0.0:
1600 | version "3.0.1"
1601 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
1602 |
1603 | js-yaml@^3.5.1, js-yaml@^3.7.0:
1604 | version "3.7.0"
1605 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
1606 | dependencies:
1607 | argparse "^1.0.7"
1608 | esprima "^2.6.0"
1609 |
1610 | jsbn@~0.1.0:
1611 | version "0.1.0"
1612 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
1613 |
1614 | jsdom@^9.9.1:
1615 | version "9.9.1"
1616 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.9.1.tgz#84f3972ad394ab963233af8725211bce4d01bfd5"
1617 | dependencies:
1618 | abab "^1.0.0"
1619 | acorn "^2.4.0"
1620 | acorn-globals "^1.0.4"
1621 | array-equal "^1.0.0"
1622 | content-type-parser "^1.0.1"
1623 | cssom ">= 0.3.0 < 0.4.0"
1624 | cssstyle ">= 0.2.36 < 0.3.0"
1625 | escodegen "^1.6.1"
1626 | html-encoding-sniffer "^1.0.1"
1627 | iconv-lite "^0.4.13"
1628 | nwmatcher ">= 1.3.9 < 2.0.0"
1629 | parse5 "^1.5.1"
1630 | request "^2.55.0"
1631 | sax "^1.1.4"
1632 | symbol-tree ">= 3.1.0 < 4.0.0"
1633 | tough-cookie "^2.3.1"
1634 | webidl-conversions "^3.0.1"
1635 | whatwg-encoding "^1.0.1"
1636 | whatwg-url "^4.1.0"
1637 | xml-name-validator ">= 2.0.1 < 3.0.0"
1638 |
1639 | jsesc@^1.3.0:
1640 | version "1.3.0"
1641 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
1642 |
1643 | json-schema@0.2.3:
1644 | version "0.2.3"
1645 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1646 |
1647 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
1648 | version "1.0.1"
1649 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1650 | dependencies:
1651 | jsonify "~0.0.0"
1652 |
1653 | json-stringify-safe@~5.0.1:
1654 | version "5.0.1"
1655 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1656 |
1657 | json5@^0.5.0:
1658 | version "0.5.1"
1659 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
1660 |
1661 | jsonify@~0.0.0:
1662 | version "0.0.0"
1663 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1664 |
1665 | jsonpointer@^4.0.0:
1666 | version "4.0.1"
1667 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
1668 |
1669 | jsprim@^1.2.2:
1670 | version "1.3.1"
1671 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
1672 | dependencies:
1673 | extsprintf "1.0.2"
1674 | json-schema "0.2.3"
1675 | verror "1.3.6"
1676 |
1677 | jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4:
1678 | version "1.3.5"
1679 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.5.tgz#9ba6297198d9f754594d62e59496ffb923778dd4"
1680 | dependencies:
1681 | acorn-jsx "^3.0.1"
1682 | object-assign "^4.1.0"
1683 |
1684 | kind-of@^3.0.2:
1685 | version "3.1.0"
1686 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
1687 | dependencies:
1688 | is-buffer "^1.0.2"
1689 |
1690 | lazy-cache@^1.0.3:
1691 | version "1.0.4"
1692 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
1693 |
1694 | lcid@^1.0.0:
1695 | version "1.0.0"
1696 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
1697 | dependencies:
1698 | invert-kv "^1.0.0"
1699 |
1700 | levn@^0.3.0, levn@~0.3.0:
1701 | version "0.3.0"
1702 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
1703 | dependencies:
1704 | prelude-ls "~1.1.2"
1705 | type-check "~0.3.2"
1706 |
1707 | load-json-file@^1.0.0:
1708 | version "1.1.0"
1709 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
1710 | dependencies:
1711 | graceful-fs "^4.1.2"
1712 | parse-json "^2.2.0"
1713 | pify "^2.0.0"
1714 | pinkie-promise "^2.0.0"
1715 | strip-bom "^2.0.0"
1716 |
1717 | lodash._arraycopy@^3.0.0:
1718 | version "3.0.0"
1719 | resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
1720 |
1721 | lodash._arrayeach@^3.0.0:
1722 | version "3.0.0"
1723 | resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
1724 |
1725 | lodash._baseassign@^3.0.0:
1726 | version "3.2.0"
1727 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
1728 | dependencies:
1729 | lodash._basecopy "^3.0.0"
1730 | lodash.keys "^3.0.0"
1731 |
1732 | lodash._baseclone@^3.0.0:
1733 | version "3.3.0"
1734 | resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7"
1735 | dependencies:
1736 | lodash._arraycopy "^3.0.0"
1737 | lodash._arrayeach "^3.0.0"
1738 | lodash._baseassign "^3.0.0"
1739 | lodash._basefor "^3.0.0"
1740 | lodash.isarray "^3.0.0"
1741 | lodash.keys "^3.0.0"
1742 |
1743 | lodash._basecopy@^3.0.0:
1744 | version "3.0.1"
1745 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
1746 |
1747 | lodash._basefor@^3.0.0:
1748 | version "3.0.3"
1749 | resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
1750 |
1751 | lodash._bindcallback@^3.0.0:
1752 | version "3.0.1"
1753 | resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
1754 |
1755 | lodash._getnative@^3.0.0:
1756 | version "3.9.1"
1757 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
1758 |
1759 | lodash.assign@^4.2.0:
1760 | version "4.2.0"
1761 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
1762 |
1763 | lodash.clone@^4.5.0:
1764 | version "4.5.0"
1765 | resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6"
1766 |
1767 | lodash.clonedeep@^3.0.0:
1768 | version "3.0.2"
1769 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db"
1770 | dependencies:
1771 | lodash._baseclone "^3.0.0"
1772 | lodash._bindcallback "^3.0.0"
1773 |
1774 | lodash.cond@^4.3.0:
1775 | version "4.5.2"
1776 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
1777 |
1778 | lodash.isarguments@^3.0.0:
1779 | version "3.1.0"
1780 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
1781 |
1782 | lodash.isarray@^3.0.0:
1783 | version "3.0.4"
1784 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
1785 |
1786 | lodash.keys@^3.0.0:
1787 | version "3.1.2"
1788 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
1789 | dependencies:
1790 | lodash._getnative "^3.0.0"
1791 | lodash.isarguments "^3.0.0"
1792 | lodash.isarray "^3.0.0"
1793 |
1794 | lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0:
1795 | version "4.17.4"
1796 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1797 |
1798 | longest@^1.0.1:
1799 | version "1.0.1"
1800 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
1801 |
1802 | loose-envify@^1.0.0:
1803 | version "1.3.1"
1804 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
1805 | dependencies:
1806 | js-tokens "^3.0.0"
1807 |
1808 | makeerror@1.0.x:
1809 | version "1.0.11"
1810 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
1811 | dependencies:
1812 | tmpl "1.0.x"
1813 |
1814 | marked-terminal@^1.6.2:
1815 | version "1.7.0"
1816 | resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904"
1817 | dependencies:
1818 | cardinal "^1.0.0"
1819 | chalk "^1.1.3"
1820 | cli-table "^0.3.1"
1821 | lodash.assign "^4.2.0"
1822 | node-emoji "^1.4.1"
1823 |
1824 | marked@^0.3.6:
1825 | version "0.3.6"
1826 | resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7"
1827 |
1828 | merge@^1.1.3:
1829 | version "1.2.0"
1830 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
1831 |
1832 | micromatch@^2.3.11:
1833 | version "2.3.11"
1834 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1835 | dependencies:
1836 | arr-diff "^2.0.0"
1837 | array-unique "^0.2.1"
1838 | braces "^1.8.2"
1839 | expand-brackets "^0.1.4"
1840 | extglob "^0.3.1"
1841 | filename-regex "^2.0.0"
1842 | is-extglob "^1.0.0"
1843 | is-glob "^2.0.1"
1844 | kind-of "^3.0.2"
1845 | normalize-path "^2.0.1"
1846 | object.omit "^2.0.0"
1847 | parse-glob "^3.0.4"
1848 | regex-cache "^0.4.2"
1849 |
1850 | mime-db@~1.26.0:
1851 | version "1.26.0"
1852 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff"
1853 |
1854 | mime-types@^2.1.12, mime-types@~2.1.7:
1855 | version "2.1.14"
1856 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"
1857 | dependencies:
1858 | mime-db "~1.26.0"
1859 |
1860 | minimatch@^3.0.2, minimatch@^3.0.3:
1861 | version "3.0.3"
1862 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
1863 | dependencies:
1864 | brace-expansion "^1.0.0"
1865 |
1866 | minimist@0.0.8, minimist@~0.0.1:
1867 | version "0.0.8"
1868 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1869 |
1870 | minimist@^1.1.1:
1871 | version "1.2.0"
1872 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1873 |
1874 | mkdirp@^0.5.0, mkdirp@^0.5.1:
1875 | version "0.5.1"
1876 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1877 | dependencies:
1878 | minimist "0.0.8"
1879 |
1880 | ms@0.7.1:
1881 | version "0.7.1"
1882 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
1883 |
1884 | ms@0.7.2:
1885 | version "0.7.2"
1886 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
1887 |
1888 | mute-stream@0.0.5:
1889 | version "0.0.5"
1890 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
1891 |
1892 | natural-compare@^1.4.0:
1893 | version "1.4.0"
1894 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1895 |
1896 | node-emoji@^1.4.1:
1897 | version "1.5.1"
1898 | resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1"
1899 | dependencies:
1900 | string.prototype.codepointat "^0.2.0"
1901 |
1902 | node-int64@^0.4.0:
1903 | version "0.4.0"
1904 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
1905 |
1906 | node-notifier@^4.6.1:
1907 | version "4.6.1"
1908 | resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-4.6.1.tgz#056d14244f3dcc1ceadfe68af9cff0c5473a33f3"
1909 | dependencies:
1910 | cli-usage "^0.1.1"
1911 | growly "^1.2.0"
1912 | lodash.clonedeep "^3.0.0"
1913 | minimist "^1.1.1"
1914 | semver "^5.1.0"
1915 | shellwords "^0.1.0"
1916 | which "^1.0.5"
1917 |
1918 | normalize-package-data@^2.3.2:
1919 | version "2.3.5"
1920 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df"
1921 | dependencies:
1922 | hosted-git-info "^2.1.4"
1923 | is-builtin-module "^1.0.0"
1924 | semver "2 || 3 || 4 || 5"
1925 | validate-npm-package-license "^3.0.1"
1926 |
1927 | normalize-path@^2.0.1:
1928 | version "2.0.1"
1929 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
1930 |
1931 | number-is-nan@^1.0.0:
1932 | version "1.0.1"
1933 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1934 |
1935 | "nwmatcher@>= 1.3.9 < 2.0.0":
1936 | version "1.3.9"
1937 | resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
1938 |
1939 | oauth-sign@~0.8.1:
1940 | version "0.8.2"
1941 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
1942 |
1943 | object-assign@^4.0.1, object-assign@^4.1.0:
1944 | version "4.1.1"
1945 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1946 |
1947 | object-keys@^1.0.8:
1948 | version "1.0.11"
1949 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
1950 |
1951 | object.omit@^2.0.0:
1952 | version "2.0.1"
1953 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
1954 | dependencies:
1955 | for-own "^0.1.4"
1956 | is-extendable "^0.1.1"
1957 |
1958 | once@^1.3.0, once@^1.4.0:
1959 | version "1.4.0"
1960 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1961 | dependencies:
1962 | wrappy "1"
1963 |
1964 | onetime@^1.0.0:
1965 | version "1.1.0"
1966 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
1967 |
1968 | optimist@^0.6.1:
1969 | version "0.6.1"
1970 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
1971 | dependencies:
1972 | minimist "~0.0.1"
1973 | wordwrap "~0.0.2"
1974 |
1975 | optionator@^0.8.1, optionator@^0.8.2:
1976 | version "0.8.2"
1977 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
1978 | dependencies:
1979 | deep-is "~0.1.3"
1980 | fast-levenshtein "~2.0.4"
1981 | levn "~0.3.0"
1982 | prelude-ls "~1.1.2"
1983 | type-check "~0.3.2"
1984 | wordwrap "~1.0.0"
1985 |
1986 | os-homedir@^1.0.0:
1987 | version "1.0.2"
1988 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1989 |
1990 | os-locale@^1.4.0:
1991 | version "1.4.0"
1992 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
1993 | dependencies:
1994 | lcid "^1.0.0"
1995 |
1996 | os-tmpdir@^1.0.1:
1997 | version "1.0.2"
1998 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1999 |
2000 | parse-glob@^3.0.4:
2001 | version "3.0.4"
2002 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
2003 | dependencies:
2004 | glob-base "^0.3.0"
2005 | is-dotfile "^1.0.0"
2006 | is-extglob "^1.0.0"
2007 | is-glob "^2.0.0"
2008 |
2009 | parse-json@^2.2.0:
2010 | version "2.2.0"
2011 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
2012 | dependencies:
2013 | error-ex "^1.2.0"
2014 |
2015 | parse5@^1.5.1:
2016 | version "1.5.1"
2017 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
2018 |
2019 | path-exists@^2.0.0:
2020 | version "2.1.0"
2021 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
2022 | dependencies:
2023 | pinkie-promise "^2.0.0"
2024 |
2025 | path-is-absolute@^1.0.0:
2026 | version "1.0.1"
2027 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2028 |
2029 | path-is-inside@^1.0.1:
2030 | version "1.0.2"
2031 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
2032 |
2033 | path-parse@^1.0.5:
2034 | version "1.0.5"
2035 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
2036 |
2037 | path-type@^1.0.0:
2038 | version "1.1.0"
2039 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
2040 | dependencies:
2041 | graceful-fs "^4.1.2"
2042 | pify "^2.0.0"
2043 | pinkie-promise "^2.0.0"
2044 |
2045 | pify@^2.0.0:
2046 | version "2.3.0"
2047 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2048 |
2049 | pinkie-promise@^2.0.0:
2050 | version "2.0.1"
2051 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
2052 | dependencies:
2053 | pinkie "^2.0.0"
2054 |
2055 | pinkie@^2.0.0:
2056 | version "2.0.4"
2057 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
2058 |
2059 | pkg-dir@^1.0.0:
2060 | version "1.0.0"
2061 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
2062 | dependencies:
2063 | find-up "^1.0.0"
2064 |
2065 | pkg-up@^1.0.0:
2066 | version "1.0.0"
2067 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26"
2068 | dependencies:
2069 | find-up "^1.0.0"
2070 |
2071 | pluralize@^1.2.1:
2072 | version "1.2.1"
2073 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
2074 |
2075 | prelude-ls@~1.1.2:
2076 | version "1.1.2"
2077 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
2078 |
2079 | preserve@^0.2.0:
2080 | version "0.2.0"
2081 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
2082 |
2083 | pretty-format@^18.1.0:
2084 | version "18.1.0"
2085 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-18.1.0.tgz#fb65a86f7a7f9194963eee91865c1bcf1039e284"
2086 | dependencies:
2087 | ansi-styles "^2.2.1"
2088 |
2089 | private@^0.1.6:
2090 | version "0.1.6"
2091 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1"
2092 |
2093 | process-nextick-args@~1.0.6:
2094 | version "1.0.7"
2095 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
2096 |
2097 | progress@^1.1.8:
2098 | version "1.1.8"
2099 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
2100 |
2101 | prr@~0.0.0:
2102 | version "0.0.0"
2103 | resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
2104 |
2105 | punycode@^1.4.1:
2106 | version "1.4.1"
2107 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
2108 |
2109 | qs@~6.3.0:
2110 | version "6.3.0"
2111 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
2112 |
2113 | randomatic@^1.1.3:
2114 | version "1.1.6"
2115 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
2116 | dependencies:
2117 | is-number "^2.0.2"
2118 | kind-of "^3.0.2"
2119 |
2120 | read-pkg-up@^1.0.1:
2121 | version "1.0.1"
2122 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
2123 | dependencies:
2124 | find-up "^1.0.0"
2125 | read-pkg "^1.0.0"
2126 |
2127 | read-pkg@^1.0.0:
2128 | version "1.1.0"
2129 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
2130 | dependencies:
2131 | load-json-file "^1.0.0"
2132 | normalize-package-data "^2.3.2"
2133 | path-type "^1.0.0"
2134 |
2135 | readable-stream@^2.2.2:
2136 | version "2.2.2"
2137 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"
2138 | dependencies:
2139 | buffer-shims "^1.0.0"
2140 | core-util-is "~1.0.0"
2141 | inherits "~2.0.1"
2142 | isarray "~1.0.0"
2143 | process-nextick-args "~1.0.6"
2144 | string_decoder "~0.10.x"
2145 | util-deprecate "~1.0.1"
2146 |
2147 | readline2@^1.0.1:
2148 | version "1.0.1"
2149 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
2150 | dependencies:
2151 | code-point-at "^1.0.0"
2152 | is-fullwidth-code-point "^1.0.0"
2153 | mute-stream "0.0.5"
2154 |
2155 | rechoir@^0.6.2:
2156 | version "0.6.2"
2157 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
2158 | dependencies:
2159 | resolve "^1.1.6"
2160 |
2161 | redeyed@~1.0.0:
2162 | version "1.0.1"
2163 | resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a"
2164 | dependencies:
2165 | esprima "~3.0.0"
2166 |
2167 | regenerator-runtime@^0.10.0:
2168 | version "0.10.1"
2169 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb"
2170 |
2171 | regex-cache@^0.4.2:
2172 | version "0.4.3"
2173 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
2174 | dependencies:
2175 | is-equal-shallow "^0.1.3"
2176 | is-primitive "^2.0.0"
2177 |
2178 | repeat-element@^1.1.2:
2179 | version "1.1.2"
2180 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
2181 |
2182 | repeat-string@^1.5.2:
2183 | version "1.6.1"
2184 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2185 |
2186 | repeating@^2.0.0:
2187 | version "2.0.1"
2188 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
2189 | dependencies:
2190 | is-finite "^1.0.0"
2191 |
2192 | request@^2.55.0:
2193 | version "2.79.0"
2194 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
2195 | dependencies:
2196 | aws-sign2 "~0.6.0"
2197 | aws4 "^1.2.1"
2198 | caseless "~0.11.0"
2199 | combined-stream "~1.0.5"
2200 | extend "~3.0.0"
2201 | forever-agent "~0.6.1"
2202 | form-data "~2.1.1"
2203 | har-validator "~2.0.6"
2204 | hawk "~3.1.3"
2205 | http-signature "~1.1.0"
2206 | is-typedarray "~1.0.0"
2207 | isstream "~0.1.2"
2208 | json-stringify-safe "~5.0.1"
2209 | mime-types "~2.1.7"
2210 | oauth-sign "~0.8.1"
2211 | qs "~6.3.0"
2212 | stringstream "~0.0.4"
2213 | tough-cookie "~2.3.0"
2214 | tunnel-agent "~0.4.1"
2215 | uuid "^3.0.0"
2216 |
2217 | require-directory@^2.1.1:
2218 | version "2.1.1"
2219 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2220 |
2221 | require-main-filename@^1.0.1:
2222 | version "1.0.1"
2223 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
2224 |
2225 | require-uncached@^1.0.2:
2226 | version "1.0.3"
2227 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
2228 | dependencies:
2229 | caller-path "^0.1.0"
2230 | resolve-from "^1.0.0"
2231 |
2232 | resolve-from@^1.0.0:
2233 | version "1.0.1"
2234 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
2235 |
2236 | resolve@1.1.7:
2237 | version "1.1.7"
2238 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
2239 |
2240 | resolve@^1.1.6, resolve@^1.2.0:
2241 | version "1.2.0"
2242 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c"
2243 |
2244 | restore-cursor@^1.0.1:
2245 | version "1.0.1"
2246 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
2247 | dependencies:
2248 | exit-hook "^1.0.0"
2249 | onetime "^1.0.0"
2250 |
2251 | right-align@^0.1.1:
2252 | version "0.1.3"
2253 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
2254 | dependencies:
2255 | align-text "^0.1.1"
2256 |
2257 | rimraf@^2.2.8, rimraf@^2.4.3, rimraf@^2.4.4:
2258 | version "2.5.4"
2259 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
2260 | dependencies:
2261 | glob "^7.0.5"
2262 |
2263 | run-async@^0.1.0:
2264 | version "0.1.0"
2265 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
2266 | dependencies:
2267 | once "^1.3.0"
2268 |
2269 | rx-lite@^3.1.2:
2270 | version "3.1.2"
2271 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
2272 |
2273 | sane@~1.4.1:
2274 | version "1.4.1"
2275 | resolved "https://registry.yarnpkg.com/sane/-/sane-1.4.1.tgz#88f763d74040f5f0c256b6163db399bf110ac715"
2276 | dependencies:
2277 | exec-sh "^0.2.0"
2278 | fb-watchman "^1.8.0"
2279 | minimatch "^3.0.2"
2280 | minimist "^1.1.1"
2281 | walker "~1.0.5"
2282 | watch "~0.10.0"
2283 |
2284 | sax@^1.1.4:
2285 | version "1.2.1"
2286 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
2287 |
2288 | "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0:
2289 | version "5.3.0"
2290 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
2291 |
2292 | set-blocking@^2.0.0:
2293 | version "2.0.0"
2294 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2295 |
2296 | shelljs@^0.7.5:
2297 | version "0.7.6"
2298 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad"
2299 | dependencies:
2300 | glob "^7.0.0"
2301 | interpret "^1.0.0"
2302 | rechoir "^0.6.2"
2303 |
2304 | shellwords@^0.1.0:
2305 | version "0.1.0"
2306 | resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14"
2307 |
2308 | slash@^1.0.0:
2309 | version "1.0.0"
2310 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
2311 |
2312 | slice-ansi@0.0.4:
2313 | version "0.0.4"
2314 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
2315 |
2316 | sntp@1.x.x:
2317 | version "1.0.9"
2318 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2319 | dependencies:
2320 | hoek "2.x.x"
2321 |
2322 | source-map-support@^0.4.2:
2323 | version "0.4.11"
2324 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322"
2325 | dependencies:
2326 | source-map "^0.5.3"
2327 |
2328 | source-map@^0.4.4:
2329 | version "0.4.4"
2330 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
2331 | dependencies:
2332 | amdefine ">=0.0.4"
2333 |
2334 | source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1:
2335 | version "0.5.6"
2336 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
2337 |
2338 | source-map@~0.2.0:
2339 | version "0.2.0"
2340 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
2341 | dependencies:
2342 | amdefine ">=0.0.4"
2343 |
2344 | spdx-correct@~1.0.0:
2345 | version "1.0.2"
2346 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2347 | dependencies:
2348 | spdx-license-ids "^1.0.2"
2349 |
2350 | spdx-expression-parse@~1.0.0:
2351 | version "1.0.4"
2352 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2353 |
2354 | spdx-license-ids@^1.0.2:
2355 | version "1.2.2"
2356 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2357 |
2358 | sprintf-js@~1.0.2:
2359 | version "1.0.3"
2360 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2361 |
2362 | sshpk@^1.7.0:
2363 | version "1.10.2"
2364 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa"
2365 | dependencies:
2366 | asn1 "~0.2.3"
2367 | assert-plus "^1.0.0"
2368 | dashdash "^1.12.0"
2369 | getpass "^0.1.1"
2370 | optionalDependencies:
2371 | bcrypt-pbkdf "^1.0.0"
2372 | ecc-jsbn "~0.1.1"
2373 | jodid25519 "^1.0.0"
2374 | jsbn "~0.1.0"
2375 | tweetnacl "~0.14.0"
2376 |
2377 | string-width@^1.0.1, string-width@^1.0.2:
2378 | version "1.0.2"
2379 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2380 | dependencies:
2381 | code-point-at "^1.0.0"
2382 | is-fullwidth-code-point "^1.0.0"
2383 | strip-ansi "^3.0.0"
2384 |
2385 | string-width@^2.0.0:
2386 | version "2.0.0"
2387 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
2388 | dependencies:
2389 | is-fullwidth-code-point "^2.0.0"
2390 | strip-ansi "^3.0.0"
2391 |
2392 | string.prototype.codepointat@^0.2.0:
2393 | version "0.2.0"
2394 | resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78"
2395 |
2396 | string_decoder@~0.10.x:
2397 | version "0.10.31"
2398 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
2399 |
2400 | stringstream@~0.0.4:
2401 | version "0.0.5"
2402 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2403 |
2404 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2405 | version "3.0.1"
2406 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2407 | dependencies:
2408 | ansi-regex "^2.0.0"
2409 |
2410 | strip-bom@^2.0.0:
2411 | version "2.0.0"
2412 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
2413 | dependencies:
2414 | is-utf8 "^0.2.0"
2415 |
2416 | strip-bom@^3.0.0:
2417 | version "3.0.0"
2418 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2419 |
2420 | strip-json-comments@~2.0.1:
2421 | version "2.0.1"
2422 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2423 |
2424 | supports-color@^2.0.0:
2425 | version "2.0.0"
2426 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2427 |
2428 | supports-color@^3.1.2:
2429 | version "3.2.3"
2430 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
2431 | dependencies:
2432 | has-flag "^1.0.0"
2433 |
2434 | "symbol-tree@>= 3.1.0 < 4.0.0":
2435 | version "3.2.1"
2436 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.1.tgz#8549dd1d01fa9f893c18cc9ab0b106b4d9b168cb"
2437 |
2438 | table@^3.7.8:
2439 | version "3.8.3"
2440 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
2441 | dependencies:
2442 | ajv "^4.7.0"
2443 | ajv-keywords "^1.0.0"
2444 | chalk "^1.1.1"
2445 | lodash "^4.0.0"
2446 | slice-ansi "0.0.4"
2447 | string-width "^2.0.0"
2448 |
2449 | test-exclude@^3.3.0:
2450 | version "3.3.0"
2451 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-3.3.0.tgz#7a17ca1239988c98367b0621456dbb7d4bc38977"
2452 | dependencies:
2453 | arrify "^1.0.1"
2454 | micromatch "^2.3.11"
2455 | object-assign "^4.1.0"
2456 | read-pkg-up "^1.0.1"
2457 | require-main-filename "^1.0.1"
2458 |
2459 | text-table@~0.2.0:
2460 | version "0.2.0"
2461 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2462 |
2463 | throat@^3.0.0:
2464 | version "3.0.0"
2465 | resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6"
2466 |
2467 | through@^2.3.6:
2468 | version "2.3.8"
2469 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
2470 |
2471 | tmpl@1.0.x:
2472 | version "1.0.4"
2473 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
2474 |
2475 | to-fast-properties@^1.0.1:
2476 | version "1.0.2"
2477 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320"
2478 |
2479 | tough-cookie@^2.3.1, tough-cookie@~2.3.0:
2480 | version "2.3.2"
2481 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
2482 | dependencies:
2483 | punycode "^1.4.1"
2484 |
2485 | tr46@~0.0.3:
2486 | version "0.0.3"
2487 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
2488 |
2489 | tryit@^1.0.1:
2490 | version "1.0.3"
2491 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
2492 |
2493 | tunnel-agent@~0.4.1:
2494 | version "0.4.3"
2495 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
2496 |
2497 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2498 | version "0.14.5"
2499 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2500 |
2501 | type-check@~0.3.2:
2502 | version "0.3.2"
2503 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
2504 | dependencies:
2505 | prelude-ls "~1.1.2"
2506 |
2507 | typedarray@^0.0.6:
2508 | version "0.0.6"
2509 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
2510 |
2511 | uglify-js@^2.6:
2512 | version "2.7.5"
2513 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
2514 | dependencies:
2515 | async "~0.2.6"
2516 | source-map "~0.5.1"
2517 | uglify-to-browserify "~1.0.0"
2518 | yargs "~3.10.0"
2519 |
2520 | uglify-to-browserify@~1.0.0:
2521 | version "1.0.2"
2522 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
2523 |
2524 | user-home@^2.0.0:
2525 | version "2.0.0"
2526 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
2527 | dependencies:
2528 | os-homedir "^1.0.0"
2529 |
2530 | util-deprecate@~1.0.1:
2531 | version "1.0.2"
2532 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2533 |
2534 | uuid@^3.0.0:
2535 | version "3.0.1"
2536 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
2537 |
2538 | validate-npm-package-license@^3.0.1:
2539 | version "3.0.1"
2540 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
2541 | dependencies:
2542 | spdx-correct "~1.0.0"
2543 | spdx-expression-parse "~1.0.0"
2544 |
2545 | verror@1.3.6:
2546 | version "1.3.6"
2547 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
2548 | dependencies:
2549 | extsprintf "1.0.2"
2550 |
2551 | walker@~1.0.5:
2552 | version "1.0.7"
2553 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
2554 | dependencies:
2555 | makeerror "1.0.x"
2556 |
2557 | watch@~0.10.0:
2558 | version "0.10.0"
2559 | resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
2560 |
2561 | webidl-conversions@^3.0.0, webidl-conversions@^3.0.1:
2562 | version "3.0.1"
2563 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
2564 |
2565 | whatwg-encoding@^1.0.1:
2566 | version "1.0.1"
2567 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4"
2568 | dependencies:
2569 | iconv-lite "0.4.13"
2570 |
2571 | whatwg-url@^4.1.0:
2572 | version "4.3.0"
2573 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.3.0.tgz#92aaee21f4f2a642074357d70ef8500a7cbb171a"
2574 | dependencies:
2575 | tr46 "~0.0.3"
2576 | webidl-conversions "^3.0.0"
2577 |
2578 | which-module@^1.0.0:
2579 | version "1.0.0"
2580 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
2581 |
2582 | which@^1.0.5, which@^1.1.1:
2583 | version "1.2.12"
2584 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
2585 | dependencies:
2586 | isexe "^1.1.1"
2587 |
2588 | window-size@0.1.0:
2589 | version "0.1.0"
2590 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
2591 |
2592 | wordwrap@0.0.2:
2593 | version "0.0.2"
2594 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
2595 |
2596 | wordwrap@~0.0.2:
2597 | version "0.0.3"
2598 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
2599 |
2600 | wordwrap@~1.0.0:
2601 | version "1.0.0"
2602 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
2603 |
2604 | worker-farm@^1.3.1:
2605 | version "1.3.1"
2606 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff"
2607 | dependencies:
2608 | errno ">=0.1.1 <0.2.0-0"
2609 | xtend ">=4.0.0 <4.1.0-0"
2610 |
2611 | wrap-ansi@^2.0.0:
2612 | version "2.1.0"
2613 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
2614 | dependencies:
2615 | string-width "^1.0.1"
2616 | strip-ansi "^3.0.1"
2617 |
2618 | wrappy@1:
2619 | version "1.0.2"
2620 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2621 |
2622 | write@^0.2.1:
2623 | version "0.2.1"
2624 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
2625 | dependencies:
2626 | mkdirp "^0.5.1"
2627 |
2628 | "xml-name-validator@>= 2.0.1 < 3.0.0":
2629 | version "2.0.1"
2630 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
2631 |
2632 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0:
2633 | version "4.0.1"
2634 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
2635 |
2636 | y18n@^3.2.1:
2637 | version "3.2.1"
2638 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
2639 |
2640 | yargs-parser@^4.2.0:
2641 | version "4.2.1"
2642 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
2643 | dependencies:
2644 | camelcase "^3.0.0"
2645 |
2646 | yargs@^6.3.0:
2647 | version "6.6.0"
2648 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
2649 | dependencies:
2650 | camelcase "^3.0.0"
2651 | cliui "^3.2.0"
2652 | decamelize "^1.1.1"
2653 | get-caller-file "^1.0.1"
2654 | os-locale "^1.4.0"
2655 | read-pkg-up "^1.0.1"
2656 | require-directory "^2.1.1"
2657 | require-main-filename "^1.0.1"
2658 | set-blocking "^2.0.0"
2659 | string-width "^1.0.2"
2660 | which-module "^1.0.0"
2661 | y18n "^3.2.1"
2662 | yargs-parser "^4.2.0"
2663 |
2664 | yargs@~3.10.0:
2665 | version "3.10.0"
2666 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
2667 | dependencies:
2668 | camelcase "^1.0.2"
2669 | cliui "^2.1.0"
2670 | decamelize "^1.0.0"
2671 | window-size "0.1.0"
2672 |
--------------------------------------------------------------------------------