From 844c654fdae6e12af422768a561338b03230b947 Mon Sep 17 00:00:00 2001 From: enahum Date: Tue, 16 May 2017 21:13:44 -0400 Subject: [PATCH] Update RN to 0.44.0 and project dependencies (#546) --- .eslintrc.json | 2 +- app/components/at_mention/at_mention.js | 3 +- .../autocomplete/at_mention/at_mention.js | 3 +- .../channel_mention/channel_mention.js | 3 +- app/components/autocomplete/index.js | 3 +- app/components/badge.js | 3 +- app/components/button.js | 15 +- .../channel_drawer/channel_drawer.js | 9 +- .../channel_drawer_item.js | 3 +- .../channel_drawer_list.js | 3 +- .../channel_drawer_list/unread_indicator.js | 3 +- app/components/channel_icon.js | 3 +- app/components/channel_intro/channel_intro.js | 3 +- app/components/channel_loader.js | 3 +- app/components/checkmark.js | 15 +- .../custom_list/channel_list_row.js | 3 +- app/components/custom_list/index.js | 3 +- app/components/custom_list/member_list_row.js | 3 +- app/components/drawer.js | 4 +- app/components/error_list/error_list.js | 3 +- app/components/error_list/general_error.js | 3 +- app/components/error_text.js | 3 +- .../file_attachment_list/file_attachment.js | 7 +- .../file_attachment_icon.js | 7 +- .../file_attachment_image.js | 6 +- .../file_attachment_list.js | 7 +- .../file_upload_preview.js | 3 +- app/components/formatted_date.js | 3 +- app/components/formatted_text.js | 5 +- app/components/formatted_time.js | 11 +- app/components/layout/keyboard_layout.js | 11 +- app/components/loading.js | 3 +- app/components/markdown/index.js | 3 +- app/components/markdown/markdown_image.js | 3 +- app/components/markdown/markdown_link.js | 3 +- app/components/markdown/markdown_list.js | 3 +- app/components/markdown/markdown_list_item.js | 3 +- app/components/mattermost_icon.js | 11 +- .../offline_indicator/offline_indicator.js | 3 +- .../options_context.android.js | 3 +- .../options_context/options_context.ios.js | 3 +- app/components/paper_plane.js | 15 +- app/components/post/post.js | 3 +- app/components/post_list/date_header.js | 3 +- app/components/post_list/load_more_posts.js | 3 +- app/components/post_list/post_list.js | 3 +- app/components/post_list_retry.js | 3 +- .../components/paper_clip_icon.js | 11 +- app/components/post_textbox/post_textbox.js | 25 +- .../profile_picture/profile_picture.js | 23 +- app/components/push_notification/index.js | 36 -- .../push_notification/push_notification.js | 133 ------ app/components/reply_icon.js | 11 +- app/components/root/index.js | 2 + app/components/root/root.js | 23 +- .../search_bar/search_bar.android.js | 3 +- app/components/search_bar/search_bar.ios.js | 3 +- app/components/status_icons/away.js | 11 +- app/components/status_icons/offline.js | 11 +- app/components/status_icons/online.js | 11 +- .../text_input_with_localized_placeholder.js | 7 +- app/constants/custom_prop_types.js | 2 +- app/constants/view.js | 1 + app/mattermost.js | 1 + app/screens/about/about.js | 3 +- .../account_notifications.js | 3 +- app/screens/account_notifications/section.js | 3 +- .../account_notifications/section_item.js | 3 +- .../account_settings/account_settings.js | 3 +- app/screens/channel/channel.js | 3 +- app/screens/channel/channel_drawer_button.js | 7 +- .../channel_post_list/channel_post_list.js | 3 +- app/screens/channel/channel_title.js | 3 +- .../channel_add_members.js | 3 +- app/screens/channel_info/channel_info.js | 3 +- .../channel_info/channel_info_header.js | 3 +- app/screens/channel_info/channel_info_row.js | 3 +- .../channel_members/channel_members.js | 3 +- app/screens/create_channel/create_channel.js | 3 +- app/screens/edit_post/edit_post.js | 3 +- app/screens/image_preview/image_preview.js | 3 +- app/screens/image_preview/zoomable_image.js | 3 +- app/screens/load_team/load_team.js | 3 +- app/screens/login/login.js | 15 +- app/screens/login_options/login_options.js | 3 +- app/screens/mfa/mfa.js | 3 +- app/screens/more_channels/more_channels.js | 3 +- app/screens/more_dms/more_dms.js | 3 +- app/screens/notification/notification.js | 3 +- app/screens/options_modal/options_modal.js | 3 +- .../options_modal_list.android.js | 3 +- .../options_modal/options_modal_list.ios.js | 3 +- app/screens/root/root.js | 3 +- app/screens/saml/saml.js | 3 +- app/screens/select_server/select_server.js | 3 +- app/screens/select_team/select_team.js | 3 +- app/screens/settings/settings.js | 3 +- app/screens/settings/settings_item.js | 3 +- app/screens/thread/thread.js | 5 +- app/screens/user_profile/user_profile.js | 3 +- app/screens/user_profile/user_profile_row.js | 3 +- package.json | 43 +- yarn.lock | 448 +++++++++++------- 103 files changed, 588 insertions(+), 570 deletions(-) delete mode 100644 app/components/push_notification/index.js delete mode 100644 app/components/push_notification/push_notification.js diff --git a/.eslintrc.json b/.eslintrc.json index 5a2bd22e7..37a851ea9 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -209,7 +209,7 @@ "react/jsx-no-target-blank": 2, "react/jsx-no-undef": 2, "react/jsx-pascal-case": 2, - "react/jsx-space-before-closing": [2, "never"], + "react/jsx-tag-spacing": [2, {"closingSlash": "never", "beforeSelfClosing": "never", "afterOpening": "never"}], "react/jsx-uses-react": 2, "react/jsx-uses-vars": 2, "react/jsx-no-comment-textnodes": 2, diff --git a/app/components/at_mention/at_mention.js b/app/components/at_mention/at_mention.js index 19542c7b2..eca3a4c76 100644 --- a/app/components/at_mention/at_mention.js +++ b/app/components/at_mention/at_mention.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {Text} from 'react-native'; import CustomPropTypes from 'app/constants/custom_prop_types'; diff --git a/app/components/autocomplete/at_mention/at_mention.js b/app/components/autocomplete/at_mention/at_mention.js index 7bf389525..e23669eec 100644 --- a/app/components/autocomplete/at_mention/at_mention.js +++ b/app/components/autocomplete/at_mention/at_mention.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {Component, PropTypes} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { ListView, StyleSheet, diff --git a/app/components/autocomplete/channel_mention/channel_mention.js b/app/components/autocomplete/channel_mention/channel_mention.js index 07e6b5612..6c834baf1 100644 --- a/app/components/autocomplete/channel_mention/channel_mention.js +++ b/app/components/autocomplete/channel_mention/channel_mention.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {Component, PropTypes} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { ListView, StyleSheet, diff --git a/app/components/autocomplete/index.js b/app/components/autocomplete/index.js index 11a289553..e2fc96382 100644 --- a/app/components/autocomplete/index.js +++ b/app/components/autocomplete/index.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, Component} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, View diff --git a/app/components/badge.js b/app/components/badge.js index 0370fcea7..e2de9ea87 100644 --- a/app/components/badge.js +++ b/app/components/badge.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { PanResponder, StyleSheet, diff --git a/app/components/button.js b/app/components/button.js index 56acc81a2..7fb783365 100644 --- a/app/components/button.js +++ b/app/components/button.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {ActivityIndicator, StyleSheet, TouchableHighlight, View} from 'react-native'; @@ -18,18 +19,18 @@ const styles = StyleSheet.create({ } }); -export default class Button extends React.Component { +export default class Button extends PureComponent { static propTypes = { - children: React.PropTypes.node, - loading: React.PropTypes.bool, - onPress: React.PropTypes.func.isRequired - } + children: PropTypes.node, + loading: PropTypes.bool, + onPress: PropTypes.func.isRequired + }; onPress = () => { if (!this.props.loading) { this.props.onPress(); } - } + }; render() { let loading = null; diff --git a/app/components/channel_drawer/channel_drawer.js b/app/components/channel_drawer/channel_drawer.js index 37ce65104..9c5fa7612 100644 --- a/app/components/channel_drawer/channel_drawer.js +++ b/app/components/channel_drawer/channel_drawer.js @@ -1,8 +1,9 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; -import {BackAndroid, InteractionManager, Keyboard} from 'react-native'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; +import {BackHandler, InteractionManager, Keyboard} from 'react-native'; import Drawer from 'app/components/drawer'; import ChannelDrawerList from 'app/components/channel_drawer_list'; @@ -39,13 +40,13 @@ export default class ChannelDrawer extends PureComponent { componentDidMount() { EventEmitter.on('open_channel_drawer', this.openChannelDrawer); EventEmitter.on('close_channel_drawer', this.closeChannelDrawer); - BackAndroid.addEventListener('hardwareBackPress', this.handleAndroidBack); + BackHandler.addEventListener('hardwareBackPress', this.handleAndroidBack); } componentWillUnmount() { EventEmitter.off('open_channel_drawer', this.openChannelDrawer); EventEmitter.off('close_channel_drawer', this.closeChannelDrawer); - BackAndroid.removeEventListener('hardwareBackPress', this.handleAndroidBack); + BackHandler.removeEventListener('hardwareBackPress', this.handleAndroidBack); } handleAndroidBack = () => { diff --git a/app/components/channel_drawer_list/channel_drawer_item.js b/app/components/channel_drawer_list/channel_drawer_item.js index d81f83035..020fc8660 100644 --- a/app/components/channel_drawer_list/channel_drawer_item.js +++ b/app/components/channel_drawer_list/channel_drawer_item.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, TouchableHighlight, diff --git a/app/components/channel_drawer_list/channel_drawer_list.js b/app/components/channel_drawer_list/channel_drawer_list.js index 2498c34b8..3880451ab 100644 --- a/app/components/channel_drawer_list/channel_drawer_list.js +++ b/app/components/channel_drawer_list/channel_drawer_list.js @@ -2,7 +2,8 @@ // See License.txt for license information. import deepEqual from 'deep-equal'; -import React, {PropTypes, Component} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { ListView, Platform, diff --git a/app/components/channel_drawer_list/unread_indicator.js b/app/components/channel_drawer_list/unread_indicator.js index 1a40572e6..ba3b48587 100644 --- a/app/components/channel_drawer_list/unread_indicator.js +++ b/app/components/channel_drawer_list/unread_indicator.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {StyleSheet, Text, View} from 'react-native'; const Styles = StyleSheet.create({ diff --git a/app/components/channel_icon.js b/app/components/channel_icon.js index 4559bb6a0..1166d1e27 100644 --- a/app/components/channel_icon.js +++ b/app/components/channel_icon.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/channel_intro/channel_intro.js b/app/components/channel_intro/channel_intro.js index b7f5d5c35..dd7465800 100644 --- a/app/components/channel_intro/channel_intro.js +++ b/app/components/channel_intro/channel_intro.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/channel_loader.js b/app/components/channel_loader.js index 993149243..5f5c2f850 100644 --- a/app/components/channel_loader.js +++ b/app/components/channel_loader.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, View diff --git a/app/components/checkmark.js b/app/components/checkmark.js index 47943cbe6..796753e54 100644 --- a/app/components/checkmark.js +++ b/app/components/checkmark.js @@ -1,16 +1,15 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; -import Svg, { - Path -} from 'react-native-svg'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; +import Svg, {Path} from 'react-native-svg'; -export default class CheckMark extends React.Component { +export default class CheckMark extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/custom_list/channel_list_row.js b/app/components/custom_list/channel_list_row.js index 48822195c..ceb0199a2 100644 --- a/app/components/custom_list/channel_list_row.js +++ b/app/components/custom_list/channel_list_row.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/custom_list/index.js b/app/components/custom_list/index.js index 235c5416f..9014fe553 100644 --- a/app/components/custom_list/index.js +++ b/app/components/custom_list/index.js @@ -1,6 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {ListView, Platform, StyleSheet, Text, View} from 'react-native'; import FormattedText from 'app/components/formatted_text'; import {makeStyleSheetFromTheme, changeOpacity} from 'app/utils/theme'; diff --git a/app/components/custom_list/member_list_row.js b/app/components/custom_list/member_list_row.js index 306e59df0..8b8d805cb 100644 --- a/app/components/custom_list/member_list_row.js +++ b/app/components/custom_list/member_list_row.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/drawer.js b/app/components/drawer.js index ce4e96f81..a3de8fe70 100644 --- a/app/components/drawer.js +++ b/app/components/drawer.js @@ -1,14 +1,14 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import PropTypes from 'prop-types'; import BaseDrawer from 'react-native-drawer'; // Extends react-native-drawer to allow better control over the open/closed state from the parent export default class Drawer extends BaseDrawer { static propTypes = { ...BaseDrawer.propTypes, - onRequestClose: React.PropTypes.func.isRequired + onRequestClose: PropTypes.func.isRequired }; processTapGestures = () => { diff --git a/app/components/error_list/error_list.js b/app/components/error_list/error_list.js index c24e45f40..b39690445 100644 --- a/app/components/error_list/error_list.js +++ b/app/components/error_list/error_list.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Dimensions, StyleSheet, diff --git a/app/components/error_list/general_error.js b/app/components/error_list/general_error.js index a9463a08e..a32cac69b 100644 --- a/app/components/error_list/general_error.js +++ b/app/components/error_list/general_error.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, View, diff --git a/app/components/error_text.js b/app/components/error_text.js index 1cf3cc4db..833170396 100644 --- a/app/components/error_text.js +++ b/app/components/error_text.js @@ -2,7 +2,8 @@ // See License.txt for license information. import {connect} from 'react-redux'; -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {StyleSheet, Text} from 'react-native'; import FormattedText from 'app/components/formatted_text'; diff --git a/app/components/file_attachment_list/file_attachment.js b/app/components/file_attachment_list/file_attachment.js index 41ab992dd..1c3c3f117 100644 --- a/app/components/file_attachment_list/file_attachment.js +++ b/app/components/file_attachment_list/file_attachment.js @@ -1,11 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, { - PropTypes, - PureComponent -} from 'react'; - +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Text, TouchableOpacity, diff --git a/app/components/file_attachment_list/file_attachment_icon.js b/app/components/file_attachment_list/file_attachment_icon.js index c593f34b3..5bfce7b1f 100644 --- a/app/components/file_attachment_list/file_attachment_icon.js +++ b/app/components/file_attachment_list/file_attachment_icon.js @@ -1,11 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, { - Component, - PropTypes -} from 'react'; - +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { View, Image, diff --git a/app/components/file_attachment_list/file_attachment_image.js b/app/components/file_attachment_list/file_attachment_image.js index 2184973fe..b24cdb61f 100644 --- a/app/components/file_attachment_list/file_attachment_image.js +++ b/app/components/file_attachment_list/file_attachment_image.js @@ -1,10 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, { - PropTypes, - PureComponent -} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { ActivityIndicator, Animated, diff --git a/app/components/file_attachment_list/file_attachment_list.js b/app/components/file_attachment_list/file_attachment_list.js index e6684acec..0445f8f93 100644 --- a/app/components/file_attachment_list/file_attachment_list.js +++ b/app/components/file_attachment_list/file_attachment_list.js @@ -1,11 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, { - Component, - PropTypes -} from 'react'; - +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { View, TouchableOpacity diff --git a/app/components/file_upload_preview/file_upload_preview.js b/app/components/file_upload_preview/file_upload_preview.js index 73508753f..d3425ebea 100644 --- a/app/components/file_upload_preview/file_upload_preview.js +++ b/app/components/file_upload_preview/file_upload_preview.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Dimensions, Platform, diff --git a/app/components/formatted_date.js b/app/components/formatted_date.js index bd3fa8c41..3e8bce8ea 100644 --- a/app/components/formatted_date.js +++ b/app/components/formatted_date.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {Component, PropTypes} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import {Text} from 'react-native'; diff --git a/app/components/formatted_text.js b/app/components/formatted_text.js index ceb69810e..a84ec74e8 100644 --- a/app/components/formatted_text.js +++ b/app/components/formatted_text.js @@ -1,10 +1,9 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {Component, PropTypes} from 'react'; - +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import {Text} from 'react-native'; - import {injectIntl, intlShape} from 'react-intl'; class FormattedText extends Component { diff --git a/app/components/formatted_time.js b/app/components/formatted_time.js index ff32c0fb3..6fa9f1d35 100644 --- a/app/components/formatted_time.js +++ b/app/components/formatted_time.js @@ -1,16 +1,17 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import {Text} from 'react-native'; -class FormattedTime extends React.Component { +class FormattedTime extends Component { static propTypes = { intl: intlShape.isRequired, - value: React.PropTypes.any.isRequired, - format: React.PropTypes.string, - children: React.PropTypes.func + value: PropTypes.any.isRequired, + format: PropTypes.string, + children: PropTypes.func }; render() { diff --git a/app/components/layout/keyboard_layout.js b/app/components/layout/keyboard_layout.js index a629a71c1..8a83b78a6 100644 --- a/app/components/layout/keyboard_layout.js +++ b/app/components/layout/keyboard_layout.js @@ -1,14 +1,15 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import {KeyboardAvoidingView, Platform, View} from 'react-native'; -export default class KeyboardLayout extends React.Component { +export default class KeyboardLayout extends Component { static propTypes = { - behaviour: React.PropTypes.string, - children: React.PropTypes.node, - keyboardVerticalOffset: React.PropTypes.number + behaviour: PropTypes.string, + children: PropTypes.node, + keyboardVerticalOffset: PropTypes.number }; render() { diff --git a/app/components/loading.js b/app/components/loading.js index f76e25dfe..76d6abb4a 100644 --- a/app/components/loading.js +++ b/app/components/loading.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {ActivityIndicator, StyleSheet, View} from 'react-native'; diff --git a/app/components/markdown/index.js b/app/components/markdown/index.js index 7536ae283..a7a7d45a0 100644 --- a/app/components/markdown/index.js +++ b/app/components/markdown/index.js @@ -3,7 +3,8 @@ import {Parser} from 'commonmark'; import Renderer from 'commonmark-react-renderer'; -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/markdown/markdown_image.js b/app/components/markdown/markdown_image.js index a5fad312e..d3a338f70 100644 --- a/app/components/markdown/markdown_image.js +++ b/app/components/markdown/markdown_image.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {Image} from 'react-native'; export default class MarkdownLink extends PureComponent { diff --git a/app/components/markdown/markdown_link.js b/app/components/markdown/markdown_link.js index 7de9f3e12..d20bba41e 100644 --- a/app/components/markdown/markdown_link.js +++ b/app/components/markdown/markdown_link.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {Linking, Text} from 'react-native'; import CustomPropTypes from 'app/constants/custom_prop_types'; diff --git a/app/components/markdown/markdown_list.js b/app/components/markdown/markdown_list.js index c4357287a..e859d7a5f 100644 --- a/app/components/markdown/markdown_list.js +++ b/app/components/markdown/markdown_list.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {View} from 'react-native'; export default class MarkdownList extends PureComponent { diff --git a/app/components/markdown/markdown_list_item.js b/app/components/markdown/markdown_list_item.js index 8b3b85eb7..fb00bcef1 100644 --- a/app/components/markdown/markdown_list_item.js +++ b/app/components/markdown/markdown_list_item.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/components/mattermost_icon.js b/app/components/mattermost_icon.js index 03046e724..7c4a5ec92 100644 --- a/app/components/mattermost_icon.js +++ b/app/components/mattermost_icon.js @@ -1,17 +1,18 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import Svg, { G, Path } from 'react-native-svg'; -export default class AwayStatus extends React.Component { +export default class AwayStatus extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/offline_indicator/offline_indicator.js b/app/components/offline_indicator/offline_indicator.js index 06c565c5e..734c5d6f3 100644 --- a/app/components/offline_indicator/offline_indicator.js +++ b/app/components/offline_indicator/offline_indicator.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { ActivityIndicator, Animated, diff --git a/app/components/options_context/options_context.android.js b/app/components/options_context/options_context.android.js index 8eb177e76..5b44c5e3c 100644 --- a/app/components/options_context/options_context.android.js +++ b/app/components/options_context/options_context.android.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import {PropTypes, PureComponent} from 'react'; +import {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import RNBottomSheet from 'react-native-bottom-sheet'; export default class OptionsContext extends PureComponent { diff --git a/app/components/options_context/options_context.ios.js b/app/components/options_context/options_context.ios.js index a54afd253..bf1caa24b 100644 --- a/app/components/options_context/options_context.ios.js +++ b/app/components/options_context/options_context.ios.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import ToolTip from 'react-native-tooltip'; export default class OptionsContext extends PureComponent { diff --git a/app/components/paper_plane.js b/app/components/paper_plane.js index 189af4162..df26cd8c2 100644 --- a/app/components/paper_plane.js +++ b/app/components/paper_plane.js @@ -1,16 +1,15 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; -import Svg, { - Path -} from 'react-native-svg'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; +import Svg, {Path} from 'react-native-svg'; -export default class PaperPlane extends React.Component { +export default class PaperPlane extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/post/post.js b/app/components/post/post.js index 027ff5158..0025e65f6 100644 --- a/app/components/post/post.js +++ b/app/components/post/post.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Alert, Image, diff --git a/app/components/post_list/date_header.js b/app/components/post_list/date_header.js index 796e27c99..4bedf8c71 100644 --- a/app/components/post_list/date_header.js +++ b/app/components/post_list/date_header.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import {StyleSheet, View} from 'react-native'; import FormattedDate from 'app/components/formatted_date'; diff --git a/app/components/post_list/load_more_posts.js b/app/components/post_list/load_more_posts.js index 172391dbb..d919fd57f 100644 --- a/app/components/post_list/load_more_posts.js +++ b/app/components/post_list/load_more_posts.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PureComponent, PropTypes} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { View, StyleSheet, diff --git a/app/components/post_list/post_list.js b/app/components/post_list/post_list.js index 48bd8f11c..24ea8f1e9 100644 --- a/app/components/post_list/post_list.js +++ b/app/components/post_list/post_list.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {Component, PropTypes} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { ListView, StyleSheet, diff --git a/app/components/post_list_retry.js b/app/components/post_list_retry.js index 173ffcb84..e498af07b 100644 --- a/app/components/post_list_retry.js +++ b/app/components/post_list_retry.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Platform, StyleSheet, diff --git a/app/components/post_textbox/components/paper_clip_icon.js b/app/components/post_textbox/components/paper_clip_icon.js index 460e9affb..4d494051a 100644 --- a/app/components/post_textbox/components/paper_clip_icon.js +++ b/app/components/post_textbox/components/paper_clip_icon.js @@ -1,14 +1,15 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import Svg, {G, Path} from 'react-native-svg'; -export default class PaperClipIcon extends React.Component { +export default class PaperClipIcon extends Component { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; setNativeProps = (nativeProps) => { diff --git a/app/components/post_textbox/post_textbox.js b/app/components/post_textbox/post_textbox.js index 0ceec1d2c..2b9522154 100644 --- a/app/components/post_textbox/post_textbox.js +++ b/app/components/post_textbox/post_textbox.js @@ -1,17 +1,18 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Alert, - BackAndroid, + BackHandler, Keyboard, Platform, StyleSheet, - TouchableOpacity, - View, Text, - TextInput + TextInput, + TouchableOpacity, + View } from 'react-native'; import Icon from 'react-native-vector-icons/Ionicons'; import ImagePicker from 'react-native-image-picker'; @@ -70,7 +71,7 @@ class PostTextbox extends PureComponent { componentDidMount() { if (Platform.OS === 'android') { Keyboard.addListener('keyboardDidHide', this.handleAndroidKeyboard); - BackAndroid.addEventListener('hardwareBackPress', this.handleAndroidBack); + BackHandler.addEventListener('hardwareBackPress', this.handleAndroidBack); } } @@ -107,7 +108,7 @@ class PostTextbox extends PureComponent { componentWillUnmount() { if (Platform.OS === 'android') { Keyboard.removeListener('keyboardDidHide', this.handleAndroidKeyboard); - BackAndroid.removeEventListener('hardwareBackPress', this.handleAndroidBack); + BackHandler.removeEventListener('hardwareBackPress', this.handleAndroidBack); } } @@ -116,8 +117,12 @@ class PostTextbox extends PureComponent { }; handleContentSizeChange = (e) => { + let height = e.nativeEvent.contentSize.height; + if (height < INITIAL_HEIGHT) { + height = INITIAL_HEIGHT; + } this.setState({ - contentHeight: e.nativeEvent.contentSize.height + contentHeight: height }); }; @@ -334,7 +339,7 @@ class PostTextbox extends PureComponent { }; render() { - const {channelIsLoading, theme, value, intl} = this.props; + const {channelIsLoading, intl, theme, value} = this.props; const style = getStyleSheet(theme); const textInputHeight = Math.min(this.state.contentHeight, MAX_CONTENT_HEIGHT); @@ -436,7 +441,7 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { paddingBottom: 8, paddingLeft: 12, paddingRight: 12, - paddingTop: 6, + paddingTop: 8, textAlignVertical: 'top' }, inputContainer: { diff --git a/app/components/profile_picture/profile_picture.js b/app/components/profile_picture/profile_picture.js index f79295237..91c7a8981 100644 --- a/app/components/profile_picture/profile_picture.js +++ b/app/components/profile_picture/profile_picture.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {Image, Platform, StyleSheet, View} from 'react-native'; import Icon from 'react-native-vector-icons/FontAwesome'; @@ -21,17 +22,17 @@ const STATUS_BUFFER = Platform.select({ android: 2 }); -export default class ProfilePicture extends React.PureComponent { +export default class ProfilePicture extends PureComponent { static propTypes = { - size: React.PropTypes.number, - statusBorderWidth: React.PropTypes.number, - statusSize: React.PropTypes.number, - statusIconSize: React.PropTypes.number, - user: React.PropTypes.object, - status: React.PropTypes.string, - theme: React.PropTypes.object.isRequired, - actions: React.PropTypes.shape({ - getStatusForId: React.PropTypes.func.isRequired + size: PropTypes.number, + statusBorderWidth: PropTypes.number, + statusSize: PropTypes.number, + statusIconSize: PropTypes.number, + user: PropTypes.object, + status: PropTypes.string, + theme: PropTypes.object.isRequired, + actions: PropTypes.shape({ + getStatusForId: PropTypes.func.isRequired }) }; diff --git a/app/components/push_notification/index.js b/app/components/push_notification/index.js deleted file mode 100644 index 43c7f6532..000000000 --- a/app/components/push_notification/index.js +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import {bindActionCreators} from 'redux'; -import {connect} from 'react-redux'; - -import {goToNotification, queueNotification} from 'app/actions/views/root'; -import {setDeviceToken} from 'mattermost-redux/actions/general'; -import {getUnreads} from 'mattermost-redux/selectors/entities/channels'; - -import PushNotification from './push_notification'; - -function mapStateToProps(state, ownProps) { - const {currentTeamId, teams} = state.entities.teams; - const {currentChannelId} = state.entities.channels; - - return { - ...ownProps, - currentTeamId, - currentChannelId, - teams, - ...getUnreads(state) - }; -} - -function mapDispatchToProps(dispatch) { - return { - actions: bindActionCreators({ - goToNotification, - queueNotification, - setDeviceToken - }, dispatch) - }; -} - -export default connect(mapStateToProps, mapDispatchToProps)(PushNotification); diff --git a/app/components/push_notification/push_notification.js b/app/components/push_notification/push_notification.js deleted file mode 100644 index 741c0c6ef..000000000 --- a/app/components/push_notification/push_notification.js +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import React, {PropTypes, PureComponent} from 'react'; -import {Platform} from 'react-native'; -import DeviceNotification from 'react-native-push-notification'; -import {MessageBar, MessageBarManager} from 'react-native-message-bar'; - -import {changeOpacity} from 'app/utils/theme'; -import icon from 'assets/images/icon.png'; -import {GooglePlaySenderId} from 'assets/config.json'; - -import {General} from 'mattermost-redux/constants'; - -export default class PushNotification extends PureComponent { - static propTypes = { - actions: PropTypes.shape({ - goToNotification: PropTypes.func.isRequired, - queueNotification: PropTypes.func.isRequired, - setDeviceToken: PropTypes.func.isRequired - }).isRequired, - currentTeamId: PropTypes.string, - currentChannelId: PropTypes.string, - mentionCount: PropTypes.number, - teams: PropTypes.object - }; - - static defaultProps: { - mentionCount: 0, - teams: {} - }; - - constructor(props) { - super(props); - - this.isConfigured = false; - } - - componentDidMount() { - MessageBarManager.registerMessageBar(this.refs.notification); - this.configurePushNotifications(); - } - - componentWillUnmount() { - MessageBarManager.unregisterMessageBar(); - DeviceNotification.unregister(); - } - - componentWillReceiveProps(props) { - if (this.isConfigured) { - DeviceNotification.setApplicationIconBadgeNumber(props.mentionCount); - } - } - - configurePushNotifications = () => { - DeviceNotification.configure({ - onRegister: this.onRegisterDevice, - onNotification: this.onPushNotification, - senderID: GooglePlaySenderId, - popInitialNotification: true, - requestPermissions: true - }); - }; - - onRegisterDevice = (data) => { - const prefix = Platform.OS === 'ios' ? General.PUSH_NOTIFY_APPLE_REACT_NATIVE : General.PUSH_NOTIFY_ANDROID_REACT_NATIVE; - this.props.actions.setDeviceToken(`${prefix}:${data.token}`); - this.isConfigured = true; - }; - - onPushNotification = (deviceNotification) => { - const {foreground, userInteraction, data, message} = deviceNotification; - let notification; - - if (Platform.OS === 'android') { - notification = { - data: { - channel_id: deviceNotification.channel_id, - team_id: deviceNotification.team_id - }, - message - }; - } else { - notification = { - data, - message - }; - } - - if (foreground) { - this.handleInAppNotification(notification); - } else if (userInteraction) { - this.onNotificationTapped(notification); - } - }; - - onNotificationTapped = (notification) => { - const {currentTeamId, currentChannelId, teams} = this.props; - - if (currentTeamId && currentChannelId && Object.keys(teams).length) { - // this means that the store has the necessary data - this.props.actions.goToNotification(notification); - } else { - this.props.actions.queueNotification(notification); - } - }; - - handleInAppNotification = (notification) => { - const {data, message} = notification; - const {currentChannelId} = this.props; - - if (data.channel_id !== currentChannelId) { - MessageBarManager.showAlert({ - alertType: 'extra', - avatar: icon, - avatarStyle: {borderRadius: 10, width: 20, height: 20}, - message, - stylesheetExtra: {backgroundColor: changeOpacity('#000', 0.9)}, - messageStyle: {color: 'white', fontSize: 13}, - viewTopInset: 15, - viewBottomInset: 15, - duration: 5000, - onTapped: () => this.onNotificationTapped(notification) - }); - } - }; - - render() { - return ( - - ); - } -} diff --git a/app/components/reply_icon.js b/app/components/reply_icon.js index 244bc4153..21e507383 100644 --- a/app/components/reply_icon.js +++ b/app/components/reply_icon.js @@ -1,16 +1,17 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import Svg, { Path } from 'react-native-svg'; -export default class ReplyIcon extends React.Component { +export default class ReplyIcon extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/root/index.js b/app/components/root/index.js index e6730bfa9..df11f6e94 100644 --- a/app/components/root/index.js +++ b/app/components/root/index.js @@ -5,6 +5,7 @@ import {connect} from 'react-redux'; import {getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels'; +import {getTheme} from 'app/selectors/preferences'; import Config from 'assets/config.json'; import Root from './root'; @@ -20,6 +21,7 @@ function mapStateToProps(state, ownProps) { return { ...ownProps, + theme: getTheme(state), currentChannelId: getCurrentChannelId(state), locale }; diff --git a/app/components/root/root.js b/app/components/root/root.js index e7b206458..a8a7914d1 100644 --- a/app/components/root/root.js +++ b/app/components/root/root.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {IntlProvider} from 'react-intl'; import EventEmitter from 'mattermost-redux/utils/event_emitter'; @@ -14,15 +15,18 @@ export default class Root extends PureComponent { children: PropTypes.node, navigator: PropTypes.object, currentChannelId: PropTypes.string, - locale: PropTypes.string.isRequired + locale: PropTypes.string.isRequired, + theme: PropTypes.object.isRequired }; componentWillMount() { EventEmitter.on(ViewTypes.NOTIFICATION_IN_APP, this.handleInAppNotification); + EventEmitter.on(ViewTypes.NOTIFICATION_TAPPED, this.handleNotificationTapped); } componentWillUnmount() { EventEmitter.off(ViewTypes.NOTIFICATION_IN_APP, this.handleInAppNotification); + EventEmitter.off(ViewTypes.NOTIFICATION_TAPPED, this.handleNotificationTapped); } handleInAppNotification = (notification) => { @@ -42,6 +46,21 @@ export default class Root extends PureComponent { } }; + handleNotificationTapped = () => { + const {navigator, theme} = this.props; + + navigator.resetTo({ + screen: 'Channel', + animated: true, + navigatorStyle: { + navBarHidden: true, + statusBarHidden: false, + statusBarHideWithNavBar: false, + screenBackgroundColor: theme.centerChannelBg + } + }); + }; + render() { const locale = this.props.locale; diff --git a/app/components/search_bar/search_bar.android.js b/app/components/search_bar/search_bar.android.js index e45e588a5..6dc6bb5ab 100644 --- a/app/components/search_bar/search_bar.android.js +++ b/app/components/search_bar/search_bar.android.js @@ -1,6 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Keyboard, TextInput, diff --git a/app/components/search_bar/search_bar.ios.js b/app/components/search_bar/search_bar.ios.js index 404b947f8..2d3df10a0 100644 --- a/app/components/search_bar/search_bar.ios.js +++ b/app/components/search_bar/search_bar.ios.js @@ -1,6 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import SearchBar from 'react-native-search-bar'; export default class SearchBarIos extends PureComponent { diff --git a/app/components/status_icons/away.js b/app/components/status_icons/away.js index fc4a16b5c..190bbb8b1 100644 --- a/app/components/status_icons/away.js +++ b/app/components/status_icons/away.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {View} from 'react-native'; import Svg, { Ellipse, @@ -9,11 +10,11 @@ import Svg, { Path } from 'react-native-svg'; -export default class AwayStatus extends React.Component { +export default class AwayStatus extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/status_icons/offline.js b/app/components/status_icons/offline.js index def156018..d82b4d1f1 100644 --- a/app/components/status_icons/offline.js +++ b/app/components/status_icons/offline.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {View} from 'react-native'; import Svg, { Ellipse, @@ -9,11 +10,11 @@ import Svg, { Path } from 'react-native-svg'; -export default class OfflineStatus extends React.Component { +export default class OfflineStatus extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/status_icons/online.js b/app/components/status_icons/online.js index 63e353e72..61b25fce9 100644 --- a/app/components/status_icons/online.js +++ b/app/components/status_icons/online.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {View} from 'react-native'; import Svg, { Ellipse, @@ -9,11 +10,11 @@ import Svg, { Path } from 'react-native-svg'; -export default class OnlineStatus extends React.Component { +export default class OnlineStatus extends PureComponent { static propTypes = { - width: React.PropTypes.number.isRequired, - height: React.PropTypes.number.isRequired, - color: React.PropTypes.string.isRequired + width: PropTypes.number.isRequired, + height: PropTypes.number.isRequired, + color: PropTypes.string.isRequired }; render() { diff --git a/app/components/text_input_with_localized_placeholder.js b/app/components/text_input_with_localized_placeholder.js index c84007225..e0f27a968 100644 --- a/app/components/text_input_with_localized_placeholder.js +++ b/app/components/text_input_with_localized_placeholder.js @@ -1,14 +1,15 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import {TextInput} from 'react-native'; -class TextInputWithLocalizedPlaceholder extends React.PureComponent { +class TextInputWithLocalizedPlaceholder extends PureComponent { static propTypes = { ...TextInput.propTypes, - placeholder: React.PropTypes.object.isRequired, + placeholder: PropTypes.object.isRequired, intl: intlShape.isRequired }; diff --git a/app/constants/custom_prop_types.js b/app/constants/custom_prop_types.js index ba99f2f8a..7942a4539 100644 --- a/app/constants/custom_prop_types.js +++ b/app/constants/custom_prop_types.js @@ -1,7 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import {PropTypes} from 'react'; +import PropTypes from 'prop-types'; export const Children = PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf([PropTypes.node])]); diff --git a/app/constants/view.js b/app/constants/view.js index 95bb5ad5f..b90031ef4 100644 --- a/app/constants/view.js +++ b/app/constants/view.js @@ -16,6 +16,7 @@ const ViewTypes = keyMirror({ NOTIFICATION_CHANGED: null, NOTIFICATION_IN_APP: null, + NOTIFICATION_TAPPED: null, CONNECTION_CHANGED: null, diff --git a/app/mattermost.js b/app/mattermost.js index a73e24a15..0b656b731 100644 --- a/app/mattermost.js +++ b/app/mattermost.js @@ -144,6 +144,7 @@ export default class Mattermost { if (!state.views.root.appInitializing) { // go to notification if the app is initialized goToNotification(notification)(dispatch, getState); + EventEmitter.emit(ViewTypes.NOTIFICATION_TAPPED); } else if (state.entities.general.credentials.token) { // queue notification if app is not initialized but we are logged in queueNotification(notification)(dispatch, getState); diff --git a/app/screens/about/about.js b/app/screens/about/about.js index 0998119eb..65af1897d 100644 --- a/app/screens/about/about.js +++ b/app/screens/about/about.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Linking, ScrollView, diff --git a/app/screens/account_notifications/account_notifications.js b/app/screens/account_notifications/account_notifications.js index 3d7fcefa6..13e940e92 100644 --- a/app/screens/account_notifications/account_notifications.js +++ b/app/screens/account_notifications/account_notifications.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Keyboard, diff --git a/app/screens/account_notifications/section.js b/app/screens/account_notifications/section.js index cc0b3f4f5..f0f61c26d 100644 --- a/app/screens/account_notifications/section.js +++ b/app/screens/account_notifications/section.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, View diff --git a/app/screens/account_notifications/section_item.js b/app/screens/account_notifications/section_item.js index b46e76e03..984a20529 100644 --- a/app/screens/account_notifications/section_item.js +++ b/app/screens/account_notifications/section_item.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Switch, diff --git a/app/screens/account_settings/account_settings.js b/app/screens/account_settings/account_settings.js index 9e2df4175..604f9c32a 100644 --- a/app/screens/account_settings/account_settings.js +++ b/app/screens/account_settings/account_settings.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { StyleSheet, diff --git a/app/screens/channel/channel.js b/app/screens/channel/channel.js index 0157c518e..8d18b5ee4 100644 --- a/app/screens/channel/channel.js +++ b/app/screens/channel/channel.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Dimensions, diff --git a/app/screens/channel/channel_drawer_button.js b/app/screens/channel/channel_drawer_button.js index 9ca8c1e78..feedd412b 100644 --- a/app/screens/channel/channel_drawer_button.js +++ b/app/screens/channel/channel_drawer_button.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {connect} from 'react-redux'; import { PanResponder, @@ -58,9 +59,7 @@ class ChannelDrawerButton extends PureComponent { } componentWillReceiveProps(nextProps) { - if (nextProps.mentionCount !== this.props.mentionCount) { - DeviceNotification.setApplicationIconBadgeNumber(nextProps.mentionCount); - } + DeviceNotification.setApplicationIconBadgeNumber(nextProps.mentionCount); } componentWillUnmount() { diff --git a/app/screens/channel/channel_post_list/channel_post_list.js b/app/screens/channel/channel_post_list/channel_post_list.js index ef9462ba1..e0d607892 100644 --- a/app/screens/channel/channel_post_list/channel_post_list.js +++ b/app/screens/channel/channel_post_list/channel_post_list.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Animated, diff --git a/app/screens/channel/channel_title.js b/app/screens/channel/channel_title.js index b8056a656..1182caf53 100644 --- a/app/screens/channel/channel_title.js +++ b/app/screens/channel/channel_title.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import {connect} from 'react-redux'; import { Text, diff --git a/app/screens/channel_add_members/channel_add_members.js b/app/screens/channel_add_members/channel_add_members.js index 10e3a043b..a026df9a0 100644 --- a/app/screens/channel_add_members/channel_add_members.js +++ b/app/screens/channel_add_members/channel_add_members.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Alert, diff --git a/app/screens/channel_info/channel_info.js b/app/screens/channel_info/channel_info.js index 19c8f4297..9b4d69035 100644 --- a/app/screens/channel_info/channel_info.js +++ b/app/screens/channel_info/channel_info.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Alert, diff --git a/app/screens/channel_info/channel_info_header.js b/app/screens/channel_info/channel_info_header.js index f0d521223..0530e392a 100644 --- a/app/screens/channel_info/channel_info_header.js +++ b/app/screens/channel_info/channel_info_header.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/screens/channel_info/channel_info_row.js b/app/screens/channel_info/channel_info_row.js index 39dcde605..8727baedd 100644 --- a/app/screens/channel_info/channel_info_row.js +++ b/app/screens/channel_info/channel_info_row.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Switch, diff --git a/app/screens/channel_members/channel_members.js b/app/screens/channel_members/channel_members.js index db4ea5f0f..aa7fd43bb 100644 --- a/app/screens/channel_members/channel_members.js +++ b/app/screens/channel_members/channel_members.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Alert, Keyboard, diff --git a/app/screens/create_channel/create_channel.js b/app/screens/create_channel/create_channel.js index 4060d39a0..3560ec1f7 100644 --- a/app/screens/create_channel/create_channel.js +++ b/app/screens/create_channel/create_channel.js @@ -1,6 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Dimensions, diff --git a/app/screens/edit_post/edit_post.js b/app/screens/edit_post/edit_post.js index 4cb2bd70d..7ca3429ba 100644 --- a/app/screens/edit_post/edit_post.js +++ b/app/screens/edit_post/edit_post.js @@ -1,6 +1,7 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Dimensions, diff --git a/app/screens/image_preview/image_preview.js b/app/screens/image_preview/image_preview.js index 4835a7bf8..6cc17a746 100644 --- a/app/screens/image_preview/image_preview.js +++ b/app/screens/image_preview/image_preview.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Animated, Dimensions, diff --git a/app/screens/image_preview/zoomable_image.js b/app/screens/image_preview/zoomable_image.js index b35137581..f433773f4 100644 --- a/app/screens/image_preview/zoomable_image.js +++ b/app/screens/image_preview/zoomable_image.js @@ -2,7 +2,8 @@ // http://stackoverflow.com/users/219449/leonti // http://stackoverflow.com/questions/36368919/scrollable-image-with-pinch-to-zoom -import React, {Component, PropTypes} from 'react'; +import React, {Component} from 'react'; +import PropTypes from 'prop-types'; import { View, PanResponder diff --git a/app/screens/load_team/load_team.js b/app/screens/load_team/load_team.js index 2e00385cc..b079eede3 100644 --- a/app/screens/load_team/load_team.js +++ b/app/screens/load_team/load_team.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {StatusBar, View} from 'react-native'; import {RequestStatus} from 'mattermost-redux/constants'; diff --git a/app/screens/login/login.js b/app/screens/login/login.js index 5b5d85141..ea64f0bf0 100644 --- a/app/screens/login/login.js +++ b/app/screens/login/login.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PureComponent, PropTypes} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { ActivityIndicator, @@ -31,12 +32,12 @@ class Login extends PureComponent { intl: intlShape.isRequired, navigator: PropTypes.object, theme: PropTypes.object, - actions: React.PropTypes.shape({ - handleLoginIdChanged: React.PropTypes.func.isRequired, - handlePasswordChanged: React.PropTypes.func.isRequired, - handleSuccessfulLogin: React.PropTypes.func.isRequired, - checkMfa: React.PropTypes.func.isRequired, - login: React.PropTypes.func.isRequired + actions: PropTypes.shape({ + handleLoginIdChanged: PropTypes.func.isRequired, + handlePasswordChanged: PropTypes.func.isRequired, + handleSuccessfulLogin: PropTypes.func.isRequired, + checkMfa: PropTypes.func.isRequired, + login: PropTypes.func.isRequired }).isRequired, config: PropTypes.object.isRequired, license: PropTypes.object.isRequired, diff --git a/app/screens/login_options/login_options.js b/app/screens/login_options/login_options.js index 6eb7edd74..768a246cd 100644 --- a/app/screens/login_options/login_options.js +++ b/app/screens/login_options/login_options.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Image, diff --git a/app/screens/mfa/mfa.js b/app/screens/mfa/mfa.js index 0aeda0c4a..207d9aeec 100644 --- a/app/screens/mfa/mfa.js +++ b/app/screens/mfa/mfa.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { ActivityIndicator, Image, diff --git a/app/screens/more_channels/more_channels.js b/app/screens/more_channels/more_channels.js index 589e830e5..b81759639 100644 --- a/app/screens/more_channels/more_channels.js +++ b/app/screens/more_channels/more_channels.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Keyboard, diff --git a/app/screens/more_dms/more_dms.js b/app/screens/more_dms/more_dms.js index 27d5b2879..aa0f61f77 100644 --- a/app/screens/more_dms/more_dms.js +++ b/app/screens/more_dms/more_dms.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { Keyboard, diff --git a/app/screens/notification/notification.js b/app/screens/notification/notification.js index 329563aa5..a1db4ef45 100644 --- a/app/screens/notification/notification.js +++ b/app/screens/notification/notification.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Dimensions, Image, diff --git a/app/screens/options_modal/options_modal.js b/app/screens/options_modal/options_modal.js index a3f1872fe..d2af074ae 100644 --- a/app/screens/options_modal/options_modal.js +++ b/app/screens/options_modal/options_modal.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Animated, Dimensions, diff --git a/app/screens/options_modal/options_modal_list.android.js b/app/screens/options_modal/options_modal_list.android.js index 66a250b0d..b9334c508 100644 --- a/app/screens/options_modal/options_modal_list.android.js +++ b/app/screens/options_modal/options_modal_list.android.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/screens/options_modal/options_modal_list.ios.js b/app/screens/options_modal/options_modal_list.ios.js index c9c7f3ee9..038bcb908 100644 --- a/app/screens/options_modal/options_modal_list.ios.js +++ b/app/screens/options_modal/options_modal_list.ios.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Text, diff --git a/app/screens/root/root.js b/app/screens/root/root.js index 908e31c86..04ae48b25 100644 --- a/app/screens/root/root.js +++ b/app/screens/root/root.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {Client, Client4} from 'mattermost-redux/client'; import {RequestStatus} from 'mattermost-redux/constants'; diff --git a/app/screens/saml/saml.js b/app/screens/saml/saml.js index bc7afeb76..2a0f171c2 100644 --- a/app/screens/saml/saml.js +++ b/app/screens/saml/saml.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { InteractionManager, StatusBar, diff --git a/app/screens/select_server/select_server.js b/app/screens/select_server/select_server.js index f35b4c83f..b616a2f0c 100644 --- a/app/screens/select_server/select_server.js +++ b/app/screens/select_server/select_server.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { ActivityIndicator, diff --git a/app/screens/select_team/select_team.js b/app/screens/select_team/select_team.js index 480ef8030..71e8690ba 100644 --- a/app/screens/select_team/select_team.js +++ b/app/screens/select_team/select_team.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { Image, InteractionManager, diff --git a/app/screens/settings/settings.js b/app/screens/settings/settings.js index 588f0873b..a3d446c49 100644 --- a/app/screens/settings/settings.js +++ b/app/screens/settings/settings.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {injectIntl, intlShape} from 'react-intl'; import { InteractionManager, diff --git a/app/screens/settings/settings_item.js b/app/screens/settings/settings_item.js index fdd743419..784aabb26 100644 --- a/app/screens/settings/settings_item.js +++ b/app/screens/settings/settings_item.js @@ -1,7 +1,8 @@ // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {StyleSheet, TouchableOpacity, View} from 'react-native'; import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome'; import IonIcon from 'react-native-vector-icons/Ionicons'; diff --git a/app/screens/thread/thread.js b/app/screens/thread/thread.js index fe5054bc8..a13e923ff 100644 --- a/app/screens/thread/thread.js +++ b/app/screens/thread/thread.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import {StatusBar, StyleSheet} from 'react-native'; import KeyboardLayout from 'app/components/layout/keyboard_layout'; @@ -11,7 +12,7 @@ import {makeStyleSheetFromTheme} from 'app/utils/theme'; export default class Thread extends PureComponent { static propTypes = { - actions: React.PropTypes.shape({ + actions: PropTypes.shape({ handleCommentDraftChanged: PropTypes.func.isRequired, selectPost: PropTypes.func.isRequired }).isRequired, diff --git a/app/screens/user_profile/user_profile.js b/app/screens/user_profile/user_profile.js index 6982ac655..e923bc22d 100644 --- a/app/screens/user_profile/user_profile.js +++ b/app/screens/user_profile/user_profile.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes, PureComponent} from 'react'; +import React, {PureComponent} from 'react'; +import PropTypes from 'prop-types'; import { ScrollView, StyleSheet, diff --git a/app/screens/user_profile/user_profile_row.js b/app/screens/user_profile/user_profile_row.js index 579e05c49..9863fdb01 100644 --- a/app/screens/user_profile/user_profile_row.js +++ b/app/screens/user_profile/user_profile_row.js @@ -1,7 +1,8 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React, {PropTypes} from 'react'; +import React from 'react'; +import PropTypes from 'prop-types'; import { StyleSheet, Switch, diff --git a/package.json b/package.json index 1986e33c0..731e9af08 100644 --- a/package.json +++ b/package.json @@ -13,33 +13,34 @@ "deep-equal": "1.0.1", "intl": "1.2.5", "mattermost-redux": "mattermost/mattermost-redux#master", - "react": "15.4.2", - "react-intl": "2.2.3", - "react-native": "0.42.3", + "prop-types": "15.5.10", + "react": "16.0.0-alpha.6", + "react-intl": "2.3.0", + "react-native": "0.44.0", "react-native-bottom-sheet": "1.0.1", "react-native-button": "1.8.2", - "react-native-cookies": "2.0.0", + "react-native-cookies": "3.1.0", "react-native-device-info": "0.10.2", "react-native-drawer": "2.3.0", "react-native-image-picker": "0.26.3", "react-native-keyboard-aware-scroll-view": "0.2.8", "react-native-linear-gradient": "2.0.0", - "react-native-navigation": "1.1.70", + "react-native-navigation": "1.1.72", "react-native-orientation": "enahum/react-native-orientation.git", - "react-native-push-notification": "2.2.1", + "react-native-push-notification": "3.0.0", "react-native-search-bar": "enahum/react-native-search-bar.git", - "react-native-svg": "5.1.7", + "react-native-svg": "5.1.8", "react-native-tooltip": "5.0.0", - "react-native-vector-icons": "4.0.1", + "react-native-vector-icons": "4.1.1", "react-redux": "5.0.4", "redux": "3.6.0", "redux-batched-actions": "0.2.0", - "redux-persist": "4.6.0", + "redux-persist": "4.8.0", "redux-persist-transform-filter": "0.0.9", "redux-thunk": "2.2.0", - "reselect": "3.0.0", + "reselect": "3.0.1", "semver": "5.3.0", - "url-parse": "1.1.8" + "url-parse": "1.1.9" }, "devDependencies": { "babel-cli": "6.24.1", @@ -48,7 +49,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-latest": "6.24.1", "babel-preset-react": "6.24.1", - "babel-preset-react-native": "1.9.1", + "babel-preset-react-native": "1.9.2", "babel-preset-stage-0": "6.24.1", "babel-register": "6.24.1", "chai": "3.5.0", @@ -57,20 +58,20 @@ "enzyme": "2.8.2", "eslint": "3.19.0", "eslint-plugin-mocha": "4.9.0", - "eslint-plugin-react": "6.10.3", + "eslint-plugin-react": "7.0.1", "fetch-mock": "5.10.0", "form-data": "2.1.4", - "jsdom": "9.12.0", - "jsdom-global": "2.1.1", - "mocha": "3.3.0", + "jsdom": "10.1.0", + "jsdom-global": "3.0.2", + "mocha": "3.4.1", "mocha-react-native": "0.5.0", - "react-addons-test-utils": "15.4.2", - "react-dom": "15.4.2", + "react-addons-test-utils": "15.5.1", + "react-dom": "15.5.4", "react-native-mock": "0.3.1", "react-native-svg-mock": "1.0.2", - "react-test-renderer": "15.4.2", - "remote-redux-devtools": "0.5.7", - "remote-redux-devtools-on-debugger": "0.7.0" + "react-test-renderer": "15.5.4", + "remote-redux-devtools": "0.5.10", + "remote-redux-devtools-on-debugger": "0.7.1" }, "scripts": { "check": "node_modules/.bin/eslint --ext \".js\" --ignore-pattern node_modules --quiet .", diff --git a/yarn.lock b/yarn.lock index 045a9b79c..d3d4ffa8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -163,13 +163,6 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -array.prototype.find@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -214,6 +207,10 @@ async@^2.0.1: 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" @@ -399,7 +396,7 @@ babel-helper-regex@^6.24.1: babel-types "^6.24.1" lodash "^4.2.0" -babel-helper-remap-async-to-generator@^6.24.1: +babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" dependencies: @@ -523,6 +520,14 @@ babel-plugin-transform-async-generator-functions@^6.24.1: babel-plugin-syntax-async-generators "^6.5.0" babel-runtime "^6.22.0" +babel-plugin-transform-async-to-generator@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999" + dependencies: + babel-helper-remap-async-to-generator "^6.16.0" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.0.0" + babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" @@ -988,9 +993,9 @@ babel-preset-react-native-mocha@^1.9.0: babel-plugin-transform-react-display-name "^6.5.0" babel-plugin-transform-react-jsx "^6.5.0" -babel-preset-react-native@1.9.1, babel-preset-react-native@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-1.9.1.tgz#ec8e378274410d78f550fa9f8edd70353f3bb2fe" +babel-preset-react-native@1.9.2, babel-preset-react-native@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-1.9.2.tgz#b22addd2e355ff3b39671b79be807e52dfa145f2" dependencies: babel-plugin-check-es2015-constants "^6.5.0" babel-plugin-react-transform "2.0.2" @@ -1080,7 +1085,7 @@ babel-register@6.24.1, babel-register@^6.18.0, babel-register@^6.24.1: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0: +babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -1120,7 +1125,7 @@ babel-types@^6.19.0, babel-types@^6.21.0, babel-types@^6.23.0, babel-types@^6.24 lodash "^4.2.0" to-fast-properties "^1.0.1" -babylon@^6.11.0, babylon@^6.14.1, babylon@^6.15.0, babylon@^6.17.0: +babylon@^6.11.0, babylon@^6.15.0, babylon@^6.16.1, babylon@^6.17.0: version "6.17.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" @@ -1136,6 +1141,10 @@ base64-js@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" +base64-js@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8" + base64-js@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" @@ -1174,6 +1183,10 @@ beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" +big-integer@^1.6.7: + version "1.6.22" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.22.tgz#487c95fce886022ea48ff5f19e388932df46dd2e" + binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" @@ -1224,15 +1237,17 @@ boom@2.x.x: dependencies: hoek "2.x.x" -bplist-creator@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.4.tgz#4ac0496782e127a85c1d2026a4f5eb22a7aff991" +bplist-creator@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45" dependencies: - stream-buffers "~0.2.3" + stream-buffers "~2.2.0" -bplist-parser@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.0.6.tgz#38da3471817df9d44ab3892e27707bbbd75a11b9" +bplist-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6" + dependencies: + big-integer "^1.6.7" brace-expansion@^1.0.0: version "1.1.7" @@ -1265,6 +1280,12 @@ bser@^1.0.2: dependencies: node-int64 "^0.4.0" +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -1505,7 +1526,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.7, concat-stream@^1.5.2: +concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1813,13 +1834,6 @@ diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" @@ -1938,7 +1952,7 @@ errorhandler@~1.4.2: accepts "~1.3.0" escape-html "~1.0.3" -es-abstract@^1.6.1, es-abstract@^1.7.0: +es-abstract@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" dependencies: @@ -2045,15 +2059,13 @@ eslint-plugin-mocha@4.9.0: dependencies: ramda "^0.23.0" -eslint-plugin-react@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" +eslint-plugin-react@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.0.1.tgz#e78107e1e559c6e2b17786bb67c2e2a010ad0d2f" dependencies: - array.prototype.find "^2.0.1" - doctrine "^1.2.2" + doctrine "^2.0.0" has "^1.0.1" jsx-ast-utils "^1.3.4" - object.assign "^4.0.4" eslint@3.19.0: version "3.19.0" @@ -2264,12 +2276,18 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -fb-watchman@^1.8.0, fb-watchman@^1.9.0: +fb-watchman@^1.8.0: version "1.9.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" dependencies: bser "1.0.2" +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + fbjs-scripts@^0.7.0: version "0.7.1" resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.7.1.tgz#4f115e218e243e3addbf0eddaac1e3c62f703fac" @@ -2283,7 +2301,7 @@ fbjs-scripts@^0.7.0: semver "^5.1.0" through2 "^2.0.0" -fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.9: +fbjs@^0.8.4, fbjs@^0.8.9, fbjs@~0.8.9: version "0.8.12" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" dependencies: @@ -2397,7 +2415,7 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@2.1.4, form-data@~2.1.1: +form-data@2.1.4, form-data@^2.1.1, form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" dependencies: @@ -2424,15 +2442,13 @@ fs-extra@2.0.0: graceful-fs "^4.1.2" jsonfile "^2.1.0" -fs-extra@^0.26.2: - version "0.26.7" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" +fs-extra@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" fs-readdir-recursive@^1.0.0: version "1.0.0" @@ -2557,16 +2573,6 @@ glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - global@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" @@ -3076,14 +3082,14 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -jest-haste-map@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-18.0.0.tgz#707d3b5ae3bcbda971c39e8b911d20ad8502c748" +jest-haste-map@19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.0.tgz#adde00b62b1fe04432a104b3254fc5004514b55e" dependencies: - fb-watchman "^1.9.0" + fb-watchman "^2.0.0" graceful-fs "^4.1.6" - multimatch "^2.1.0" - sane "~1.4.1" + micromatch "^2.3.11" + sane "~1.5.0" worker-farm "^1.3.1" jodid25519@^1.0.0: @@ -3124,13 +3130,13 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom-global@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-2.1.1.tgz#47d46fe77f6167baf5d34431d3bb59fc41b0915a" +jsdom-global@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" -jsdom@9.12.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" +jsdom@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-10.1.0.tgz#7765e00fd5c3567f34985a1c86ff466a61dacc6a" dependencies: abab "^1.0.3" acorn "^4.0.4" @@ -3143,7 +3149,9 @@ jsdom@9.12.0: html-encoding-sniffer "^1.0.1" nwmatcher ">= 1.3.9 < 2.0.0" parse5 "^1.5.1" + pn "^1.0.0" request "^2.79.0" + request-promise-native "^1.0.3" sax "^1.2.1" symbol-tree "^3.2.1" tough-cookie "^2.3.2" @@ -3485,7 +3493,7 @@ lodash.unset@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.unset/-/lodash.unset-4.5.2.tgz#370d1d3e85b72a7e1b0cdf2d272121306f23e4ed" -lodash@4.x.x, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@^4.8.0: +lodash@4.x.x, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@^4.8.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3497,7 +3505,7 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.1.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: @@ -3562,7 +3570,7 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5: +micromatch@^2.1.5, micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -3610,7 +3618,7 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: +minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -3642,9 +3650,9 @@ mocha-react-native@0.5.0: babel-preset-react-native-mocha "^1.9.0" react-native-mock "^0.2.7" -mocha@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.3.0.tgz#d29b7428d3f52c82e2e65df1ecb7064e1aabbfb5" +mocha@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.1.tgz#a3802b4aa381934cacb38de70cf771621da8f9af" dependencies: browser-stdout "1.3.0" commander "2.9.0" @@ -3684,15 +3692,6 @@ ms@0.7.3, ms@^0.7.1: version "0.7.3" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" -multimatch@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - multiparty@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-3.3.2.tgz#35de6804dc19643e5249f3d3e3bdc6c8ce301d3f" @@ -3762,7 +3761,7 @@ node-pre-gyp@^0.6.29: tar "^2.2.1" tar-pack "^3.4.0" -node-uuid@1.4.7, node-uuid@^1.4.0: +node-uuid@^1.4.0: version "1.4.7" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" @@ -4024,9 +4023,9 @@ pause@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/pause/-/pause-0.1.0.tgz#ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74" -pegjs@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.9.0.tgz#f6aefa2e3ce56169208e52179dfe41f89141a369" +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" performance-now@^0.2.0, performance-now@~0.2.0: version "0.2.0" @@ -4046,7 +4045,15 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -plist@1.2.0, plist@^1.2.0: +plist@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b" + dependencies: + base64-js "1.1.2" + xmlbuilder "8.2.2" + xmldom "0.1.x" + +plist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/plist/-/plist-1.2.0.tgz#084b5093ddc92506e259f874b8d9b1afb8c79593" dependencies: @@ -4059,6 +4066,10 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" +pn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -4067,6 +4078,10 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +pretty-format@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-4.3.1.tgz#530be5c42b3c05b36414a7a2a4337aa80acd0e8d" + private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -4089,11 +4104,12 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.0.0, prop-types@^15.5.4: - version "15.5.8" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" +prop-types@15.5.10, prop-types@^15.0.0, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@~15.5.7: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" dependencies: fbjs "^0.8.9" + loose-envify "^1.3.1" proxy-addr@~1.1.3: version "1.1.4" @@ -4126,9 +4142,9 @@ querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -querystringify@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" raf@^3.2.0: version "3.3.0" @@ -4205,9 +4221,9 @@ react-addons-pure-render-mixin@^15.4.0: fbjs "^0.8.4" object-assign "^4.1.0" -react-addons-test-utils@15.4.2, react-addons-test-utils@^15.4.0: - version "15.4.2" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.2.tgz#93bcaa718fcae7360d42e8fb1c09756cc36302a2" +react-addons-test-utils@15.5.1, react-addons-test-utils@^15.4.0: + version "15.5.1" + resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.5.1.tgz#e0d258cda2a122ad0dff69f838260d0c3958f5f7" dependencies: fbjs "^0.8.4" object-assign "^4.1.0" @@ -4227,13 +4243,21 @@ react-deep-force-update@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz#f911b5be1d2a6fe387507dd6e9a767aa2924b4c7" -react-dom@15.4.2, react-dom@^15.4.0: - version "15.4.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f" +react-devtools-core@^2.0.8: + version "2.1.9" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-2.1.9.tgz#825e0582b7f8587cbf56bb5ef1ea94d8b158543e" dependencies: - fbjs "^0.8.1" + shell-quote "^1.6.1" + ws "^2.0.3" + +react-dom@15.5.4, react-dom@^15.4.0: + version "15.5.4" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da" + dependencies: + fbjs "^0.8.9" loose-envify "^1.1.0" object-assign "^4.1.0" + prop-types "~15.5.7" react-element-to-jsx-string@^5.0.0: version "5.0.7" @@ -4246,9 +4270,9 @@ react-element-to-jsx-string@^5.0.0: stringify-object "2.4.0" traverse "^0.6.6" -react-intl@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.2.3.tgz#8eebb03cddc38b337ed22fab78037ab53a594270" +react-intl@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.3.0.tgz#e1df6af5667fdf01cbe4aab20e137251e2ae5142" dependencies: intl-format-cache "^2.0.5" intl-messageformat "^1.3.0" @@ -4263,9 +4287,9 @@ react-native-button@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/react-native-button/-/react-native-button-1.8.2.tgz#49e5cadd22ee443adea52a85539d288aa2117ade" -react-native-cookies@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-native-cookies/-/react-native-cookies-2.0.0.tgz#82726d1b9a7e2dc3c38a6bc456dba1fa6ba50bcf" +react-native-cookies@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/react-native-cookies/-/react-native-cookies-3.1.0.tgz#7816a60be1ae0484c9ddd47380d77f98ec0ffaca" dependencies: invariant "^2.1.0" @@ -4327,9 +4351,9 @@ react-native-mock@^0.2.7: react-timer-mixin "^0.13.3" warning "^2.1.0" -react-native-navigation@1.1.70: - version "1.1.70" - resolved "https://registry.yarnpkg.com/react-native-navigation/-/react-native-navigation-1.1.70.tgz#1631e30994a75dea1b81cf06b23660c048af447d" +react-native-navigation@1.1.72: + version "1.1.72" + resolved "https://registry.yarnpkg.com/react-native-navigation/-/react-native-navigation-1.1.72.tgz#18e5067e74d5690b7bfddd100b06d5a7126ba2a8" dependencies: lodash "4.x.x" @@ -4337,9 +4361,9 @@ react-native-orientation@enahum/react-native-orientation.git: version "1.17.0" resolved "https://codeload.github.com/enahum/react-native-orientation/tar.gz/75ba7da814b99a949324846ce3a63fcbaeee9fdc" -react-native-push-notification@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-native-push-notification/-/react-native-push-notification-2.2.1.tgz#9b392cee8f5223a1e1772c9a88c95742549fcfc3" +react-native-push-notification@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-native-push-notification/-/react-native-push-notification-3.0.0.tgz#00282ea656443e89df6057f14b10500e7b89551f" react-native-search-bar@enahum/react-native-search-bar.git: version "2.16.0" @@ -4349,9 +4373,9 @@ react-native-svg-mock@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/react-native-svg-mock/-/react-native-svg-mock-1.0.2.tgz#2dc35fb97ca1e0ea393ece6d23782ba4f58e178f" -react-native-svg@5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-5.1.7.tgz#444b18b51eb38ff63205befaf612f59a4cbf64be" +react-native-svg@5.1.8: + version "5.1.8" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-5.1.8.tgz#bdb9bc6a8693852751f7faa6598ebcb3d1be48ce" dependencies: color "^0.11.1" lodash "^4.16.6" @@ -4360,16 +4384,17 @@ react-native-tooltip@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/react-native-tooltip/-/react-native-tooltip-5.0.0.tgz#90477f257081ce168d2a27d2ac29e74759b7a7d6" -react-native-vector-icons@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-4.0.1.tgz#39c05d2e775deeb98d5afdbda5dcf67965ff674f" +react-native-vector-icons@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-4.1.1.tgz#9ac75bde77d9243346668c51dca7756775428087" dependencies: lodash "^4.0.0" + prop-types "^15.5.8" yargs "^6.3.0" -react-native@0.42.3: - version "0.42.3" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.42.3.tgz#450c8a03a5e3e991a08a426f22776dd8feb80b26" +react-native@0.44.0: + version "0.44.0" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.44.0.tgz#06427a30053f2d555c60fe0b9afcc6c778db09de" dependencies: absolute-path "^0.0.0" art "^0.10.0" @@ -4378,6 +4403,7 @@ react-native@0.42.3: babel-generator "^6.21.0" babel-plugin-external-helpers "^6.18.0" babel-plugin-syntax-trailing-function-commas "^6.20.0" + babel-plugin-transform-async-to-generator "6.16.0" babel-plugin-transform-flow-strip-types "^6.21.0" babel-plugin-transform-object-rest-spread "^6.20.2" babel-polyfill "^6.20.0" @@ -4388,26 +4414,28 @@ react-native@0.42.3: babel-runtime "^6.20.0" babel-traverse "^6.21.0" babel-types "^6.21.0" - babylon "^6.14.1" + babylon "^6.16.1" base64-js "^1.1.2" bser "^1.0.2" chalk "^1.1.1" commander "^2.9.0" + concat-stream "^1.6.0" connect "^2.8.3" core-js "^2.2.2" debug "^2.2.0" denodeify "^1.2.1" event-target-shim "^1.0.5" - fbjs "^0.8.5" + fbjs "~0.8.9" fbjs-scripts "^0.7.0" - fs-extra "^0.26.2" - glob "^5.0.15" + form-data "^2.1.1" + fs-extra "^1.0.0" + glob "^7.1.1" graceful-fs "^4.1.3" image-size "^0.3.5" immutable "~3.7.6" imurmurhash "^0.1.4" inquirer "^0.12.0" - jest-haste-map "18.0.0" + jest-haste-map "19.0.0" joi "^6.6.1" json-stable-stringify "^1.0.1" json5 "^0.4.0" @@ -4422,8 +4450,10 @@ react-native@0.42.3: opn "^3.0.2" optimist "^0.6.1" plist "^1.2.0" + pretty-format "^4.2.1" promise "^7.1.1" react-clone-referenced-element "^1.0.1" + react-devtools-core "^2.0.8" react-timer-mixin "^0.13.2" react-transform-hmr "^1.0.4" rebound "^0.0.13" @@ -4437,14 +4467,15 @@ react-native@0.42.3: stacktrace-parser "^0.1.3" temp "0.8.3" throat "^3.0.0" - uglify-js "^2.6.2" + uglify-js "2.7.5" whatwg-fetch "^1.0.0" wordwrap "^1.0.0" worker-farm "^1.3.1" write-file-atomic "^1.2.0" ws "^1.1.0" - xcode "^0.8.9" + xcode "^0.9.1" xmldoc "^0.4.0" + xpipe "^1.0.5" yargs "^6.4.0" react-proxy@^1.1.7: @@ -4466,11 +4497,11 @@ react-redux@5.0.4: loose-envify "^1.1.0" prop-types "^15.0.0" -react-test-renderer@15.4.2: - version "15.4.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.4.2.tgz#27e1dff5d26d0e830f99614c487622bc831416f3" +react-test-renderer@15.5.4: + version "15.5.4" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.5.4.tgz#d4ebb23f613d685ea8f5390109c2d20fbf7c83bc" dependencies: - fbjs "^0.8.4" + fbjs "^0.8.9" object-assign "^4.1.0" react-timer-mixin@^0.13.2, react-timer-mixin@^0.13.3: @@ -4484,11 +4515,11 @@ react-transform-hmr@^1.0.4: global "^4.3.0" react-proxy "^1.1.7" -react@15.4.2: - version "15.4.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" +react@16.0.0-alpha.6: + version "16.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/react/-/react-16.0.0-alpha.6.tgz#2ccb1afb4425ccc12f78a123a666f2e4c141adb9" dependencies: - fbjs "^0.8.4" + fbjs "^0.8.9" loose-envify "^1.1.0" object-assign "^4.1.0" @@ -4584,7 +4615,7 @@ redux-persist-transform-filter@0.0.9: lodash.set "^4.3.2" lodash.unset "^4.5.2" -redux-persist@4.6.0, redux-persist@^4.5.0: +redux-persist@4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.6.0.tgz#3994793d5f2f38bf02591c9e693e16bf8eae2728" dependencies: @@ -4592,6 +4623,14 @@ redux-persist@4.6.0, redux-persist@^4.5.0: lodash "^4.17.4" lodash-es "^4.17.4" +redux-persist@4.8.0, redux-persist@^4.5.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.8.0.tgz#17fd998949bdeef9275e4cf60ad5bbe1c73675fc" + dependencies: + json-stringify-safe "^5.0.1" + lodash "^4.17.4" + lodash-es "^4.17.4" + redux-thunk@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5" @@ -4650,23 +4689,24 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -remote-redux-devtools-on-debugger@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/remote-redux-devtools-on-debugger/-/remote-redux-devtools-on-debugger-0.7.0.tgz#358cbfa9a66e4f9ff71eaba6a282bd1c4411508d" +remote-redux-devtools-on-debugger@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/remote-redux-devtools-on-debugger/-/remote-redux-devtools-on-debugger-0.7.1.tgz#47f773c1c8823585bc65d7f19ede598337d29189" dependencies: chalk "^1.1.1" minimist "^1.2.0" - remotedev-server "^0.2.0" + remotedev-server "^0.2.2" -remote-redux-devtools@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.7.tgz#bc3219ed4eef347a5b4162acad8c9424e692df02" +remote-redux-devtools@0.5.10: + version "0.5.10" + resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.10.tgz#16897a2de7e260c59a5491133659cd2b45c38a56" dependencies: jsan "^3.1.5" querystring "^0.2.0" redux-devtools-instrument "^1.3.3" remotedev-utils "^0.1.1" - socketcluster-client "^5.1.1" + rn-host-detect "^1.0.1" + socketcluster-client "^5.3.1" remotedev-serialize@^0.1.0: version "0.1.0" @@ -4674,7 +4714,7 @@ remotedev-serialize@^0.1.0: dependencies: jsan "^3.1.0" -remotedev-server@^0.2.0: +remotedev-server@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/remotedev-server/-/remotedev-server-0.2.2.tgz#92494ef0e558389e12e2a8f0007ce92fc5279799" dependencies: @@ -4725,6 +4765,20 @@ replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.4.tgz#86988ec8eee408e45579fce83bfd05b3adf9a155" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.0" + request@^2.79.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -4775,6 +4829,10 @@ reselect@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.0.tgz#b2e35977f03048700028eaee3a8c0639e40e8f35" +reselect@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -4815,6 +4873,10 @@ rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" +rn-host-detect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.1.3.tgz#242d76e2fa485c48d751416e65b7cce596969e91" + rndm@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c" @@ -4839,7 +4901,7 @@ rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" -safe-buffer@^5.0.1: +safe-buffer@^5.0.1, safe-buffer@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" @@ -4854,6 +4916,18 @@ sane@~1.4.1: walker "~1.0.5" watch "~0.10.0" +sane@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.5.0.tgz#a4adeae764d048621ecb27d5f9ecf513101939f3" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + sax@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" @@ -5028,7 +5102,7 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" -shell-quote@1.6.1: +shell-quote@1.6.1, shell-quote@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" dependencies: @@ -5053,13 +5127,13 @@ signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -simple-plist@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.1.4.tgz#10eb51b47e33c556eb8ec46d5ee64d64e717db5d" +simple-plist@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.2.1.tgz#71766db352326928cf3a807242ba762322636723" dependencies: - bplist-creator "0.0.4" - bplist-parser "0.0.6" - plist "1.2.0" + bplist-creator "0.0.7" + bplist-parser "0.1.1" + plist "2.0.1" slash@^1.0.0: version "1.0.0" @@ -5079,7 +5153,7 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -socketcluster-client@^5.1.1: +socketcluster-client@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/socketcluster-client/-/socketcluster-client-5.3.1.tgz#83eb73bf5cfcd559e372035ab032b0df185936aa" dependencies: @@ -5206,9 +5280,13 @@ statuses@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28" -stream-buffers@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-0.2.6.tgz#181c08d5bb3690045f69401b9ae6a7a0cf3313fc" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + +stream-buffers@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" stream-counter@~0.2.0: version "0.2.0" @@ -5376,7 +5454,7 @@ topo@1.x.x: dependencies: hoek "2.x.x" -tough-cookie@^2.3.2, tough-cookie@~2.3.0: +tough-cookie@>=2.3.0, tough-cookie@^2.3.2, tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" dependencies: @@ -5445,14 +5523,14 @@ ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uglify-js@^2.6.2: - version "2.8.22" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" +uglify-js@2.7.5: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: + async "~0.2.6" source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: uglify-to-browserify "~1.0.0" + yargs "~3.10.0" uglify-to-browserify@~1.0.0: version "1.0.2" @@ -5482,15 +5560,19 @@ ultron@1.0.x: version "1.0.2" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" +ultron@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" -url-parse@1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.8.tgz#7a65b3a8d57a1e86af6b4e2276e34774167c0156" +url-parse@1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" dependencies: - querystringify "0.0.x" + querystringify "~1.0.0" requires-port "1.0.x" user-home@^1.1.1: @@ -5674,27 +5756,27 @@ ws@1.1.1: options ">=0.0.5" ultron "1.0.x" -ws@1.1.2: +ws@1.1.2, ws@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" dependencies: options ">=0.0.5" ultron "1.0.x" -ws@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" +ws@^2.0.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80" dependencies: - options ">=0.0.5" - ultron "1.0.x" + safe-buffer "~5.0.1" + ultron "~1.1.0" -xcode@^0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/xcode/-/xcode-0.8.9.tgz#ec6765f70e9dccccc9f6e9a5b9b4e7e814b4cf35" +xcode@^0.9.1: + version "0.9.3" + resolved "https://registry.yarnpkg.com/xcode/-/xcode-0.9.3.tgz#910a89c16aee6cc0b42ca805a6d0b4cf87211cf3" dependencies: - node-uuid "1.4.7" - pegjs "0.9.0" - simple-plist "0.1.4" + pegjs "^0.10.0" + simple-plist "^0.2.1" + uuid "3.0.1" xml-name-validator@^2.0.1: version "2.0.1" @@ -5706,6 +5788,10 @@ xmlbuilder@4.0.0: dependencies: lodash "^3.5.0" +xmlbuilder@8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + xmldoc@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-0.4.0.tgz#d257224be8393eaacbf837ef227fd8ec25b36888" @@ -5716,6 +5802,10 @@ xmldom@0.1.x: version "0.1.27" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" +xpipe@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" + xss-filters@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a"