diff --git a/.all-contributorsrc b/.all-contributorsrc
index fadc9ba62..aefdf4156 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -183,6 +183,16 @@
"code"
]
},
+ {
+ "login": "SammyIsra",
+ "name": "Sammy Israwi",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8962228?v=4",
+ "profile": "https://github.com/SammyIsra",
+ "contributions": [
+ "code",
+ "bug"
+ ]
+ },
{
"login": "RogerAbyss",
"name": "Chao Ren",
diff --git a/README.md b/README.md
index 9ff079a77..0ecd8737e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
GitPoint
- ย
+
@@ -17,8 +17,8 @@
## Introduction
-[![Build Status](https://img.shields.io/travis/gitpoint/git-point/master.svg?style=flat-square)](https://travis-ci.org/gitpoint/git-point)
-[![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors)
+[![Build Status](https://img.shields.io/travis/gitpoint/git-point.svg?style=flat-square)](https://travis-ci.org/gitpoint/git-point)
+[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Gitter chat](https://img.shields.io/badge/chat-on_gitter-008080.svg?style=flat-square)](https://gitter.im/git-point)
@@ -67,5 +67,5 @@ Please take a look at the [contributing guidelines](./CONTRIBUTING.md) for a det
| [
Houssein Djirdeh](https://houssein.me)
[๐ฌ](#question-housseindjirdeh "Answering Questions") [๐ป](https://github.com/gitpoint/git-point/commits?author=housseindjirdeh "Code") [๐จ](#design-housseindjirdeh "Design") [๐](https://github.com/gitpoint/git-point/commits?author=housseindjirdeh "Documentation") [๐](#review-housseindjirdeh "Reviewed Pull Requests") | [
gejose](https://github.com/gejose)
[๐ป](https://github.com/gitpoint/git-point/commits?author=gejose "Code") | [
rmevans9](https://github.com/rmevans9)
[๐ป](https://github.com/gitpoint/git-point/commits?author=rmevans9 "Code") | [
Alexey Pyltsyn](http://lex111.ru)
[๐ป](https://github.com/gitpoint/git-point/commits?author=lex111 "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Alex111 "Bug reports") | [
Jason Etcovitch](https://jasonet.co)
[๐ป](https://github.com/gitpoint/git-point/commits?author=JasonEtco "Code") | [
Hosmel Quintana](http://hosmelq.com)
[๐ป](https://github.com/gitpoint/git-point/commits?author=hosmelq "Code") | [
Alejandro รรกรฑez Ortiz](http://co.linkedin.com/in/alejandronanez/)
[๐ป](https://github.com/gitpoint/git-point/commits?author=alejandronanez "Code") [๐](#review-alejandronanez "Reviewed Pull Requests") |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [
Patrick Wang](https://patw.me)
[๐ป](https://github.com/gitpoint/git-point/commits?author=patw0929 "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Apatw0929 "Bug reports") | [
Mike Kavouras](https://github.com/mikekavouras)
[๐ป](https://github.com/gitpoint/git-point/commits?author=mikekavouras "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Amikekavouras "Bug reports") | [
Peter Lazar](https://github.com/peterlazar1993)
[๐ป](https://github.com/gitpoint/git-point/commits?author=peterlazar1993 "Code") | [
June Domingo](https://github.com/junedomingo)
[๐ป](https://github.com/gitpoint/git-point/commits?author=junedomingo "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Ajunedomingo "Bug reports") | [
Antoine](http://www.jaaccelere.com)
[๐ป](https://github.com/gitpoint/git-point/commits?author=Antoine38660 "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3AAntoine38660 "Bug reports") | [
Wang Shidong](https://wsdjeg.github.io)
[๐ป](https://github.com/gitpoint/git-point/commits?author=wsdjeg "Code") | [
Swapnil Joshi](http://swapnilmj.users.sourceforge.net/)
[๐ป](https://github.com/gitpoint/git-point/commits?author=swapnilmj "Code") |
-| [
Rolf Koenders](https://github.com/RolfKoenders)
[๐ป](https://github.com/gitpoint/git-point/commits?author=RolfKoenders "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3ARolfKoenders "Bug reports") | [
Andrew Dassonville](https://andrewda.me)
[๐ป](https://github.com/gitpoint/git-point/commits?author=andrewda "Code") [๐ฌ](#question-andrewda "Answering Questions") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Aandrewda "Bug reports") [๐](#review-andrewda "Reviewed Pull Requests") | [
Anton](https://medium.com/@antondomashnev)
[๐ป](https://github.com/gitpoint/git-point/commits?author=Antondomashnev "Code") | [
Xuezheng Ma](https://github.com/xuezhma)
[๐ป](https://github.com/gitpoint/git-point/commits?author=xuezhma "Code") | [
Chao Ren](https://github.com/RogerAbyss)
[๐](https://github.com/gitpoint/git-point/issues?q=author%3ARogerAbyss "Bug reports") [๐ป](https://github.com/gitpoint/git-point/commits?author=RogerAbyss "Code") |
+| [
Rolf Koenders](https://github.com/RolfKoenders)
[๐ป](https://github.com/gitpoint/git-point/commits?author=RolfKoenders "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3ARolfKoenders "Bug reports") | [
Andrew Dassonville](https://andrewda.me)
[๐ป](https://github.com/gitpoint/git-point/commits?author=andrewda "Code") [๐ฌ](#question-andrewda "Answering Questions") [๐](https://github.com/gitpoint/git-point/issues?q=author%3Aandrewda "Bug reports") [๐](#review-andrewda "Reviewed Pull Requests") | [
Anton](https://medium.com/@antondomashnev)
[๐ป](https://github.com/gitpoint/git-point/commits?author=Antondomashnev "Code") | [
Xuezheng Ma](https://github.com/xuezhma)
[๐ป](https://github.com/gitpoint/git-point/commits?author=xuezhma "Code") | [
Sammy Israwi](https://github.com/SammyIsra)
[๐ป](https://github.com/gitpoint/git-point/commits?author=SammyIsra "Code") [๐](https://github.com/gitpoint/git-point/issues?q=author%3ASammyIsra "Bug reports") | [
Chao Ren](https://github.com/RogerAbyss)
[๐](https://github.com/gitpoint/git-point/issues?q=author%3ARogerAbyss "Bug reports") [๐ป](https://github.com/gitpoint/git-point/commits?author=RogerAbyss "Code") |
diff --git a/package.json b/package.json
index 258a50d3c..4f04e2162 100644
--- a/package.json
+++ b/package.json
@@ -99,6 +99,7 @@
"lint-staged": "^3.2.6",
"pre-commit": "^1.2.2",
"prettier": "^1.3.1",
+ "react-native-cli": "^2.0.1",
"react-test-renderer": "16.0.0-alpha.6"
},
"jest": {
diff --git a/src/auth/auth.reducer.js b/src/auth/auth.reducer.js
index 95ba10289..2d02f65bb 100644
--- a/src/auth/auth.reducer.js
+++ b/src/auth/auth.reducer.js
@@ -12,6 +12,7 @@ const initialState = {
isAuthenticated: false,
accessToken: null,
user: {},
+ hasInitialUser: false,
orgs: [],
events: [],
isPendingUser: false,
@@ -50,6 +51,7 @@ export const authReducer = (state = initialState, action = {}) => {
case LOGOUT.SUCCESS:
return {
...initialState,
+ hasInitialUser: false,
};
case LOGOUT.FAILURE:
return {
@@ -67,6 +69,7 @@ export const authReducer = (state = initialState, action = {}) => {
...state,
user: action.payload,
isPendingUser: false,
+ hasInitialUser: true,
};
case GET_AUTH_USER.ERROR:
return {
diff --git a/src/auth/screens/auth-profile.screen.js b/src/auth/screens/auth-profile.screen.js
index eebfa35f1..f99debd6b 100644
--- a/src/auth/screens/auth-profile.screen.js
+++ b/src/auth/screens/auth-profile.screen.js
@@ -1,6 +1,11 @@
import React, { Component } from 'react';
import { connect } from 'react-redux';
-import { StyleSheet, Text, TouchableOpacity } from 'react-native';
+import {
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ RefreshControl,
+} from 'react-native';
import { ListItem } from 'react-native-elements';
import { NavigationActions } from 'react-navigation';
import codePush from 'react-native-code-push';
@@ -9,7 +14,6 @@ import {
ViewContainer,
UserProfile,
SectionList,
- LoadingContainer,
ParallaxScroll,
UserListItem,
EntityInfo,
@@ -24,6 +28,7 @@ const mapStateToProps = state => ({
orgs: state.auth.orgs,
isPendingUser: state.auth.isPendingUser,
isPendingOrgs: state.auth.isPendingOrgs,
+ hasInitialUser: state.auth.hasInitialUser,
});
const mapDispatchToProps = dispatch => ({
@@ -86,6 +91,7 @@ class AuthProfile extends Component {
orgs: Array,
isPendingUser: boolean,
isPendingOrgs: boolean,
+ hasInitialUser: boolean,
navigation: Object,
};
@@ -94,8 +100,7 @@ class AuthProfile extends Component {
};
componentDidMount() {
- this.props.getUserByDispatch();
- this.props.getOrgsByDispatch();
+ this.refreshProfile();
}
checkForUpdate = () => {
@@ -116,6 +121,11 @@ class AuthProfile extends Component {
}
};
+ refreshProfile = () => {
+ this.props.getUserByDispatch();
+ this.props.getOrgsByDispatch();
+ };
+
signOutUser() {
const { signOutByDispatch, navigation } = this.props;
@@ -134,36 +144,50 @@ class AuthProfile extends Component {
}
render() {
- const { user, orgs, isPendingUser, isPendingOrgs, navigation } = this.props;
+ const {
+ user,
+ orgs,
+ isPendingUser,
+ isPendingOrgs,
+ navigation,
+ hasInitialUser,
+ } = this.props;
+
const loading = isPendingUser || isPendingOrgs;
return (
- {loading && }
-
- {!loading &&
-
- }
- stickyTitle={user.login}
- >
- {user.bio &&
- user.bio !== '' &&
-
-
- }
+
+ }
+ refreshControl={
+
+ }
+ stickyTitle={user.login}
+ >
+ {hasInitialUser &&
+ user.bio &&
+ user.bio !== '' &&
+
+
+ }
-
+ {!loading &&
+ }
+ {!isPendingOrgs &&
-
+ }
+ {!loading &&
this.signOutUser()}
/>
-
-
-
-
- GitPoint v{version}
-
-
- {this.state.updateText}
-
-
- }
+ }
+
+
+
+ GitPoint v{version}
+
+
+ {this.state.updateText}
+
+
+
);
}
diff --git a/src/components/parallax-scroll.component.js b/src/components/parallax-scroll.component.js
index 4c68bdac0..009bb4fef 100644
--- a/src/components/parallax-scroll.component.js
+++ b/src/components/parallax-scroll.component.js
@@ -17,6 +17,7 @@ type Props = {
menuAction?: Function,
navigation: Object,
children?: React.Element<*>,
+ refreshControl?: React.Element<*>,
};
const styles = StyleSheet.create({
@@ -59,6 +60,7 @@ export const ParallaxScroll = ({
menuAction,
navigation,
children,
+ refreshControl,
}: Props) =>
}
}
+ refreshControl={refreshControl}
>
{children}
;
@@ -111,4 +114,5 @@ ParallaxScroll.defaultProps = {
showMenu: false,
menuAction: undefined,
children: null,
+ refreshControl: null,
};
diff --git a/src/issue/screens/issue.screen.js b/src/issue/screens/issue.screen.js
index ac34f7a96..1914d8a46 100644
--- a/src/issue/screens/issue.screen.js
+++ b/src/issue/screens/issue.screen.js
@@ -17,7 +17,7 @@ import {
CommentInput,
} from 'components';
import { colors } from 'config';
-import { getRepository, getContributors } from 'repository';
+import { getRepository } from 'repository';
import {
getIssueComments,
postIssueComment,
@@ -45,7 +45,6 @@ const mapDispatchToProps = dispatch => ({
dispatch(postIssueComment(body, owner, repoName, issueNum)),
getIssueFromUrlByDispatch: url => dispatch(getIssueFromUrl(url)),
getRepositoryByDispatch: url => dispatch(getRepository(url)),
- getContributorsByDispatch: url => dispatch(getContributors(url)),
});
class Issue extends Component {
@@ -76,7 +75,6 @@ class Issue extends Component {
props: {
getIssueCommentsByDispatch: Function,
getRepositoryByDispatch: Function,
- getContributorsByDispatch: Function,
postIssueCommentByDispatch: Function,
getIssueFromUrlByDispatch: Function,
diff: string,
@@ -92,44 +90,11 @@ class Issue extends Component {
isPendingComments: boolean,
isPendingContributors: boolean,
// isPostingComment: boolean,
- navigation: Object
+ navigation: Object,
};
componentDidMount() {
- const {
- issue,
- navigation,
- repository,
- getIssueCommentsByDispatch,
- getRepositoryByDispatch,
- getContributorsByDispatch,
- getIssueFromUrlByDispatch,
- } = this.props;
-
- const issueParam = navigation.state.params.issue;
- const issueURLParam = navigation.state.params.issueURL;
- const issueCommentsURL = `${navigation.state.params.issueURL}/comments`;
-
- Promise.all(
- getIssueFromUrlByDispatch(issueURLParam || issueParam.url),
- getIssueCommentsByDispatch(issueURLParam ? issueCommentsURL : issueParam.comments_url)
- ).then(() => {
- if (
- repository.full_name !==
- issue.repository_url.replace('https://api.github.com/repos/', '')
- ) {
- Promise.all([
- getRepositoryByDispatch(issue.repository_url),
- getContributorsByDispatch(
- this.getContributorsLink(issue.repository_url)
- ),
- ]).then(() => {
- this.setNavigationParams();
- });
- } else {
- this.setNavigationParams();
- }
- });
+ this.getIssueInformation();
}
onLinkPress = node => {
@@ -162,6 +127,39 @@ class Issue extends Component {
});
};
+ getIssueInformation = () => {
+ const {
+ issue,
+ navigation,
+ repository,
+ getIssueCommentsByDispatch,
+ getRepositoryByDispatch,
+ getIssueFromUrlByDispatch,
+ } = this.props;
+
+ const issueParam = navigation.state.params.issue;
+ const issueURLParam = navigation.state.params.issueURL;
+ const issueCommentsURL = `${navigation.state.params.issueURL}/comments`;
+
+ Promise.all(
+ getIssueFromUrlByDispatch(issueURLParam || issueParam.url),
+ getIssueCommentsByDispatch(
+ issueURLParam ? issueCommentsURL : issueParam.comments_url
+ )
+ ).then(() => {
+ if (
+ repository.full_name !==
+ issue.repository_url.replace('https://api.github.com/repos/', '')
+ ) {
+ getRepositoryByDispatch(issue.repository_url).then(() => {
+ this.setNavigationParams();
+ });
+ } else {
+ this.setNavigationParams();
+ }
+ });
+ };
+
getContributorsLink = repository => `${repository}/contributors`;
setNavigationParams = () => {
@@ -232,6 +230,7 @@ class Issue extends Component {
navigation,
} = this.props;
+ const isLoadingData = !!(isPendingComments || isPendingIssue);
const fullComments = !isPendingComments ? [issue, ...comments] : [];
const participantNames = !isPendingComments
? fullComments.map(item => item && item.user && item.user.login)
@@ -245,7 +244,7 @@ class Issue extends Component {
return (
- {(isPendingComments || isPendingIssue) &&
+ {isLoadingData &&
{
this.commentsList = ref;
}}
+ refreshing={isLoadingData}
+ onRefresh={this.getIssueInformation}
contentContainerStyle={{ flexGrow: 1 }}
ListHeaderComponent={this.renderHeader}
removeClippedSubviews={false}
diff --git a/src/organization/screens/organization-profile.screen.js b/src/organization/screens/organization-profile.screen.js
index ecfce577b..2128b4deb 100644
--- a/src/organization/screens/organization-profile.screen.js
+++ b/src/organization/screens/organization-profile.screen.js
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { connect } from 'react-redux';
-import { StyleSheet } from 'react-native';
+import { StyleSheet, RefreshControl } from 'react-native';
import { ListItem } from 'react-native-elements';
import {
@@ -57,11 +57,15 @@ class OrganizationProfile extends Component {
};
componentDidMount() {
+ this.getOrgData();
+ }
+
+ getOrgData = () => {
const organization = this.props.navigation.state.params.organization;
this.props.getOrgByDispatch(organization.login);
this.props.getOrgMembersByDispatch(organization.login);
- }
+ };
render() {
const {
@@ -73,6 +77,8 @@ class OrganizationProfile extends Component {
} = this.props;
const initialOrganization = this.props.navigation.state.params.organization;
+ const isLoadingData = isPendingOrg || isPendingMembers;
+
return (
}
+ refreshControl={
+
+ }
stickyTitle={organization.name}
navigateBack
navigation={navigation}
diff --git a/src/repository/screens/repository.screen.js b/src/repository/screens/repository.screen.js
index 47062f297..6530e9d21 100644
--- a/src/repository/screens/repository.screen.js
+++ b/src/repository/screens/repository.screen.js
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { connect } from 'react-redux';
-import { StyleSheet, Share } from 'react-native';
+import { StyleSheet, RefreshControl, Share } from 'react-native';
import { ListItem } from 'react-native-elements';
import ActionSheet from 'react-native-actionsheet';
@@ -81,11 +81,7 @@ class Repository extends Component {
};
componentDidMount() {
- const { navigation } = this.props;
- const repo = navigation.state.params.repository;
- const repoUrl = navigation.state.params.repositoryUrl;
-
- this.props.getRepositoryInfoByDispatch(repo ? repo.url : repoUrl);
+ this.fetchRepoInfo();
}
showMenuActionSheet = () => {
@@ -118,6 +114,15 @@ class Repository extends Component {
}
};
+ fetchRepoInfo = () => {
+ const {
+ repository: repo,
+ repositoryUrl: repoUrl,
+ } = this.props.navigation.state.params;
+
+ this.props.getRepositoryInfoByDispatch(repo ? repo.url : repoUrl);
+ };
+
shareRepository = repository => {
const title = `Share ${repository.name}`;
@@ -192,9 +197,15 @@ class Repository extends Component {
/>
);
}}
+ refreshControl={
+
+ }
stickyTitle={repository.name}
showMenu={!isPendingRepository && !isPendingCheckStarred}
- menuAction={() => this.showMenuActionSheet()}
+ menuAction={this.showMenuActionSheet}
navigation={navigation}
navigateBack
>
diff --git a/src/user/screens/profile.screen.js b/src/user/screens/profile.screen.js
index 355ed6825..830eb2482 100644
--- a/src/user/screens/profile.screen.js
+++ b/src/user/screens/profile.screen.js
@@ -1,6 +1,12 @@
import React, { Component } from 'react';
import { connect } from 'react-redux';
-import { StyleSheet, ActivityIndicator, Dimensions, View } from 'react-native';
+import {
+ StyleSheet,
+ ActivityIndicator,
+ Dimensions,
+ View,
+ RefreshControl,
+} from 'react-native';
import { ListItem } from 'react-native-elements';
import ActionSheet from 'react-native-actionsheet';
@@ -56,10 +62,14 @@ class Profile extends Component {
};
componentDidMount() {
+ this.getUserInfo();
+ }
+
+ getUserInfo = () => {
this.props.getUserInfoByDispatch(
this.props.navigation.state.params.user.login
);
- }
+ };
showMenuActionSheet = () => {
this.ActionSheet.show();
@@ -101,6 +111,12 @@ class Profile extends Component {
user={initialUser.login === user.login ? user : {}}
navigation={navigation}
/>}
+ refreshControl={
+
+ }
stickyTitle={user.login}
showMenu={
!isPendingUser &&
diff --git a/yarn.lock b/yarn.lock
index f89493a3d..0e9e9e433 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -262,6 +262,10 @@ async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+async@0.2.x, async@~0.2.6, async@~0.2.9:
+ version "0.2.10"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
+
async@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -272,10 +276,6 @@ async@^2.0.0-rc.1, async@^2.1.4, async@^2.4.0:
dependencies:
lodash "^4.14.0"
-async@~0.2.6:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1419,6 +1419,10 @@ color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+colors@0.6.x:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
+
colors@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
@@ -1660,6 +1664,10 @@ csurf@~1.8.3:
csrf "~3.0.0"
http-errors "~1.3.1"
+cycle@1.0.x:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
+
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
@@ -1714,6 +1722,10 @@ deep-diff@0.3.4:
version "0.3.4"
resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.4.tgz#aac5c39952236abe5f037a2349060ba01b00ae48"
+deep-equal@*:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
@@ -2254,6 +2266,10 @@ extsprintf@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+eyes@0.1.x:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
+
fancy-log@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
@@ -2793,6 +2809,10 @@ https-proxy-agent@1:
debug "2"
extend "3"
+i@0.3.x:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/i/-/i-0.3.5.tgz#1d2b854158ec8169113c6cb7f6b6801e99e211d5"
+
iconv-lite@0.4.11:
version "0.4.11"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade"
@@ -3104,7 +3124,7 @@ isomorphic-fetch@^2.1.1:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
-isstream@~0.1.2:
+isstream@0.1.x, isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -3966,7 +3986,7 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
+mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
@@ -4019,7 +4039,7 @@ mute-stream@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
-mute-stream@0.0.7:
+mute-stream@0.0.7, mute-stream@~0.0.4:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -4031,6 +4051,10 @@ natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ncp@0.4.x:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574"
+
negotiator@0.5.3:
version "0.5.3"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8"
@@ -4430,6 +4454,14 @@ pkg-up@^1.0.0:
dependencies:
find-up "^1.0.0"
+pkginfo@0.3.x:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
+
+pkginfo@0.x.x:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.0.tgz#349dbb7ffd38081fcadc0853df687f0c7744cd65"
+
plist@1.2.0, plist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/plist/-/plist-1.2.0.tgz#084b5093ddc92506e259f874b8d9b1afb8c79593"
@@ -4503,6 +4535,16 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
+prompt@^0.2.14:
+ version "0.2.14"
+ resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc"
+ dependencies:
+ pkginfo "0.x.x"
+ read "1.0.x"
+ revalidator "0.1.x"
+ utile "0.2.x"
+ winston "0.8.x"
+
prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
@@ -4609,6 +4651,15 @@ react-native-actionsheet@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/react-native-actionsheet/-/react-native-actionsheet-2.2.0.tgz#3783ad2c8d1ba116908ab8e169399adc486cc89e"
+react-native-cli@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/react-native-cli/-/react-native-cli-2.0.1.tgz#f2cd3c7aa1b83828cdfba630e2dfd817df766d54"
+ dependencies:
+ chalk "^1.1.1"
+ minimist "^1.2.0"
+ prompt "^0.2.14"
+ semver "^5.0.3"
+
react-native-code-push@3.0.1-beta:
version "3.0.1-beta"
resolved "https://registry.yarnpkg.com/react-native-code-push/-/react-native-code-push-3.0.1-beta.tgz#592b9bd579437b8d7e76c139571bda3a1975a0cb"
@@ -4911,6 +4962,12 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
+read@1.0.x:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
+ dependencies:
+ mute-stream "~0.0.4"
+
readable-stream@1.0.27-1:
version "1.0.27-1"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078"
@@ -5165,13 +5222,17 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+revalidator@0.1.x:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b"
+
right-align@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
+rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
dependencies:
@@ -5487,6 +5548,10 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
+stack-trace@0.0.x:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+
stacktrace-parser@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz#01397922e5f62ecf30845522c95c4fe1d25e7d4e"
@@ -5853,6 +5918,17 @@ util-deprecate@1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+utile@0.2.x:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7"
+ dependencies:
+ async "~0.2.9"
+ deep-equal "*"
+ i "0.3.x"
+ mkdirp "0.x.x"
+ ncp "0.4.x"
+ rimraf "2.x.x"
+
utils-merge@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
@@ -5963,6 +6039,18 @@ window-size@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
+winston@0.8.x:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0"
+ dependencies:
+ async "0.2.x"
+ colors "0.6.x"
+ cycle "1.0.x"
+ eyes "0.1.x"
+ isstream "0.1.x"
+ pkginfo "0.3.x"
+ stack-trace "0.0.x"
+
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"