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


- ย  + 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"