From 81c53acd6018f3d5bfed8215a6cb9994c7fb71d3 Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Tue, 25 Sep 2018 16:28:42 -0300 Subject: [PATCH] Update dependencies (#431) * Update dependencies * Lint and test * Added react-native fork * rn 57 * Lint and tests updated * Update xcode on circleci * Use legacy build system * Update tests --- .babelrc | 2 +- .circleci/config.yml | 9 +- .eslintrc.js | 7 +- __tests__/__snapshots__/RoomItem.js.snap | 6 - .../__snapshots__/Storyshots.test.js.snap | 11 - android/app/build.gradle | 17 +- .../rocket/reactnative/MainApplication.java | 4 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 4689 -> 7065 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2669 -> 3581 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 7243 -> 10804 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 13559 -> 21872 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 20449 -> 33805 bytes android/settings.gradle | 4 - app/Navigation.js | 17 +- app/actions/actionsTypes.js | 1 - app/actions/selectedUsers.js | 1 - app/animations/collapse.js | 29 +- app/animations/fade.js | 10 +- app/containers/Avatar.js | 31 +- app/containers/Button/index.js | 10 +- app/containers/EmojiPicker/CustomEmoji.js | 2 + app/containers/EmojiPicker/EmojiCategory.js | 20 +- app/containers/EmojiPicker/TabBar.js | 12 +- app/containers/EmojiPicker/index.js | 34 +- app/containers/Loading.js | 29 +- app/containers/MessageActions.js | 111 +- app/containers/MessageBox/EmojiKeyboard.js | 2 + app/containers/MessageBox/FilesActions.js | 4 +- app/containers/MessageBox/Recording.js | 23 +- app/containers/MessageBox/ReplyPreview.js | 3 +- app/containers/MessageBox/UploadModal.js | 10 +- app/containers/MessageBox/index.js | 510 +- app/containers/MessageErrorActions.js | 16 +- app/containers/SearchBox.js | 4 +- app/containers/Sidebar.js | 150 +- app/containers/TextInput.js | 41 +- app/containers/Typing.js | 14 +- app/containers/message/Audio.js | 27 +- app/containers/message/Emoji.js | 3 +- app/containers/message/Image.js | 4 +- app/containers/message/Markdown.js | 17 +- app/containers/message/Message.js | 68 +- app/containers/message/PhotoModal.js | 5 +- app/containers/message/ReactionsModal.js | 12 +- app/containers/message/User.js | 4 +- app/containers/message/Video.js | 23 +- app/containers/message/index.js | 68 +- app/containers/status.js | 3 +- app/lib/ddp.js | 16 + app/lib/methods/getPermissions.js | 8 +- app/lib/methods/getSettings.js | 10 +- app/lib/methods/readMessages.js | 2 +- app/lib/methods/sendMessage.js | 4 +- app/lib/methods/subscriptions/room.js | 7 +- app/lib/realm.js | 8 +- app/lib/rocketchat.js | 8 +- app/presentation/KeyboardView.js | 14 +- app/presentation/RoomItem.js | 24 +- app/presentation/UserItem.js | 4 +- app/sagas/connect.js | 4 +- app/sagas/createChannel.js | 4 +- app/sagas/deepLinking.js | 4 +- app/sagas/login.js | 4 +- app/sagas/rooms.js | 6 +- app/views/CreateChannelView.js | 99 +- app/views/ForgotPasswordView.js | 29 +- app/views/LoginSignupView.js | 187 +- app/views/LoginView.js | 31 +- app/views/MentionedMessagesView/index.js | 40 +- app/views/NewMessageView.js | 50 +- app/views/NewServerView.js | 26 +- app/views/OAuthView.js | 5 +- app/views/OnboardingView/Button.js | 4 +- app/views/OnboardingView/index.js | 18 +- app/views/PinnedMessagesView/index.js | 51 +- app/views/PrivacyPolicyView.js | 4 +- app/views/ProfileView/index.js | 121 +- app/views/RegisterView.js | 89 +- app/views/RoomActionsView/index.js | 67 +- app/views/RoomFilesView/index.js | 41 +- app/views/RoomInfoEditView/SwitchContainer.js | 2 +- app/views/RoomInfoEditView/index.js | 82 +- app/views/RoomInfoView/index.js | 184 +- app/views/RoomMembersView/index.js | 58 +- app/views/RoomView/ListView.js | 25 +- app/views/RoomView/ReactionPicker.js | 58 +- app/views/RoomView/UploadProgress.js | 15 +- app/views/RoomView/index.js | 171 +- .../RoomsListView/Header/Header.android.js | 4 +- app/views/RoomsListView/Header/Header.ios.js | 4 +- app/views/RoomsListView/Search/index.js | 7 +- app/views/RoomsListView/ServerDropdown.js | 95 +- app/views/RoomsListView/SortDropdown.js | 26 +- app/views/RoomsListView/index.js | 158 +- app/views/SearchMessagesView/index.js | 51 +- app/views/SelectedUsersView.js | 129 +- app/views/SettingsView/index.js | 36 +- app/views/SnippetedMessagesView/index.js | 42 +- app/views/StarredMessagesView/index.js | 51 +- app/views/Styles.js | 4 +- app/views/TermsServiceView.js | 3 +- app/views/View.js | 3 + e2e/05-roomslist.spec.js | 6 +- e2e/08-roomactions.spec.js | 3 +- e2e/09-roominfo.spec.js | 3 +- e2e/10-changeserver.spec.js | 2 + ios/RocketChatRN.xcodeproj/project.pbxproj | 91 +- .../xcshareddata/WorkspaceSettings.xcsettings | 8 + package-lock.json | 9927 +++++++++-------- package.json | 88 +- storybook/storybook.js | 2 +- 111 files changed, 7613 insertions(+), 6092 deletions(-) mode change 100644 => 100755 android/app/src/main/res/mipmap-hdpi/ic_launcher.png mode change 100644 => 100755 android/app/src/main/res/mipmap-mdpi/ic_launcher.png mode change 100644 => 100755 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png mode change 100644 => 100755 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png mode change 100644 => 100755 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 ios/RocketChatRN.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/.babelrc b/.babelrc index 930f326bd..7fa45754d 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { - "presets": ["react-native"], + "presets": ["module:metro-react-native-babel-preset"], "plugins": [["@babel/plugin-proposal-decorators", { "legacy": true }]], "env": { "production": { diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c63bf7bc..448e19f60 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,7 +37,7 @@ jobs: e2e-test: macos: - xcode: "9.0" + xcode: "10.0.0" environment: BASH_ENV: "~/.nvm/nvm.sh" @@ -87,7 +87,8 @@ jobs: - image: circleci/android:api-27-node8-alpha environment: - GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError" + # GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError" + GRADLE_OPTS: -Xmx2048m -Dorg.gradle.daemon=false JVM_OPTS: -Xmx4096m TERM: dumb BASH_ENV: "~/.nvm/nvm.sh" @@ -170,7 +171,7 @@ jobs: ios-build: macos: - xcode: "9.0" + xcode: "10.0.0" environment: BASH_ENV: "~/.nvm/nvm.sh" @@ -236,7 +237,7 @@ jobs: ios-testflight: macos: - xcode: "9.0" + xcode: "10.0.0" steps: - checkout diff --git a/.eslintrc.js b/.eslintrc.js index fa34f445a..ae902b8c6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,7 +13,8 @@ module.exports = { "ecmaVersion": 2017, "ecmaFeatures": { "experimentalObjectRestSpread" : true, - "jsx": true + "jsx": true, + "legacyDecorators": true } }, "plugins": [ @@ -65,6 +66,7 @@ module.exports = { "no-dupe-args": 2, "no-dupe-class-members": 2, "no-duplicate-case": 2, + "no-else-return": [0, {allowElseIf: true}], "no-empty": 2, "no-empty-character-class": 2, "no-ex-assign": 2, @@ -125,7 +127,8 @@ module.exports = { "object-shorthand": 2, "consistent-return": 0, "global-require": "off", - "react-native/no-unused-styles": 2 + "react-native/no-unused-styles": 2, + "react/jsx-one-expression-per-line": 0 }, "globals": { "__DEV__": true diff --git a/__tests__/__snapshots__/RoomItem.js.snap b/__tests__/__snapshots__/RoomItem.js.snap index e99a1c503..ee37f4b37 100644 --- a/__tests__/__snapshots__/RoomItem.js.snap +++ b/__tests__/__snapshots__/RoomItem.js.snap @@ -4,7 +4,6 @@ exports[`render channel 1`] = ` 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 R|Eu!=bhQjMD_{;W{{u2^3;qBA diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png old mode 100644 new mode 100755 index 2926dc937f068ec254c3fc4f1bd8f59b22e8f8f0..874d548a63d45e7611a2e8d75f52cf67112ff5a4 GIT binary patch delta 3579 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 D(joWX diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 index 9c8e7268944d02a2ca7664c00676aa5ebd1194c7..91be92cc1034b542f93094165ee4d60a3d92e080 GIT binary patch literal 21872 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png old mode 100644 new mode 100755 index d4532b957e4f5f2834b0c8088ab43b73547eace8..e0cfa5e3405a1dfe9c6e5d2d3473da44798640d2 GIT binary patch literal 33805 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 Z{{zV~{wHs&;p6}S002ovPDHLkV1i4_1bP4f literal 20449 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 GC;tMGO`!w; diff --git a/android/settings.gradle b/android/settings.gradle index 173139f83..c9d018cd6 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -21,12 +21,8 @@ include ':reactnativekeyboardinput' project(':reactnativekeyboardinput').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keyboard-input/lib/android') include ':react-native-video' project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android') -include ':react-native-svg' -project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android') include ':react-native-vector-icons' project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') -include ':react-native-zeroconf' -project(':react-native-zeroconf').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-zeroconf/android') include ':realm' project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android') include ':react-native-navigation' diff --git a/app/Navigation.js b/app/Navigation.js index e7bb38bed..cabf1e98c 100644 --- a/app/Navigation.js +++ b/app/Navigation.js @@ -3,12 +3,17 @@ class NavigationActionsClass { this.navigator = navigator; } - push = params => this.navigator && this.navigator.push(params); - pop = params => this.navigator && this.navigator.pop(params); - popToRoot = params => this.navigator && this.navigator.popToRoot(params); - resetTo = params => this.navigator && this.navigator.resetTo(params); - toggleDrawer = params => this.navigator && this.navigator.toggleDrawer(params); - dismissModal = params => this.navigator && this.navigator.dismissModal(params); + push = params => this.navigator && this.navigator.push(params) + + pop = params => this.navigator && this.navigator.pop(params) + + popToRoot = params => this.navigator && this.navigator.popToRoot(params) + + resetTo = params => this.navigator && this.navigator.resetTo(params) + + toggleDrawer = params => this.navigator && this.navigator.toggleDrawer(params) + + dismissModal = params => this.navigator && this.navigator.dismissModal(params) } export const NavigationActions = new NavigationActionsClass(); diff --git a/app/actions/actionsTypes.js b/app/actions/actionsTypes.js index 9fc1cdc64..42c0e3d65 100644 --- a/app/actions/actionsTypes.js +++ b/app/actions/actionsTypes.js @@ -103,4 +103,3 @@ export const SORT_PREFERENCES = createRequestTypes('SORT_PREFERENCES', ['SET_ALL export const INCREMENT = 'INCREMENT'; export const DECREMENT = 'DECREMENT'; - diff --git a/app/actions/selectedUsers.js b/app/actions/selectedUsers.js index 7217d19fe..65fbb0015 100644 --- a/app/actions/selectedUsers.js +++ b/app/actions/selectedUsers.js @@ -26,4 +26,3 @@ export function setLoading(loading) { loading }; } - diff --git a/app/animations/collapse.js b/app/animations/collapse.js index 05cfce52a..e04895c97 100644 --- a/app/animations/collapse.js +++ b/app/animations/collapse.js @@ -9,6 +9,7 @@ export default class Panel extends React.Component { children: PropTypes.node.isRequired, style: PropTypes.object } + constructor(props) { super(props); this.state = { @@ -18,15 +19,22 @@ export default class Panel extends React.Component { this.open = false; this.opacity = 0; } + componentDidMount() { - const initialValue = !this.props.open ? this.height : 0; - this.state.animation.setValue(initialValue); + const { animation } = this.state; + const { open } = this.props; + const initialValue = !open ? this.height : 0; + animation.setValue(initialValue); } + componentWillReceiveProps(nextProps) { + const { animation } = this.state; + const { open } = this.props; + if (this.first) { this.first = false; - if (!this.props.open) { - this.state.animation.setValue(0); + if (!open) { + animation.setValue(0); return; } } @@ -37,9 +45,9 @@ export default class Panel extends React.Component { const initialValue = !nextProps.open ? this.height : 0; const finalValue = !nextProps.open ? 0 : this.height; - this.state.animation.setValue(initialValue); + animation.setValue(initialValue); Animated.timing( - this.state.animation, + animation, { toValue: finalValue, duration: 150, @@ -47,16 +55,21 @@ export default class Panel extends React.Component { } ).start(); } + set _height(h) { this.height = h || this.height; } + render() { + const { animation } = this.state; + const { style, children } = this.props; + return ( this._height = nativeEvent.layout.height} style={{ position: !this.first ? 'relative' : 'absolute' }}> - {this.props.children} + {children} ); diff --git a/app/animations/fade.js b/app/animations/fade.js index 97693d03a..513625816 100644 --- a/app/animations/fade.js +++ b/app/animations/fade.js @@ -14,10 +14,11 @@ export default class Fade extends React.Component { constructor(props) { super(props); + const { visible } = this.props; this.state = { - visible: props.visible + visible }; - this._visibility = new Animated.Value(this.props.visible ? 1 : 0); + this._visibility = new Animated.Value(visible ? 1 : 0); } componentWillReceiveProps(nextProps) { @@ -34,6 +35,7 @@ export default class Fade extends React.Component { } render() { + const { visible } = this.state; const { style, children, ...rest } = this.props; const containerStyle = { @@ -53,8 +55,8 @@ export default class Fade extends React.Component { const combinedStyle = [containerStyle, style]; return ( - - {this.state.visible ? children : null} + + {visible ? children : null} ); } diff --git a/app/containers/Avatar.js b/app/containers/Avatar.js index b55466cd4..a8327927a 100644 --- a/app/containers/Avatar.js +++ b/app/containers/Avatar.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { StyleSheet, Text, View, ViewPropTypes } from 'react-native'; +import { + StyleSheet, Text, View, ViewPropTypes +} from 'react-native'; import FastImage from 'react-native-fast-image'; import avatarInitialsAndColor from '../utils/avatarInitialsAndColor'; @@ -29,14 +31,16 @@ export default class Avatar extends React.PureComponent { type: PropTypes.string, children: PropTypes.object, forceInitials: PropTypes.bool - }; + } + static defaultProps = { text: '', size: 25, type: 'd', borderRadius: 4, forceInitials: false - }; + } + state = { showInitials: true }; // componentDidMount() { @@ -93,8 +97,9 @@ export default class Avatar extends React.PureComponent { // } render() { + const { showInitials } = this.state; const { - text, size, baseUrl, borderRadius, style, avatar, type, forceInitials + text, size, baseUrl, borderRadius, style, avatar, type, forceInitials, children } = this.props; const { initials, color } = avatarInitialsAndColor(`${ text }`); @@ -133,17 +138,19 @@ export default class Avatar extends React.PureComponent { return ( - {this.state.showInitials ? - - {initials} - + {showInitials + ? ( + + {initials} + + ) : null } {image} - {this.props.children} + {children} ); } diff --git a/app/containers/Button/index.js b/app/containers/Button/index.js index 3bb13137b..f1f3ade3a 100644 --- a/app/containers/Button/index.js +++ b/app/containers/Button/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { StyleSheet, View, Text, Platform, ActivityIndicator } from 'react-native'; +import { + StyleSheet, View, Text, Platform, ActivityIndicator +} from 'react-native'; import { COLOR_BUTTON_PRIMARY, COLOR_TEXT } from '../../constants/colors'; import Touch from '../../utils/touch'; @@ -92,9 +94,9 @@ export default class Button extends React.PureComponent { ]} > { - loading ? - : - {title} + loading + ? + : {title} } diff --git a/app/containers/EmojiPicker/CustomEmoji.js b/app/containers/EmojiPicker/CustomEmoji.js index 7079d31e5..e79e580c1 100644 --- a/app/containers/EmojiPicker/CustomEmoji.js +++ b/app/containers/EmojiPicker/CustomEmoji.js @@ -8,9 +8,11 @@ export default class CustomEmoji extends React.Component { emoji: PropTypes.object.isRequired, style: ViewPropTypes.style } + shouldComponentUpdate() { return false; } + render() { const { baseUrl, emoji, style } = this.props; return ( diff --git a/app/containers/EmojiPicker/EmojiCategory.js b/app/containers/EmojiPicker/EmojiCategory.js index bfd7ff94f..19f2cf48a 100644 --- a/app/containers/EmojiPicker/EmojiCategory.js +++ b/app/containers/EmojiPicker/EmojiCategory.js @@ -8,7 +8,7 @@ import styles from './styles'; import CustomEmoji from './CustomEmoji'; import scrollPersistTaps from '../../utils/scrollPersistTaps'; -const emojisPerRow = Platform.OS === 'ios' ? 8 : 9; +const EMOJIS_PER_ROW = Platform.OS === 'ios' ? 8 : 9; const renderEmoji = (emoji, size, baseUrl) => { if (emoji.isCustom) { @@ -31,12 +31,14 @@ export default class EmojiCategory extends React.Component { onEmojiSelected: PropTypes.func, emojisPerRow: PropTypes.number, width: PropTypes.number - }; + } + constructor(props) { super(props); - const { width, height } = this.props.window; + const { window, width, emojisPerRow } = this.props; + const { width: widthWidth, height: windowHeight } = window; - this.size = Math.min(this.props.width || width, height) / (this.props.emojisPerRow || emojisPerRow); + this.size = Math.min(width || widthWidth, windowHeight) / (emojisPerRow || EMOJIS_PER_ROW); this.emojis = props.emojis; } @@ -45,12 +47,12 @@ export default class EmojiCategory extends React.Component { } renderItem(emoji, size) { - const { baseUrl } = this.props; + const { baseUrl, onEmojiSelected } = this.props; return ( this.props.onEmojiSelected(emoji)} + onPress={() => onEmojiSelected(emoji)} testID={`reaction-picker-${ emoji.isCustom ? emoji.content : emoji }`} > {renderEmoji(emoji, size, baseUrl)} @@ -58,12 +60,14 @@ export default class EmojiCategory extends React.Component { } render() { + const { emojis } = this.props; + return ( (item.isCustom && item.content) || item} - data={this.props.emojis} + data={emojis} renderItem={({ item }) => this.renderItem(item, this.size)} - numColumns={emojisPerRow} + numColumns={EMOJIS_PER_ROW} initialNumToRender={45} getItemLayout={(data, index) => ({ length: this.size, offset: this.size * index, index })} removeClippedSubviews diff --git a/app/containers/EmojiPicker/TabBar.js b/app/containers/EmojiPicker/TabBar.js index 9eeaf6e5c..494d547fd 100644 --- a/app/containers/EmojiPicker/TabBar.js +++ b/app/containers/EmojiPicker/TabBar.js @@ -12,18 +12,22 @@ export default class TabBar extends React.PureComponent { } render() { + const { + tabs, goToPage, tabEmojiStyle, activeTab + } = this.props; + return ( - {this.props.tabs.map((tab, i) => ( + {tabs.map((tab, i) => ( this.props.goToPage(i)} + onPress={() => goToPage(i)} style={styles.tab} testID={`reaction-picker-${ tab }`} > - {tab} - {this.props.activeTab === i ? : } + {tab} + {activeTab === i ? : } ))} diff --git a/app/containers/EmojiPicker/index.js b/app/containers/EmojiPicker/index.js index 93306e41a..d8cbdaf55 100644 --- a/app/containers/EmojiPicker/index.js +++ b/app/containers/EmojiPicker/index.js @@ -49,36 +49,41 @@ export default class EmojiPicker extends Component { this.updateFrequentlyUsed(); this.updateCustomEmojis(); } + componentWillUnmount() { this.frequentlyUsed.removeAllListeners(); this.customEmojis.removeAllListeners(); } onEmojiSelected(emoji) { + const { onEmojiSelected } = this.props; if (emoji.isCustom) { const count = this._getFrequentlyUsedCount(emoji.content); this._addFrequentlyUsed({ content: emoji.content, extension: emoji.extension, count, isCustom: true }); - this.props.onEmojiSelected(`:${ emoji.content }:`); + onEmojiSelected(`:${ emoji.content }:`); } else { const content = emoji; const count = this._getFrequentlyUsedCount(content); this._addFrequentlyUsed({ content, count, isCustom: false }); const shortname = `:${ emoji }:`; - this.props.onEmojiSelected(emojify(shortname, { output: 'unicode' }), shortname); + onEmojiSelected(emojify(shortname, { output: 'unicode' }), shortname); } } + // eslint-disable-next-line react/sort-comp _addFrequentlyUsed = protectedFunction((emoji) => { database.write(() => { database.create('frequentlyUsedEmoji', emoji, true); }); }) + _getFrequentlyUsedCount = (content) => { const emojiRow = this.frequentlyUsed.filtered('content == $0', content); return emojiRow.length ? emojiRow[0].count + 1 : 1; } + updateFrequentlyUsed() { const frequentlyUsed = map(this.frequentlyUsed.slice(), (item) => { if (item.isCustom) { @@ -90,17 +95,19 @@ export default class EmojiPicker extends Component { } updateCustomEmojis() { - const customEmojis = map(this.customEmojis.slice(), item => - ({ content: item.name, extension: item.extension, isCustom: true })); + const customEmojis = map(this.customEmojis.slice(), item => ({ content: item.name, extension: item.extension, isCustom: true })); this.setState({ customEmojis }); } renderCategory(category, i) { + const { frequentlyUsed, customEmojis } = this.state; + const { emojisPerRow, width, baseUrl } = this.props; + let emojis = []; if (i === 0) { - emojis = this.state.frequentlyUsed; + emojis = frequentlyUsed; } else if (i === 1) { - emojis = this.state.customEmojis; + emojis = customEmojis; } else { emojis = emojisByCategory[category]; } @@ -109,21 +116,23 @@ export default class EmojiPicker extends Component { emojis={emojis} onEmojiSelected={emoji => this.onEmojiSelected(emoji)} style={styles.categoryContainer} - size={this.props.emojisPerRow} - width={this.props.width} - baseUrl={this.props.baseUrl} + size={emojisPerRow} + width={width} + baseUrl={baseUrl} /> ); } render() { - if (!this.state.show) { + const { show } = this.state; + const { tabEmojiStyle } = this.props; + + if (!show) { return null; } return ( - // } + renderTabBar={() => } contentProps={scrollProps} style={styles.background} > @@ -140,7 +149,6 @@ export default class EmojiPicker extends Component { )) } - // ); } } diff --git a/app/containers/Loading.js b/app/containers/Loading.js index d9c8fe4ca..03561a8fd 100644 --- a/app/containers/Loading.js +++ b/app/containers/Loading.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { StyleSheet, View, Modal, Animated } from 'react-native'; +import { + StyleSheet, View, Modal, Animated +} from 'react-native'; const styles = StyleSheet.create({ container: { @@ -27,8 +29,11 @@ export default class Loading extends React.PureComponent { } componentDidMount() { + const { opacity, scale } = this.state; + const { visible } = this.props; + this.opacityAnimation = Animated.timing( - this.state.opacity, + opacity, { toValue: 1, duration: 1000, @@ -37,7 +42,7 @@ export default class Loading extends React.PureComponent { ); this.scaleAnimation = Animated.loop(Animated.sequence([ Animated.timing( - this.state.scale, + scale, { toValue: 0, duration: 1000, @@ -45,7 +50,7 @@ export default class Loading extends React.PureComponent { } ), Animated.timing( - this.state.scale, + scale, { toValue: 1, duration: 1000, @@ -54,13 +59,14 @@ export default class Loading extends React.PureComponent { ) ])); - if (this.props.visible) { + if (visible) { this.startAnimations(); } } componentDidUpdate(prevProps) { - if (this.props.visible && this.props.visible !== prevProps.visible) { + const { visible } = this.props; + if (visible && visible !== prevProps.visible) { this.startAnimations(); } } @@ -84,13 +90,16 @@ export default class Loading extends React.PureComponent { } render() { - const scale = this.state.scale.interpolate({ + const { opacity, scale } = this.state; + const { visible } = this.props; + + const scaleAnimation = scale.interpolate({ inputRange: [0, 0.5, 1], outputRange: [1, 1.1, 1] }); return ( {}} > @@ -98,9 +107,9 @@ export default class Loading extends React.PureComponent { diff --git a/app/containers/MessageActions.js b/app/containers/MessageActions.js index dc249b426..8f86c2c72 100644 --- a/app/containers/MessageActions.js +++ b/app/containers/MessageActions.js @@ -1,18 +1,20 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Alert, Clipboard, Vibration, Share } from 'react-native'; +import { + Alert, Clipboard, Vibration, Share +} from 'react-native'; import { connect } from 'react-redux'; import ActionSheet from 'react-native-actionsheet'; import * as moment from 'moment'; import { - deleteRequest, - editInit, - toggleStarRequest, - togglePinRequest, - actionsHide, - toggleReactionPicker, - replyInit + actionsHide as actionsHideAction, + deleteRequest as deleteRequestAction, + editInit as editInitAction, + replyInit as replyInitAction, + togglePinRequest as togglePinRequestAction, + toggleReactionPicker as toggleReactionPickerAction, + toggleStarRequest as toggleStarRequestAction } from '../actions/messages'; import { showToast } from '../utils/info'; import RocketChat from '../lib/rocketchat'; @@ -29,13 +31,13 @@ import I18n from '../i18n'; Message_AllowStarring: state.settings.Message_AllowStarring }), dispatch => ({ - actionsHide: () => dispatch(actionsHide()), - deleteRequest: message => dispatch(deleteRequest(message)), - editInit: message => dispatch(editInit(message)), - toggleStarRequest: message => dispatch(toggleStarRequest(message)), - togglePinRequest: message => dispatch(togglePinRequest(message)), - toggleReactionPicker: message => dispatch(toggleReactionPicker(message)), - replyInit: (message, mention) => dispatch(replyInit(message, mention)) + actionsHide: () => dispatch(actionsHideAction()), + deleteRequest: message => dispatch(deleteRequestAction(message)), + editInit: message => dispatch(editInitAction(message)), + toggleStarRequest: message => dispatch(toggleStarRequestAction(message)), + togglePinRequest: message => dispatch(togglePinRequestAction(message)), + toggleReactionPicker: message => dispatch(toggleReactionPickerAction(message)), + replyInit: (message, mention) => dispatch(replyInitAction(message, mention)) }) ) export default class MessageActions extends React.Component { @@ -63,6 +65,8 @@ export default class MessageActions extends React.Component { this.handleActionPress = this.handleActionPress.bind(this); this.setPermissions(); + const { Message_AllowStarring, Message_AllowPinning } = this.props; + // Cancel this.options = [I18n.t('Cancel')]; this.CANCEL_INDEX = 0; @@ -98,13 +102,13 @@ export default class MessageActions extends React.Component { } // Star - if (this.props.Message_AllowStarring) { + if (Message_AllowStarring) { this.options.push(I18n.t(props.actionMessage.starred ? 'Unstar' : 'Star')); this.STAR_INDEX = this.options.length - 1; } // Pin - if (this.props.Message_AllowPinning) { + if (Message_AllowPinning) { this.options.push(I18n.t(props.actionMessage.pinned ? 'Unpin' : 'Pin')); this.PIN_INDEX = this.options.length - 1; } @@ -129,8 +133,9 @@ export default class MessageActions extends React.Component { } setPermissions() { + const { room } = this.props; const permissions = ['edit-message', 'delete-message', 'force-delete-message']; - const result = RocketChat.hasPermission(permissions, this.props.room.rid); + const result = RocketChat.hasPermission(permissions, room.rid); this.hasEditPermission = result[permissions[0]]; this.hasDeletePermission = result[permissions[1]]; this.hasForceDeletePermission = result[permissions[2]]; @@ -146,20 +151,27 @@ export default class MessageActions extends React.Component { isOwn = props => props.actionMessage.u && props.actionMessage.u._id === props.user.id; - isRoomReadOnly = () => this.props.room.ro; + isRoomReadOnly = () => { + const { room } = this.props; + return room.ro; + } - canReactWhenReadOnly = () => this.props.room.reactWhenReadOnly; + canReactWhenReadOnly = () => { + const { room } = this.props; + return room.reactWhenReadOnly; + } allowEdit = (props) => { if (this.isRoomReadOnly()) { return false; } const editOwn = this.isOwn(props); - const { Message_AllowEditing: isEditAllowed } = this.props; + const { Message_AllowEditing: isEditAllowed, Message_AllowEditing_BlockEditInMinutes } = this.props; + if (!(this.hasEditPermission || (isEditAllowed && editOwn))) { return false; } - const blockEditInMinutes = this.props.Message_AllowEditing_BlockEditInMinutes; + const blockEditInMinutes = Message_AllowEditing_BlockEditInMinutes; if (blockEditInMinutes) { let msgTs; if (props.actionMessage.ts != null) { @@ -179,14 +191,14 @@ export default class MessageActions extends React.Component { return false; } const deleteOwn = this.isOwn(props); - const { Message_AllowDeleting: isDeleteAllowed } = this.props; + const { Message_AllowDeleting: isDeleteAllowed, Message_AllowDeleting_BlockDeleteInMinutes } = this.props; if (!(this.hasDeletePermission || (isDeleteAllowed && deleteOwn) || this.hasForceDeletePermission)) { return false; } if (this.hasForceDeletePermission) { return true; } - const blockDeleteInMinutes = this.props.Message_AllowDeleting_BlockDeleteInMinutes; + const blockDeleteInMinutes = Message_AllowDeleting_BlockDeleteInMinutes; if (blockDeleteInMinutes != null && blockDeleteInMinutes !== 0) { let msgTs; if (props.actionMessage.ts != null) { @@ -201,7 +213,8 @@ export default class MessageActions extends React.Component { return true; } - handleDelete() { + handleDelete = () => { + const { deleteRequest, actionMessage } = this.props; Alert.alert( I18n.t('Are_you_sure_question_mark'), I18n.t('You_will_not_be_able_to_recover_this_message'), @@ -213,56 +226,66 @@ export default class MessageActions extends React.Component { { text: I18n.t('Yes_action_it', { action: 'delete' }), style: 'destructive', - onPress: () => this.props.deleteRequest(this.props.actionMessage) + onPress: () => deleteRequest(actionMessage) } ], { cancelable: false } ); } - handleEdit() { - const { _id, msg, rid } = this.props.actionMessage; - this.props.editInit({ _id, msg, rid }); + handleEdit = () => { + const { actionMessage, editInit } = this.props; + const { _id, msg, rid } = actionMessage; + editInit({ _id, msg, rid }); } handleCopy = async() => { - await Clipboard.setString(this.props.actionMessage.msg); + const { actionMessage } = this.props; + await Clipboard.setString(actionMessage.msg); showToast(I18n.t('Copied_to_clipboard')); } handleShare = async() => { + const { actionMessage } = this.props; Share.share({ - message: this.props.actionMessage.msg.content.replace(/<(?:.|\n)*?>/gm, '') + message: actionMessage.msg.content.replace(/<(?:.|\n)*?>/gm, '') }); }; - handleStar() { - this.props.toggleStarRequest(this.props.actionMessage); + handleStar = () => { + const { actionMessage, toggleStarRequest } = this.props; + toggleStarRequest(actionMessage); } - async handlePermalink() { - const permalink = await this.getPermalink(this.props.actionMessage); + handlePermalink = async() => { + const { actionMessage } = this.props; + const permalink = await this.getPermalink(actionMessage); Clipboard.setString(permalink); showToast(I18n.t('Permalink_copied_to_clipboard')); } - handlePin() { - this.props.togglePinRequest(this.props.actionMessage); + handlePin = () => { + const { actionMessage, togglePinRequest } = this.props; + togglePinRequest(actionMessage); } - handleReply() { - this.props.replyInit(this.props.actionMessage, true); + handleReply = () => { + const { actionMessage, replyInit } = this.props; + replyInit(actionMessage, true); } - handleQuote() { - this.props.replyInit(this.props.actionMessage, false); + handleQuote = () => { + const { actionMessage, replyInit } = this.props; + replyInit(actionMessage, false); } - handleReaction() { - this.props.toggleReactionPicker(this.props.actionMessage); + handleReaction = () => { + const { actionMessage, toggleReactionPicker } = this.props; + toggleReactionPicker(actionMessage); } handleActionPress = (actionIndex) => { + const { actionsHide } = this.props; switch (actionIndex) { case this.REPLY_INDEX: this.handleReply(); @@ -297,7 +320,7 @@ export default class MessageActions extends React.Component { default: break; } - this.props.actionsHide(); + actionsHide(); } render() { diff --git a/app/containers/MessageBox/EmojiKeyboard.js b/app/containers/MessageBox/EmojiKeyboard.js index 9b5cb08e2..28e75c97c 100644 --- a/app/containers/MessageBox/EmojiKeyboard.js +++ b/app/containers/MessageBox/EmojiKeyboard.js @@ -12,9 +12,11 @@ export default class EmojiKeyboard extends React.PureComponent { const state = store.getState(); this.baseUrl = state.settings.Site_Url || state.server ? state.server.server : ''; } + onEmojiSelected = (emoji) => { KeyboardRegistry.onItemSelected('EmojiKeyboard', { emoji }); } + render() { return ( diff --git a/app/containers/MessageBox/FilesActions.js b/app/containers/MessageBox/FilesActions.js index c5d53b16a..fee149457 100644 --- a/app/containers/MessageBox/FilesActions.js +++ b/app/containers/MessageBox/FilesActions.js @@ -34,7 +34,7 @@ export default class FilesActions extends Component { } handleActionPress = (actionIndex) => { - const { takePhoto, chooseFromLibrary } = this.props; + const { takePhoto, chooseFromLibrary, hideActions } = this.props; switch (actionIndex) { case this.PHOTO_INDEX: takePhoto(); @@ -45,7 +45,7 @@ export default class FilesActions extends Component { default: break; } - this.props.hideActions(); + hideActions(); } render() { diff --git a/app/containers/MessageBox/Recording.js b/app/containers/MessageBox/Recording.js index a3c8a4210..ee8f49ea4 100644 --- a/app/containers/MessageBox/Recording.js +++ b/app/containers/MessageBox/Recording.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, SafeAreaView, Platform, PermissionsAndroid, Text } from 'react-native'; +import { + View, SafeAreaView, Platform, PermissionsAndroid, Text +} from 'react-native'; import { AudioRecorder, AudioUtils } from 'react-native-audio'; import Icon from 'react-native-vector-icons/MaterialIcons'; import styles from './styles'; @@ -61,7 +63,7 @@ export default class extends React.PureComponent { // AudioRecorder.onFinished = (data) => { if (!this.recordingCanceled && Platform.OS === 'ios') { - this._finishRecording(data.status === 'OK', data.audioFileURL); + this.finishRecording(data.status === 'OK', data.audioFileURL); } }; AudioRecorder.startRecording(); @@ -73,9 +75,10 @@ export default class extends React.PureComponent { } } - _finishRecording(didSucceed, filePath) { + finishRecording = (didSucceed, filePath) => { + const { onFinish } = this.props; if (!didSucceed) { - return this.props.onFinish && this.props.onFinish(didSucceed); + return onFinish && onFinish(didSucceed); } const path = filePath.startsWith('file://') ? filePath.split('file://')[1] : filePath; @@ -84,7 +87,7 @@ export default class extends React.PureComponent { store: 'Uploads', path }; - return this.props.onFinish && this.props.onFinish(fileInfo); + return onFinish && onFinish(fileInfo); } finishAudioMessage = async() => { @@ -92,10 +95,10 @@ export default class extends React.PureComponent { this.recording = false; const filePath = await AudioRecorder.stopRecording(); if (Platform.OS === 'android') { - this._finishRecording(true, filePath); + this.finishRecording(true, filePath); } } catch (err) { - this._finishRecording(false); + this.finishRecording(false); console.error(err); } } @@ -104,10 +107,12 @@ export default class extends React.PureComponent { this.recording = false; this.recordingCanceled = true; await AudioRecorder.stopRecording(); - return this._finishRecording(false); + return this.finishRecording(false); } render() { + const { currentTime } = this.state; + return ( - {this.state.currentTime} + {currentTime} { - this.props.close(); + const { close } = this.props; + close(); } render() { diff --git a/app/containers/MessageBox/UploadModal.js b/app/containers/MessageBox/UploadModal.js index 53f91ed45..c33eb6b07 100644 --- a/app/containers/MessageBox/UploadModal.js +++ b/app/containers/MessageBox/UploadModal.js @@ -1,5 +1,7 @@ import React, { Component } from 'react'; -import { View, Text, StyleSheet, Image, ScrollView, Platform } from 'react-native'; +import { + View, Text, StyleSheet, Image, ScrollView, Platform +} from 'react-native'; import PropTypes from 'prop-types'; import Modal from 'react-native-modal'; import { responsive } from 'react-native-responsive-ui'; @@ -85,9 +87,9 @@ export default class UploadModal extends Component { return ( this.props.close()} - onBackButtonPress={() => this.props.close()} + style={{ alignItems: 'center' }} + onBackdropPress={() => close()} + onBackButtonPress={() => close()} animationIn='fadeIn' animationOut='fadeOut' useNativeDriver diff --git a/app/containers/MessageBox/index.js b/app/containers/MessageBox/index.js index f256466f1..fdfa1a107 100644 --- a/app/containers/MessageBox/index.js +++ b/app/containers/MessageBox/index.js @@ -1,15 +1,21 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, TextInput, FlatList, Text, TouchableOpacity, Alert } from 'react-native'; +import { + View, TextInput, FlatList, Text, TouchableOpacity, Alert +} from 'react-native'; import Icon from 'react-native-vector-icons/MaterialIcons'; import { connect } from 'react-redux'; import { emojify } from 'react-emojione'; import { KeyboardAccessoryView } from 'react-native-keyboard-input'; import ImagePicker from 'react-native-image-crop-picker'; -import { userTyping } from '../../actions/room'; +import { userTyping as userTypingAction } from '../../actions/room'; +import { + editRequest as editRequestAction, + editCancel as editCancelAction, + replyCancel as replyCancelAction +} from '../../actions/messages'; import RocketChat from '../../lib/rocketchat'; -import { editRequest, editCancel, replyCancel } from '../../actions/messages'; import styles from './styles'; import MyIcon from '../icons'; import database from '../../lib/realm'; @@ -48,10 +54,10 @@ const imagePickerConfig = { baseUrl: state.settings.Site_Url || state.server ? state.server.server : '', username: state.login.user && state.login.user.username }), dispatch => ({ - editCancel: () => dispatch(editCancel()), - editRequest: message => dispatch(editRequest(message)), - typing: status => dispatch(userTyping(status)), - closeReply: () => dispatch(replyCancel()) + editCancel: () => dispatch(editCancelAction()), + editRequest: message => dispatch(editRequestAction(message)), + typing: status => dispatch(userTypingAction(status)), + closeReply: () => dispatch(replyCancelAction()) })) export default class MessageBox extends React.PureComponent { static propTypes = { @@ -86,13 +92,15 @@ export default class MessageBox extends React.PureComponent { this.rooms = []; this.emojis = []; this.customEmojis = []; - this._onEmojiSelected = this._onEmojiSelected.bind(this); + this.onEmojiSelected = this.onEmojiSelected.bind(this); } + componentWillReceiveProps(nextProps) { - if (this.props.message !== nextProps.message && nextProps.message.msg) { + const { message, replyMessage } = this.props; + if (message !== nextProps.message && nextProps.message.msg) { this.setState({ text: nextProps.message.msg }); this.component.focus(); - } else if (this.props.replyMessage !== nextProps.replyMessage && nextProps.replyMessage.msg) { + } else if (replyMessage !== nextProps.replyMessage && nextProps.replyMessage.msg) { this.component.focus(); } else if (!nextProps.message) { this.setState({ text: '' }); @@ -100,8 +108,10 @@ export default class MessageBox extends React.PureComponent { } onChangeText(text) { + const { typing } = this.props; + this.setState({ text }); - this.props.typing(text.length > 0); + typing(text.length > 0); requestAnimationFrame(() => { const { start, end } = this.component._lastNativeSelection; @@ -126,45 +136,95 @@ export default class MessageBox extends React.PureComponent { this.closeEmoji(); } - get leftButtons() { - const { editing } = this.props; - if (editing) { - return ( this.editCancel()} - testID='messagebox-cancel-editing' - />); - } - return !this.state.showEmojiKeyboard ? ( this.openEmoji()} - accessibilityLabel={I18n.t('Open_emoji_selector')} - accessibilityTraits='button' - name='mood' - testID='messagebox-open-emoji' - />) : ( this.closeEmoji()} - style={styles.actionButtons} - accessibilityLabel={I18n.t('Close_emoji_selector')} - accessibilityTraits='button' - name='keyboard' - testID='messagebox-close-emoji' - />); + onPressMention(item) { + const { trackingType } = this.state; + + const msg = this.component._lastNativeText; + + const { start, end } = this.component._lastNativeSelection; + + const cursor = Math.max(start, end); + + const regexp = /([a-z0-9._-]+)$/im; + + const result = msg.substr(0, cursor).replace(regexp, ''); + const mentionName = trackingType === MENTIONS_TRACKING_TYPE_EMOJIS + ? `${ item.name || item }:` + : (item.username || item.name); + const text = `${ result }${ mentionName } ${ msg.slice(cursor) }`; + this.component.setNativeProps({ text }); + this.setState({ text }); + this.component.focus(); + requestAnimationFrame(() => this.stopTrackingMention()); } + + onEmojiSelected(keyboardId, params) { + const { text } = this.state; + const { emoji } = params; + let newText = ''; + + // if messagebox has an active cursor + if (this.component._lastNativeSelection) { + const { start, end } = this.component._lastNativeSelection; + const cursor = Math.max(start, end); + newText = `${ text.substr(0, cursor) }${ emoji }${ text.substr(cursor) }`; + } else { + // if messagebox doesn't have a cursor, just append selected emoji + newText = `${ text }${ emoji }`; + } + this.component.setNativeProps({ text: newText }); + this.setState({ text: newText }); + } + + get leftButtons() { + const { showEmojiKeyboard } = this.state; + const { editing } = this.props; + + if (editing) { + return ( + this.editCancel()} + testID='messagebox-cancel-editing' + /> + ); + } + return !showEmojiKeyboard + ? ( + this.openEmoji()} + accessibilityLabel={I18n.t('Open_emoji_selector')} + accessibilityTraits='button' + name='mood' + testID='messagebox-open-emoji' + />) + : ( + this.closeEmoji()} + style={styles.actionButtons} + accessibilityLabel={I18n.t('Close_emoji_selector')} + accessibilityTraits='button' + name='keyboard' + testID='messagebox-close-emoji' + />); + } + get rightButtons() { + const { text } = this.state; const icons = []; - if (this.state.text) { + if (text) { icons.push( this.submit(this.state.text)} + onPress={() => this.submit(text)} testID='messagebox-send-message' />); return icons; @@ -198,123 +258,7 @@ export default class MessageBox extends React.PureComponent { } } - toggleFilesActions = () => { - this.setState(prevState => ({ showFilesAction: !prevState.showFilesAction })); - } - - sendImageMessage = async(file) => { - this.setState({ file: { isVisible: false } }); - const fileInfo = { - name: file.name, - description: file.description, - size: file.size, - type: file.mime, - store: 'Uploads', - path: file.path - }; - try { - await RocketChat.sendFileMessage(this.props.rid, fileInfo); - } catch (e) { - log('sendImageMessage', e); - } - } - - takePhoto = async() => { - try { - const image = await ImagePicker.openCamera(imagePickerConfig); - this.showUploadModal(image); - } catch (e) { - log('takePhoto', e); - } - } - - chooseFromLibrary = async() => { - try { - const image = await ImagePicker.openPicker(imagePickerConfig); - this.showUploadModal(image); - } catch (e) { - log('chooseFromLibrary', e); - } - } - - showUploadModal = (file) => { - this.setState({ file: { ...file, isVisible: true } }); - } - - editCancel() { - this.props.editCancel(); - this.setState({ text: '' }); - } - - async openEmoji() { - await this.setState({ - showEmojiKeyboard: true - }); - } - - async recordAudioMessage() { - const recording = await Recording.permission(); - this.setState({ recording }); - } - - finishAudioMessage = async(fileInfo) => { - this.setState({ - recording: false - }); - if (fileInfo) { - try { - await RocketChat.sendFileMessage(this.props.rid, fileInfo); - } catch (e) { - if (e && e.error === 'error-file-too-large') { - return Alert.alert(I18n.t(e.error)); - } - log('finishAudioMessage', e); - } - } - } - - closeEmoji() { - this.setState({ showEmojiKeyboard: false }); - } - - async submit(message) { - this.setState({ text: '' }); - this.closeEmoji(); - this.stopTrackingMention(); - this.props.typing(false); - if (message.trim() === '') { - return; - } - // if is editing a message - const { - editing, replying - } = this.props; - - if (editing) { - const { _id, rid } = this.props.message; - this.props.editRequest({ _id, msg: message, rid }); - } else if (replying) { - const { - username, replyMessage, roomType, closeReply - } = this.props; - const permalink = await this.getPermalink(replyMessage); - let msg = `[ ](${ permalink }) `; - - // if original message wasn't sent by current user and neither from a direct room - if (username !== replyMessage.u.username && roomType !== 'd' && replyMessage.mention) { - msg += `@${ replyMessage.u.username } `; - } - - msg = `${ msg } ${ message }`; - this.props.onSubmit(msg); - closeReply(); - } else { - // if is submiting a new message - this.props.onSubmit(message); - } - } - - _getFixedMentions(keyword) { + getFixedMentions(keyword) { if ('all'.indexOf(keyword) !== -1) { this.users = [{ _id: -1, username: 'all' }, ...this.users]; } @@ -323,12 +267,12 @@ export default class MessageBox extends React.PureComponent { } } - async _getUsers(keyword) { + async getUsers(keyword) { this.users = database.objects('users'); if (keyword) { this.users = this.users.filtered('username CONTAINS[c] $0', keyword); } - this._getFixedMentions(keyword); + this.getFixedMentions(keyword); this.setState({ mentions: this.users.slice() }); const usernames = []; @@ -359,12 +303,12 @@ export default class MessageBox extends React.PureComponent { } finally { delete this.oldPromise; this.users = database.objects('users').filtered('username CONTAINS[c] $0', keyword).slice(); - this._getFixedMentions(keyword); + this.getFixedMentions(keyword); this.setState({ mentions: this.users }); } } - async _getRooms(keyword = '') { + async getRooms(keyword = '') { this.roomsCache = this.roomsCache || []; this.rooms = database.objects('subscriptions') .filtered('t != $0', 'd'); @@ -406,7 +350,7 @@ export default class MessageBox extends React.PureComponent { } } - _getEmojis(keyword) { + getEmojis(keyword) { if (keyword) { this.customEmojis = database.objects('customEmojis').filtered('name CONTAINS[c] $0', keyword).slice(0, 4); this.emojis = emojis.filter(emoji => emoji.indexOf(keyword) !== -1).slice(0, 4); @@ -415,6 +359,149 @@ export default class MessageBox extends React.PureComponent { } } + toggleFilesActions = () => { + this.setState(prevState => ({ showFilesAction: !prevState.showFilesAction })); + } + + sendImageMessage = async(file) => { + const { rid } = this.props; + + this.setState({ file: { isVisible: false } }); + const fileInfo = { + name: file.name, + description: file.description, + size: file.size, + type: file.mime, + store: 'Uploads', + path: file.path + }; + try { + await RocketChat.sendFileMessage(rid, fileInfo); + } catch (e) { + log('sendImageMessage', e); + } + } + + takePhoto = async() => { + try { + const image = await ImagePicker.openCamera(imagePickerConfig); + this.showUploadModal(image); + } catch (e) { + log('takePhoto', e); + } + } + + chooseFromLibrary = async() => { + try { + const image = await ImagePicker.openPicker(imagePickerConfig); + this.showUploadModal(image); + } catch (e) { + log('chooseFromLibrary', e); + } + } + + showUploadModal = (file) => { + this.setState({ file: { ...file, isVisible: true } }); + } + + editCancel = () => { + const { editCancel } = this.props; + editCancel(); + this.setState({ text: '' }); + } + + openEmoji = async() => { + await this.setState({ + showEmojiKeyboard: true + }); + } + + recordAudioMessage = async() => { + const recording = await Recording.permission(); + this.setState({ recording }); + } + + finishAudioMessage = async(fileInfo) => { + const { rid } = this.props; + + this.setState({ + recording: false + }); + if (fileInfo) { + try { + await RocketChat.sendFileMessage(rid, fileInfo); + } catch (e) { + if (e && e.error === 'error-file-too-large') { + return Alert.alert(I18n.t(e.error)); + } + log('finishAudioMessage', e); + } + } + } + + closeEmoji = () => { + this.setState({ showEmojiKeyboard: false }); + } + + submit = async(message) => { + const { + typing, message: editingMessage, editRequest, onSubmit + } = this.props; + + this.setState({ text: '' }); + this.closeEmoji(); + this.stopTrackingMention(); + typing(false); + if (message.trim() === '') { + return; + } + // if is editing a message + const { + editing, replying + } = this.props; + + if (editing) { + const { _id, rid } = editingMessage; + editRequest({ _id, msg: message, rid }); + } else if (replying) { + const { + username, replyMessage, roomType, closeReply + } = this.props; + const permalink = await this.getPermalink(replyMessage); + let msg = `[ ](${ permalink }) `; + + // if original message wasn't sent by current user and neither from a direct room + if (username !== replyMessage.u.username && roomType !== 'd' && replyMessage.mention) { + msg += `@${ replyMessage.u.username } `; + } + + msg = `${ msg } ${ message }`; + onSubmit(msg); + closeReply(); + } else { + // if is submiting a new message + onSubmit(message); + } + } + + updateMentions = (keyword, type) => { + if (type === MENTIONS_TRACKING_TYPE_USERS) { + this.getUsers(keyword); + } else if (type === MENTIONS_TRACKING_TYPE_EMOJIS) { + this.getEmojis(keyword); + } else { + this.getRooms(keyword); + } + } + + identifyMentionKeyword(keyword, type) { + this.setState({ + showEmojiKeyboard: false, + trackingType: type + }); + this.updateMentions(keyword, type); + } + stopTrackingMention() { this.setState({ mentions: [], @@ -426,76 +513,26 @@ export default class MessageBox extends React.PureComponent { this.emojis = []; } - identifyMentionKeyword(keyword, type) { - this.setState({ - showEmojiKeyboard: false, - trackingType: type - }); - this.updateMentions(keyword, type); - } - - updateMentions = (keyword, type) => { - if (type === MENTIONS_TRACKING_TYPE_USERS) { - this._getUsers(keyword); - } else if (type === MENTIONS_TRACKING_TYPE_EMOJIS) { - this._getEmojis(keyword); - } else { - this._getRooms(keyword); - } - } - - _onPressMention(item) { - const msg = this.component._lastNativeText; - - const { start, end } = this.component._lastNativeSelection; - - const cursor = Math.max(start, end); - - const regexp = /([a-z0-9._-]+)$/im; - - const result = msg.substr(0, cursor).replace(regexp, ''); - const mentionName = this.state.trackingType === MENTIONS_TRACKING_TYPE_EMOJIS ? - `${ item.name || item }:` : (item.username || item.name); - const text = `${ result }${ mentionName } ${ msg.slice(cursor) }`; - this.component.setNativeProps({ text }); - this.setState({ text }); - this.component.focus(); - requestAnimationFrame(() => this.stopTrackingMention()); - } - _onEmojiSelected(keyboardId, params) { - const { text } = this.state; - const { emoji } = params; - let newText = ''; - - // if messagebox has an active cursor - if (this.component._lastNativeSelection) { - const { start, end } = this.component._lastNativeSelection; - const cursor = Math.max(start, end); - newText = `${ text.substr(0, cursor) }${ emoji }${ text.substr(cursor) }`; - } else { - // if messagebox doesn't have a cursor, just append selected emoji - newText = `${ text }${ emoji }`; - } - this.component.setNativeProps({ text: newText }); - this.setState({ text: newText }); - } renderFixedMentionItem = item => ( this._onPressMention(item)} + onPress={() => this.onPressMention(item)} > {item.username} {item.username === 'here' ? I18n.t('Notify_active_in_this_room') : I18n.t('Notify_all_in_this_room')} ) + renderMentionEmoji = (item) => { + const { baseUrl } = this.props; + if (item.name) { return ( ); } @@ -508,18 +545,22 @@ export default class MessageBox extends React.PureComponent { ); } + renderMentionItem = (item) => { + const { trackingType } = this.state; + const { baseUrl } = this.props; + if (item.username === 'all' || item.username === 'here') { return this.renderFixedMentionItem(item); } return ( this._onPressMention(item)} - testID={`mention-item-${ this.state.trackingType === MENTIONS_TRACKING_TYPE_EMOJIS ? item.name || item : item.username || item.name }`} + onPress={() => this.onPressMention(item)} + testID={`mention-item-${ trackingType === MENTIONS_TRACKING_TYPE_EMOJIS ? item.name || item : item.username || item.name }`} > - {this.state.trackingType === MENTIONS_TRACKING_TYPE_EMOJIS ? - [ + {trackingType === MENTIONS_TRACKING_TYPE_EMOJIS + ? [ this.renderMentionEmoji(item), :{ item.name || item }: ] @@ -530,7 +571,7 @@ export default class MessageBox extends React.PureComponent { text={item.username || item.name} size={30} type={item.username ? 'd' : 'c'} - baseUrl={this.props.baseUrl} + baseUrl={baseUrl} />, { item.username || item.name } ] @@ -538,6 +579,7 @@ export default class MessageBox extends React.PureComponent { ); } + renderMentions = () => { const { mentions, trackingType } = this.state; if (!trackingType) { @@ -567,7 +609,9 @@ export default class MessageBox extends React.PureComponent { }; renderFilesActions = () => { - if (!this.state.showFilesAction) { + const { showFilesAction } = this.state; + + if (!showFilesAction) { return null; } return ( @@ -581,7 +625,10 @@ export default class MessageBox extends React.PureComponent { } renderContent() { - if (this.state.recording) { + const { recording, text } = this.state; + const { editing } = this.props; + + if (recording) { return (); } return ( @@ -590,7 +637,7 @@ export default class MessageBox extends React.PureComponent { {this.renderReplyPreview()} {this.leftButtons} @@ -601,8 +648,8 @@ export default class MessageBox extends React.PureComponent { keyboardType='twitter' blurOnSubmit={false} placeholder={I18n.t('New_Message')} - onChangeText={text => this.onChangeText(text)} - value={this.state.text} + onChangeText={t => this.onChangeText(t)} + value={text} underlineColorAndroid='transparent' defaultValue='' multiline @@ -617,15 +664,16 @@ export default class MessageBox extends React.PureComponent { } render() { + const { showEmojiKeyboard, file } = this.state; return ( [ this.renderContent()} kbInputRef={this.component} - kbComponent={this.state.showEmojiKeyboard ? 'EmojiKeyboard' : null} + kbComponent={showEmojiKeyboard ? 'EmojiKeyboard' : null} onKeyboardResigned={() => this.onKeyboardResigned()} - onItemSelected={this._onEmojiSelected} + onItemSelected={this.onEmojiSelected} trackInteractive // revealKeyboardInteractive requiresSameParentToManageScrollView @@ -634,8 +682,8 @@ export default class MessageBox extends React.PureComponent { this.renderFilesActions(), this.setState({ file: {} })} submit={this.sendImageMessage} /> diff --git a/app/containers/MessageErrorActions.js b/app/containers/MessageErrorActions.js index cb68946ef..ca471ac21 100644 --- a/app/containers/MessageErrorActions.js +++ b/app/containers/MessageErrorActions.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import ActionSheet from 'react-native-actionsheet'; -import { errorActionsHide } from '../actions/messages'; +import { errorActionsHide as errorActionsHideAction } from '../actions/messages'; import RocketChat from '../lib/rocketchat'; import database from '../lib/realm'; import protectedFunction from '../lib/methods/helpers/protectedFunction'; @@ -14,7 +14,7 @@ import I18n from '../i18n'; actionMessage: state.messages.actionMessage }), dispatch => ({ - errorActionsHide: () => dispatch(errorActionsHide()) + errorActionsHide: () => dispatch(errorActionsHideAction()) }) ) export default class MessageErrorActions extends React.Component { @@ -23,6 +23,7 @@ export default class MessageErrorActions extends React.Component { actionMessage: PropTypes.object }; + // eslint-disable-next-line react/sort-comp constructor(props) { super(props); this.handleActionPress = this.handleActionPress.bind(this); @@ -35,16 +36,21 @@ export default class MessageErrorActions extends React.Component { } } - handleResend = protectedFunction(() => RocketChat.resendMessage(this.props.actionMessage._id)); + handleResend = protectedFunction(() => { + const { actionMessage } = this.props; + RocketChat.resendMessage(actionMessage._id); + }); handleDelete = protectedFunction(() => { + const { actionMessage } = this.props; database.write(() => { - const msg = database.objects('messages').filtered('_id = $0', this.props.actionMessage._id); + const msg = database.objects('messages').filtered('_id = $0', actionMessage._id); database.delete(msg); }); }) handleActionPress = (actionIndex) => { + const { errorActionsHide } = this.props; switch (actionIndex) { case this.RESEND_INDEX: this.handleResend(); @@ -55,7 +61,7 @@ export default class MessageErrorActions extends React.Component { default: break; } - this.props.errorActionsHide(); + errorActionsHide(); } render() { diff --git a/app/containers/SearchBox.js b/app/containers/SearchBox.js index 5135ba197..031564d01 100644 --- a/app/containers/SearchBox.js +++ b/app/containers/SearchBox.js @@ -1,5 +1,7 @@ import React from 'react'; -import { View, StyleSheet, Image, TextInput, Platform } from 'react-native'; +import { + View, StyleSheet, Image, TextInput, Platform +} from 'react-native'; import PropTypes from 'prop-types'; import I18n from '../i18n'; diff --git a/app/containers/Sidebar.js b/app/containers/Sidebar.js index e471ad734..056f9ee71 100644 --- a/app/containers/Sidebar.js +++ b/app/containers/Sidebar.js @@ -1,13 +1,15 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { ScrollView, Text, View, StyleSheet, FlatList, LayoutAnimation, SafeAreaView } from 'react-native'; +import { + ScrollView, Text, View, StyleSheet, FlatList, LayoutAnimation, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import Icon from 'react-native-vector-icons/MaterialIcons'; -import { appStart } from '../actions'; -import { logout } from '../actions/login'; -import Avatar from '../containers/Avatar'; -import Status from '../containers/status'; +import { appStart as appStartAction } from '../actions'; +import { logout as logoutAction } from '../actions/login'; +import Avatar from './Avatar'; +import Status from './status'; import Touch from '../utils/touch'; import { STATUS_COLORS } from '../constants/colors'; import RocketChat from '../lib/rocketchat'; @@ -87,8 +89,8 @@ const keyExtractor = item => item.id; }, baseUrl: state.settings.Site_Url || state.server ? state.server.server : '' }), dispatch => ({ - logout: () => dispatch(logout()), - appStart: () => dispatch(appStart('outside')) + logout: () => dispatch(logoutAction()), + appStart: () => dispatch(appStartAction('outside')) })) export default class Sidebar extends Component { static propTypes = { @@ -112,7 +114,8 @@ export default class Sidebar extends Component { } componentWillReceiveProps(nextProps) { - if (nextProps.user && this.props.user && this.props.user.language !== nextProps.user.language) { + const { user } = this.props; + if (nextProps.user && user && user.language !== nextProps.user.language) { this.setStatus(); } } @@ -138,7 +141,8 @@ export default class Sidebar extends Component { } closeDrawer = () => { - this.props.navigator.toggleDrawer({ + const { navigator } = this.props; + navigator.toggleDrawer({ side: 'left', animated: true, to: 'close' @@ -147,7 +151,7 @@ export default class Sidebar extends Component { toggleStatus = () => { LayoutAnimation.easeInEaseOut(); - this.setState({ showStatus: !this.state.showStatus }); + this.setState(prevState => ({ showStatus: !prevState.showStatus })); } sidebarNavigate = (screen, title) => { @@ -178,67 +182,79 @@ export default class Sidebar extends Component { ) - renderStatusItem = ({ item }) => ( - this.renderItem({ - text: item.name, - left: , - selected: this.props.user.status === item.id, - onPress: () => { - this.closeDrawer(); - this.toggleStatus(); - if (this.props.user.status !== item.id) { - try { - RocketChat.setUserPresenceDefaultStatus(item.id); - } catch (e) { - log('setUserPresenceDefaultStatus', e); + renderStatusItem = ({ item }) => { + const { user } = this.props; + return ( + this.renderItem({ + text: item.name, + left: , + selected: user.status === item.id, + onPress: () => { + this.closeDrawer(); + this.toggleStatus(); + if (user.status !== item.id) { + try { + RocketChat.setUserPresenceDefaultStatus(item.id); + } catch (e) { + log('setUserPresenceDefaultStatus', e); + } } } - } - }) - ) - - renderNavigation = () => ( - [ - this.renderItem({ - text: I18n.t('Chats'), - left: , - onPress: () => this.sidebarNavigate('RoomsListView', I18n.t('Messages')), - testID: 'sidebar-chats' - }), - this.renderItem({ - text: I18n.t('Profile'), - left: , - onPress: () => this.sidebarNavigate('ProfileView', I18n.t('Profile')), - testID: 'sidebar-profile' - }), - this.renderItem({ - text: I18n.t('Settings'), - left: , - onPress: () => this.sidebarNavigate('SettingsView', I18n.t('Settings')), - testID: 'sidebar-settings' - }), - this.renderSeparator('separator-logout'), - this.renderItem({ - text: I18n.t('Logout'), - left: , - onPress: () => this.props.logout(), - testID: 'sidebar-logout' }) - ] - ) + ); + } - renderStatus = () => ( - - ) + renderNavigation = () => { + const { logout } = this.props; + return ( + [ + this.renderItem({ + text: I18n.t('Chats'), + left: , + onPress: () => this.sidebarNavigate('RoomsListView', I18n.t('Messages')), + testID: 'sidebar-chats' + }), + this.renderItem({ + text: I18n.t('Profile'), + left: , + onPress: () => this.sidebarNavigate('ProfileView', I18n.t('Profile')), + testID: 'sidebar-profile' + }), + this.renderItem({ + text: I18n.t('Settings'), + left: , + onPress: () => this.sidebarNavigate('SettingsView', I18n.t('Settings')), + testID: 'sidebar-settings' + }), + this.renderSeparator('separator-logout'), + this.renderItem({ + text: I18n.t('Logout'), + left: , + onPress: () => logout(), + testID: 'sidebar-logout' + }) + ] + ); + } + + renderStatus = () => { + const { status } = this.state; + const { user } = this.props; + return ( + + ); + } render() { + const { showStatus } = this.state; const { user, server, baseUrl } = this.props; + if (!user) { return null; } @@ -266,7 +282,7 @@ export default class Sidebar extends Component { {server} @@ -275,8 +291,8 @@ export default class Sidebar extends Component { {this.renderSeparator('separator-header')} - {!this.state.showStatus ? this.renderNavigation() : null} - {this.state.showStatus ? this.renderStatus() : null} + {!showStatus ? this.renderNavigation() : null} + {showStatus ? this.renderStatus() : null} {DeviceInfo.getReadableVersion()} diff --git a/app/containers/TextInput.js b/app/containers/TextInput.js index 68178c178..ce77df705 100644 --- a/app/containers/TextInput.js +++ b/app/containers/TextInput.js @@ -1,5 +1,7 @@ import React from 'react'; -import { View, StyleSheet, Text, TextInput, ViewPropTypes, Platform } from 'react-native'; +import { + View, StyleSheet, Text, TextInput, ViewPropTypes, Platform +} from 'react-native'; import PropTypes from 'prop-types'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; @@ -68,9 +70,11 @@ export default class RCTextInput extends React.PureComponent { iconLeft: PropTypes.string, placeholder: PropTypes.string } + static defaultProps = { error: {} } + state = { showPassword: false } @@ -82,21 +86,30 @@ export default class RCTextInput extends React.PureComponent { testID }) => - iconLeft = name => this.icon({ - name, - onPress: null, - style: { left: 0 }, - testID: this.props.testID ? `${ this.props.testID }-icon-left` : null - }); + iconLeft = (name) => { + const { testID } = this.props; + return this.icon({ + name, + onPress: null, + style: { left: 0 }, + testID: testID ? `${ testID }-icon-left` : null + }); + } - iconPassword = name => this.icon({ - name, - onPress: () => this.tooglePassword(), - style: { right: 0 }, - testID: this.props.testID ? `${ this.props.testID }-icon-right` : null - }); + iconPassword = (name) => { + const { testID } = this.props; + return this.icon({ + name, + onPress: () => this.tooglePassword(), + style: { right: 0 }, + testID: testID ? `${ testID }-icon-right` : null + }); + } - tooglePassword = () => this.setState({ showPassword: !this.state.showPassword }); + tooglePassword = () => { + const { showPassword } = this.state; + this.setState({ showPassword: !showPassword }); + } render() { const { diff --git a/app/containers/Typing.js b/app/containers/Typing.js index 3d3cf933f..10836a1d7 100644 --- a/app/containers/Typing.js +++ b/app/containers/Typing.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, StyleSheet, Text, Keyboard, LayoutAnimation } from 'react-native'; +import { + View, StyleSheet, Text, Keyboard, LayoutAnimation +} from 'react-native'; import { connect } from 'react-redux'; import I18n from '../i18n'; @@ -22,18 +24,24 @@ const styles = StyleSheet.create({ })) export default class Typing extends React.Component { shouldComponentUpdate(nextProps) { - return this.props.usersTyping.join() !== nextProps.usersTyping.join(); + const { usersTyping } = this.props; + return usersTyping.join() !== nextProps.usersTyping.join(); } + componentWillUpdate() { LayoutAnimation.easeInEaseOut(); } + onPress = () => { Keyboard.dismiss(); } + get usersTyping() { - const users = this.props.usersTyping.filter(_username => this.props.username !== _username); + const { usersTyping, username } = this.props; + const users = usersTyping.filter(_username => username !== _username); return users.length ? `${ users.join(', ') } ${ users.length > 1 ? I18n.t('are_typing') : I18n.t('is_typing') }` : ''; } + render() { const { usersTyping } = this; diff --git a/app/containers/message/Audio.js b/app/containers/message/Audio.js index 45bc4f898..0037eb57e 100644 --- a/app/containers/message/Audio.js +++ b/app/containers/message/Audio.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, StyleSheet, Text, Easing, Image } from 'react-native'; +import { + View, StyleSheet, Text, Easing, Image +} from 'react-native'; import Video from 'react-native-video'; import Slider from 'react-native-slider'; import moment from 'moment'; @@ -72,7 +74,8 @@ export default class Audio extends React.PureComponent { } onProgress(data) { - if (data.currentTime <= this.state.duration) { + const { duration } = this.state; + if (data.currentTime <= duration) { this.setState({ currentTime: data.currentTime }); } } @@ -85,15 +88,19 @@ export default class Audio extends React.PureComponent { } getDuration() { - return formatTime(this.state.duration); + const { duration } = this.state; + return formatTime(duration); } togglePlayPause() { - this.setState({ paused: !this.state.paused }); + const { paused } = this.state; + this.setState({ paused: !paused }); } render() { - const { uri, paused } = this.state; + const { + uri, paused, currentTime, duration + } = this.state; const { user, baseUrl, customEmojis, file } = this.props; @@ -122,15 +129,15 @@ export default class Audio extends React.PureComponent { onPress={() => this.togglePlayPause()} > { - paused ? - : - + paused + ? + : } this.setState({ modalVisible: false })} /> ] diff --git a/app/containers/message/Markdown.js b/app/containers/message/Markdown.js index 9c32e49f2..b904af210 100644 --- a/app/containers/message/Markdown.js +++ b/app/containers/message/Markdown.js @@ -9,16 +9,17 @@ import CustomEmoji from '../EmojiPicker/CustomEmoji'; import MarkdownEmojiPlugin from './MarkdownEmojiPlugin'; // Support -const formatText = text => - text.replace( - new RegExp('(?:<|<)((?:https|http):\\/\\/[^\\|]+)\\|(.+?)(?=>|>)(?:>|>)', 'gm'), - (match, url, title) => `[${ title }](${ url })` - ); +const formatText = text => text.replace( + new RegExp('(?:<|<)((?:https|http):\\/\\/[^\\|]+)\\|(.+?)(?=>|>)(?:>|>)', 'gm'), + (match, url, title) => `[${ title }](${ url })` +); export default class Markdown extends React.Component { shouldComponentUpdate(nextProps) { - return nextProps.msg !== this.props.msg; + const { msg } = this.props; + return nextProps.msg !== msg; } + render() { const { msg, customEmojis, style, rules, baseUrl, username, edited @@ -33,8 +34,10 @@ export default class Markdown extends React.Component { ( + // eslint-disable-next-line - {children}{edited ? (edited) : null} + {children} + {edited ? (edited) : null} ), mention: (node) => { diff --git a/app/containers/message/Message.js b/app/containers/message/Message.js index 5ff1b465c..c911e07f4 100644 --- a/app/containers/message/Message.js +++ b/app/containers/message/Message.js @@ -1,6 +1,8 @@ import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; -import { View, Text, ViewPropTypes, Image as ImageRN } from 'react-native'; +import { + View, Text, ViewPropTypes, Image as ImageRN +} from 'react-native'; import Icon from 'react-native-vector-icons/MaterialIcons'; import moment from 'moment'; import { KeyboardUtils } from 'react-native-keyboard-input'; @@ -137,22 +139,29 @@ export default class Message extends PureComponent { KeyboardUtils.dismiss(); } - isInfoMessage() { - return SYSTEM_MESSAGES.includes(this.props.type); + isInfoMessage = () => { + const { type } = this.props; + return SYSTEM_MESSAGES.includes(type); } - isOwn = () => this.props.author._id === this.props.user.id; + isOwn = () => { + const { author, user } = this.props; + return author._id === user.id; + } isDeleted() { - return this.props.type === 'rm'; + const { type } = this.props; + return type === 'rm'; } isTemp() { - return this.props.status === messagesStatus.TEMP || this.props.status === messagesStatus.ERROR; + const { status } = this.props; + return status === messagesStatus.TEMP || status === messagesStatus.ERROR; } hasError() { - return this.props.status === messagesStatus.ERROR; + const { status } = this.props; + return status === messagesStatus.ERROR; } renderAvatar = () => { @@ -242,19 +251,23 @@ export default class Message extends PureComponent { if (!this.hasError()) { return null; } - return ; + const { onErrorPress } = this.props; + return ; } renderReaction = (reaction) => { - const reacted = reaction.usernames.findIndex(item => item.value === this.props.user.username) !== -1; + const { + user, onReactionLongPress, onReactionPress, customEmojis, baseUrl + } = this.props; + const reacted = reaction.usernames.findIndex(item => item.value === user.username) !== -1; const underlayColor = reacted ? '#fff' : '#e1e5e8'; return ( nativeEvent.state === State.ACTIVE && this.props.onReactionLongPress()} + onHandlerStateChange={({ nativeEvent }) => nativeEvent.state === State.ACTIVE && onReactionLongPress()} > this.props.onReactionPress(reaction.emoji)} + onPress={() => onReactionPress(reaction.emoji)} testID={`message-reaction-${ reaction.emoji }`} style={[styles.reactionButton, reacted && { backgroundColor: '#e8f2ff' }]} activeOpacity={0.8} @@ -263,10 +276,10 @@ export default class Message extends PureComponent { { reaction.usernames.length } @@ -276,7 +289,7 @@ export default class Message extends PureComponent { } renderReactions() { - const { reactions } = this.props; + const { reactions, toggleReactionPicker } = this.props; if (reactions.length === 0) { return null; } @@ -284,7 +297,7 @@ export default class Message extends PureComponent { {reactions.map(this.renderReaction)} - {reactionsModal ? - + {reactionsModal + ? ( + + ) : null } diff --git a/app/containers/message/PhotoModal.js b/app/containers/message/PhotoModal.js index c3b83480b..fc2ff6888 100644 --- a/app/containers/message/PhotoModal.js +++ b/app/containers/message/PhotoModal.js @@ -1,5 +1,7 @@ import React from 'react'; -import { View, Text, TouchableWithoutFeedback, ActivityIndicator, StyleSheet } from 'react-native'; +import { + View, Text, TouchableWithoutFeedback, ActivityIndicator, StyleSheet +} from 'react-native'; import FastImage from 'react-native-fast-image'; import PropTypes from 'prop-types'; import Modal from 'react-native-modal'; @@ -45,6 +47,7 @@ export default class PhotoModal extends React.PureComponent { onClose: PropTypes.func.isRequired, window: PropTypes.object } + render() { const { image, isVisible, onClose, title, description, window: { width, height } diff --git a/app/containers/message/ReactionsModal.js b/app/containers/message/ReactionsModal.js index 287c2f7c0..9e5546079 100644 --- a/app/containers/message/ReactionsModal.js +++ b/app/containers/message/ReactionsModal.js @@ -1,5 +1,7 @@ import React from 'react'; -import { View, Text, TouchableWithoutFeedback, FlatList, StyleSheet } from 'react-native'; +import { + View, Text, TouchableWithoutFeedback, FlatList, StyleSheet +} from 'react-native'; import PropTypes from 'prop-types'; import Modal from 'react-native-modal'; import Icon from 'react-native-vector-icons/MaterialIcons'; @@ -66,10 +68,12 @@ export default class ReactionsModal extends React.PureComponent { PropTypes.object ]) } + renderItem = (item) => { + const { user, customEmojis, baseUrl } = this.props; const count = item.usernames.length; let usernames = item.usernames.slice(0, 3) - .map(username => (username.value === this.props.user.username ? I18n.t('you') : username.value)).join(', '); + .map(username => (username.value === user.username ? I18n.t('you') : username.value)).join(', '); if (count > 3) { usernames = `${ usernames } ${ I18n.t('and_more') } ${ count - 3 }`; } else { @@ -82,8 +86,8 @@ export default class ReactionsModal extends React.PureComponent { content={item.emoji} standardEmojiStyle={standardEmojiStyle} customEmojiStyle={customEmojiStyle} - customEmojis={this.props.customEmojis} - baseUrl={this.props.baseUrl} + customEmojis={customEmojis} + baseUrl={baseUrl} /> diff --git a/app/containers/message/User.js b/app/containers/message/User.js index 6356709ba..c3d4b3dd0 100644 --- a/app/containers/message/User.js +++ b/app/containers/message/User.js @@ -41,7 +41,7 @@ export default class User extends React.PureComponent { render() { const { - username, alias, ts, temp + username, alias, ts, temp, timeFormat } = this.props; const extraStyle = {}; @@ -50,7 +50,7 @@ export default class User extends React.PureComponent { } const aliasUsername = alias ? (@{username}) : null; - const time = moment(ts).format(this.props.timeFormat); + const time = moment(ts).format(timeFormat); return ( diff --git a/app/containers/message/Video.js b/app/containers/message/Video.js index 2e926b859..f3f947aa3 100644 --- a/app/containers/message/Video.js +++ b/app/containers/message/Video.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { StyleSheet, Image, Platform, View } from 'react-native'; +import { + StyleSheet, Image, Platform, View +} from 'react-native'; import Modal from 'react-native-modal'; import VideoPlayer from 'react-native-video-controls'; import { RectButton } from 'react-native-gesture-handler'; @@ -42,19 +44,20 @@ export default class Video extends React.PureComponent { state = { isVisible: false }; get uri() { - const { video_url } = this.props.file; - const { baseUrl, user } = this.props; + const { baseUrl, user, file } = this.props; + const { video_url } = file; return `${ baseUrl }${ video_url }?rc_uid=${ user.id }&rc_token=${ user.token }`; } toggleModal() { - this.setState({ - isVisible: !this.state.isVisible - }); + this.setState(prevState => ({ + isVisible: !prevState.isVisible + })); } open() { - if (isTypeSupported(this.props.file.video_type)) { + const { file } = this.props; + if (isTypeSupported(file.video_type)) { return this.toggleModal(); } openLink(this.uri); @@ -62,8 +65,10 @@ export default class Video extends React.PureComponent { render() { const { isVisible } = this.state; - const { description } = this.props.file; - const { baseUrl, user, customEmojis } = this.props; + const { + baseUrl, user, customEmojis, file + } = this.props; + const { description } = file; if (!baseUrl) { return null; diff --git a/app/containers/message/index.js b/app/containers/message/index.js index 75d68608d..dd9df8e2e 100644 --- a/app/containers/message/index.js +++ b/app/containers/message/index.js @@ -5,7 +5,11 @@ import { connect } from 'react-redux'; import equal from 'deep-equal'; import Message from './Message'; -import { errorActionsShow, toggleReactionPicker, replyBroadcast } from '../../actions/messages'; +import { + errorActionsShow as errorActionsShowAction, + toggleReactionPicker as toggleReactionPickerAction, + replyBroadcast as replyBroadcastAction +} from '../../actions/messages'; @connect(state => ({ baseUrl: state.settings.Site_Url || state.server ? state.server.server : '', @@ -16,9 +20,9 @@ import { errorActionsShow, toggleReactionPicker, replyBroadcast } from '../../ac message: state.messages.message, useRealName: state.settings.UI_Use_Real_Name }), dispatch => ({ - errorActionsShow: actionMessage => dispatch(errorActionsShow(actionMessage)), - replyBroadcast: message => dispatch(replyBroadcast(message)), - toggleReactionPicker: message => dispatch(toggleReactionPicker(message)) + errorActionsShow: actionMessage => dispatch(errorActionsShowAction(actionMessage)), + replyBroadcast: message => dispatch(replyBroadcastAction(message)), + toggleReactionPicker: message => dispatch(toggleReactionPickerAction(message)) })) export default class MessageContainer extends React.Component { static propTypes = { @@ -67,39 +71,47 @@ export default class MessageContainer extends React.Component { } shouldComponentUpdate(nextProps, nextState) { - if (this.state.reactionsModal !== nextState.reactionsModal) { + const { reactionsModal } = this.state; + const { + status, reactions, broadcast, editing, _updatedAt + } = this.props; + + if (reactionsModal !== nextState.reactionsModal) { return true; } - if (this.props.status !== nextProps.status) { + if (status !== nextProps.status) { return true; } // eslint-disable-next-line - if (!!this.props._updatedAt ^ !!nextProps._updatedAt) { + if (!!_updatedAt ^ !!nextProps._updatedAt) { return true; } - if (!equal(this.props.reactions, nextProps.reactions)) { + if (!equal(reactions, nextProps.reactions)) { return true; } - if (this.props.broadcast !== nextProps.broadcast) { + if (broadcast !== nextProps.broadcast) { return true; } - if (this.props.editing !== nextProps.editing) { + if (editing !== nextProps.editing) { return true; } - return this.props._updatedAt.toGMTString() !== nextProps._updatedAt.toGMTString(); + return _updatedAt.toGMTString() !== nextProps._updatedAt.toGMTString(); } onLongPress = () => { - this.props.onLongPress(this.parseMessage()); + const { onLongPress } = this.props; + onLongPress(this.parseMessage()); } onErrorPress = () => { - this.props.errorActionsShow(this.parseMessage()); + const { errorActionsShow } = this.props; + errorActionsShow(this.parseMessage()); } onReactionPress = (emoji) => { - this.props.onReactionPress(emoji, this.props.item._id); + const { onReactionPress, item } = this.props; + onReactionPress(emoji, item._id); } @@ -118,30 +130,38 @@ export default class MessageContainer extends React.Component { } isHeader = () => { - const { item, previousItem } = this.props; + const { + item, previousItem, broadcast, Message_GroupingPeriod + } = this.props; if (previousItem && ( - (previousItem.ts.toDateString() === item.ts.toDateString()) && - (previousItem.u.username === item.u.username) && - !(previousItem.groupable === false || item.groupable === false || this.props.broadcast === true) && - (previousItem.status === item.status) && - (item.ts - previousItem.ts < this.props.Message_GroupingPeriod * 1000) + (previousItem.ts.toDateString() === item.ts.toDateString()) + && (previousItem.u.username === item.u.username) + && !(previousItem.groupable === false || item.groupable === false || broadcast === true) + && (previousItem.status === item.status) + && (item.ts - previousItem.ts < Message_GroupingPeriod * 1000) )) { return false; } return true; } - parseMessage = () => JSON.parse(JSON.stringify(this.props.item)); + parseMessage = () => { + const { item } = this.props; + return JSON.parse(JSON.stringify(item)); + } toggleReactionPicker = () => { - this.props.toggleReactionPicker(this.parseMessage()); + const { toggleReactionPicker } = this.props; + toggleReactionPicker(this.parseMessage()); } replyBroadcast = () => { - this.props.replyBroadcast(this.parseMessage()); + const { replyBroadcast } = this.props; + replyBroadcast(this.parseMessage()); } render() { + const { reactionsModal } = this.state; const { item, message, editing, user, style, archived, baseUrl, customEmojis, useRealName, broadcast } = this.props; @@ -171,7 +191,7 @@ export default class MessageContainer extends React.Component { broadcast={broadcast} baseUrl={baseUrl} customEmojis={customEmojis} - reactionsModal={this.state.reactionsModal} + reactionsModal={reactionsModal} useRealName={useRealName} role={role} closeReactions={this.closeReactions} diff --git a/app/containers/status.js b/app/containers/status.js index 26bafabb0..e3d87881e 100644 --- a/app/containers/status.js +++ b/app/containers/status.js @@ -42,6 +42,7 @@ export default class Status extends React.PureComponent { } render() { - return (); + const { style } = this.props; + return (); } } diff --git a/app/lib/ddp.js b/app/lib/ddp.js index c4c8ce108..eed422eb4 100644 --- a/app/lib/ddp.js +++ b/app/lib/ddp.js @@ -24,6 +24,7 @@ class EventEmitter { constructor() { this.events = {}; } + on(event, listener) { if (typeof this.events[event] !== 'object') { this.events[event] = []; @@ -31,6 +32,7 @@ class EventEmitter { this.events[event].push(listener); return listener; } + removeListener(event, listener) { if (typeof this.events[event] === 'object') { const idx = this.events[event].indexOf(listener); @@ -42,6 +44,7 @@ class EventEmitter { } } } + emit(event, ...args) { if (typeof this.events[event] === 'object') { this.events[event].forEach((listener) => { @@ -53,6 +56,7 @@ class EventEmitter { }); } } + once(event, listener) { return this.on(event, function g(...args) { this.removeListener(event, g); @@ -135,6 +139,7 @@ export default class Socket extends EventEmitter { this._connect().catch(e => log('ddp.constructor._connect', e)); } + check() { if (!this.lastping) { return false; @@ -144,6 +149,7 @@ export default class Socket extends EventEmitter { } return true; } + async login(params) { try { this.emit('login', params); @@ -165,6 +171,7 @@ export default class Socket extends EventEmitter { return Promise.reject(error); } } + async send(obj, ignore) { console.log('send', obj); return new Promise((resolve, reject) => { @@ -187,9 +194,11 @@ export default class Socket extends EventEmitter { }); }); } + get status() { return this.connection && this.connection.readyState === 1 && this.check() && !!this._logged; } + _close() { try { // this.connection && this.connection.readyState > 1 && this.connection.close && this.connection.close(300, 'disconnect'); @@ -201,6 +210,7 @@ export default class Socket extends EventEmitter { // console.log(e); } } + _connect() { return new Promise((resolve) => { this.lastping = new Date(); @@ -240,12 +250,14 @@ export default class Socket extends EventEmitter { }; }); } + logout() { this._login = null; return this.call('logout') .catch(e => log('logout', e)) .finally(() => this.subscriptions = {}); } + disconnect() { this._logged = false; this._login = null; @@ -256,6 +268,7 @@ export default class Socket extends EventEmitter { clearTimeout(this.timeout); } } + async reconnect() { if (this._timer || this.forceDisconnect) { return; @@ -272,6 +285,7 @@ export default class Socket extends EventEmitter { } }, 1000); } + call(method, ...params) { return this.send({ msg: 'method', method, params @@ -283,6 +297,7 @@ export default class Socket extends EventEmitter { return Promise.reject(err); }); } + unsubscribe(id) { if (!this.subscriptions[id]) { return Promise.reject(id); @@ -296,6 +311,7 @@ export default class Socket extends EventEmitter { return Promise.reject(err); }); } + subscribe(name, ...params) { console.log(name, params); return this.send({ diff --git a/app/lib/methods/getPermissions.js b/app/lib/methods/getPermissions.js index 6772c775a..231054812 100644 --- a/app/lib/methods/getPermissions.js +++ b/app/lib/methods/getPermissions.js @@ -21,9 +21,11 @@ export default async function() { return permission; }); - InteractionManager.runAfterInteractions(() => - database.write(() => - permissions.forEach(permission => database.create('permissions', permission, true)))); + InteractionManager.runAfterInteractions( + () => database.write( + () => permissions.forEach(permission => database.create('permissions', permission, true)) + ) + ); } catch (e) { log('getPermissions', e); } diff --git a/app/lib/methods/getSettings.js b/app/lib/methods/getSettings.js index dde4a06b6..7bedac0d7 100644 --- a/app/lib/methods/getSettings.js +++ b/app/lib/methods/getSettings.js @@ -27,15 +27,17 @@ export default async function() { const filteredSettings = this._prepareSettings(this._filterSettings(data)); - InteractionManager.runAfterInteractions(() => - database.write(() => - filteredSettings.forEach((setting) => { + InteractionManager.runAfterInteractions( + () => database.write( + () => filteredSettings.forEach((setting) => { database.create('settings', { ...setting, _updatedAt: new Date() }, true); if (setting._id === 'Site_Name') { updateServer.call(this, { name: setting.valueAsString }); } - }))); + }) + ) + ); reduxStore.dispatch(actions.addSettings(this.parseSettings(filteredSettings))); const iconSetting = data.find(item => item._id === 'Assets_favicon_512'); diff --git a/app/lib/methods/readMessages.js b/app/lib/methods/readMessages.js index 81f60dce3..6879b2a9a 100644 --- a/app/lib/methods/readMessages.js +++ b/app/lib/methods/readMessages.js @@ -20,7 +20,7 @@ export default async function readMessages(rid) { const { database: db } = database; try { // eslint-disable-next-line - const data = await (this.ddp.status ? readMessagesDDP.call(this, rid) : readMessagesREST.call(this, rid)); + const data = await (this.ddp.status && false ? readMessagesDDP.call(this, rid) : readMessagesREST.call(this, rid)); const [subscription] = db.objects('subscriptions').filtered('rid = $0', rid); db.write(() => { subscription.open = true; diff --git a/app/lib/methods/sendMessage.js b/app/lib/methods/sendMessage.js index aff238fe0..56f66e61a 100644 --- a/app/lib/methods/sendMessage.js +++ b/app/lib/methods/sendMessage.js @@ -1,7 +1,7 @@ import Random from 'react-native-meteor/lib/Random'; import messagesStatus from '../../constants/messagesStatus'; -import buildMessage from '../methods/helpers/buildMessage'; +import buildMessage from './helpers/buildMessage'; import { post } from './helpers/rest'; import database from '../realm'; import reduxStore from '../createStore'; @@ -46,7 +46,7 @@ function sendMessageByDDP(message) { export async function _sendMessageCall(message) { try { // eslint-disable-next-line - const data = await (this.ddp.status ? sendMessageByDDP.call(this, message) : sendMessageByRest.call(this, message)); + const data = await (this.ddp.status && false ? sendMessageByDDP.call(this, message) : sendMessageByRest.call(this, message)); return data; } catch (e) { database.write(() => { diff --git a/app/lib/methods/subscriptions/room.js b/app/lib/methods/subscriptions/room.js index ca3e56c91..6d74bea23 100644 --- a/app/lib/methods/subscriptions/room.js +++ b/app/lib/methods/subscriptions/room.js @@ -9,10 +9,9 @@ const subscribe = (ddp, rid) => Promise.all([ ddp.subscribe('stream-room-messages', rid, false), ddp.subscribe('stream-notify-room', `${ rid }/typing`, false) ]); -const unsubscribe = subscriptions => - subscriptions.forEach(sub => sub.unsubscribe().catch((e) => { - log('unsubscribeRoom', e); - })); +const unsubscribe = subscriptions => subscriptions.forEach(sub => sub.unsubscribe().catch((e) => { + log('unsubscribeRoom', e); +})); let timer = null; let promises; diff --git a/app/lib/realm.js b/app/lib/realm.js index c97e58a99..8d02cce11 100644 --- a/app/lib/realm.js +++ b/app/lib/realm.js @@ -309,22 +309,28 @@ class DB { ], deleteRealmIfMigrationNeeded: true }) - }; + } + deleteAll(...args) { return this.database.write(() => this.database.deleteAll(...args)); } + delete(...args) { return this.database.delete(...args); } + write(...args) { return this.database.write(...args); } + create(...args) { return this.database.create(...args); } + objects(...args) { return this.database.objects(...args); } + get database() { return this.databases.activeDB; } diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index b8cadb1b6..6380148f3 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -10,7 +10,9 @@ import database from './realm'; import log from '../utils/log'; // import * as actions from '../actions'; -import { setUser, setLoginServices, removeLoginServices, loginRequest, loginSuccess, loginFailure, logout } from '../actions/login'; +import { + setUser, setLoginServices, removeLoginServices, loginRequest, loginSuccess, loginFailure, logout +} from '../actions/login'; import { disconnect, connectSuccess, connectFailure } from '../actions/connect'; import { setActiveUser } from '../actions/activeUsers'; import { starredMessagesReceived, starredMessageUnstarred } from '../actions/starredMessages'; @@ -598,8 +600,8 @@ const RocketChat = { getPermissions, getCustomEmoji, parseSettings: settings => settings.reduce((ret, item) => { - ret[item._id] = item[defaultSettings[item._id].type] || item.valueAsString || item.valueAsNumber || - item.valueAsBoolean || item.value; + ret[item._id] = item[defaultSettings[item._id].type] || item.valueAsString || item.valueAsNumber + || item.valueAsBoolean || item.value; return ret; }, {}), _prepareSettings(settings) { diff --git a/app/presentation/KeyboardView.js b/app/presentation/KeyboardView.js index 82a5e1100..3a930b241 100644 --- a/app/presentation/KeyboardView.js +++ b/app/presentation/KeyboardView.js @@ -17,17 +17,21 @@ export default class KeyboardView extends React.PureComponent { } render() { + const { + style, contentContainerStyle, scrollEnabled, keyboardVerticalOffset, children + } = this.props; + return ( - {this.props.children} + {children} ); } diff --git a/app/presentation/RoomItem.js b/app/presentation/RoomItem.js index 31ebc439e..69715cc6a 100644 --- a/app/presentation/RoomItem.js +++ b/app/presentation/RoomItem.js @@ -1,7 +1,9 @@ import React from 'react'; import moment from 'moment'; import PropTypes from 'prop-types'; -import { View, Text, StyleSheet, Image, Platform } from 'react-native'; +import { + View, Text, StyleSheet, Image, Platform +} from 'react-native'; import { connect } from 'react-redux'; import { emojify } from 'react-emojione'; @@ -151,18 +153,22 @@ export default class RoomItem extends React.Component { showLastMessage: true, avatarSize: 48 } + shouldComponentUpdate(nextProps) { - const oldlastMessage = this.props.lastMessage; + const { lastMessage, _updatedAt } = this.props; + const oldlastMessage = lastMessage; const newLastmessage = nextProps.lastMessage; if (oldlastMessage && newLastmessage && oldlastMessage.ts.toGMTString() !== newLastmessage.ts.toGMTString()) { return true; } - if (this.props._updatedAt && nextProps._updatedAt && nextProps._updatedAt.toGMTString() !== this.props._updatedAt.toGMTString()) { + if (_updatedAt && nextProps._updatedAt && nextProps._updatedAt.toGMTString() !== _updatedAt.toGMTString()) { return true; } + // eslint-disable-next-line react/destructuring-assignment return attrs.some(key => nextProps[key] !== this.props[key]); } + get avatar() { const { type, name, avatarSize, baseUrl @@ -172,10 +178,10 @@ export default class RoomItem extends React.Component { get lastMessage() { const { - lastMessage, type, showLastMessage + lastMessage, type, showLastMessage, StoreLastMessage, username } = this.props; - if (!this.props.StoreLastMessage || !showLastMessage) { + if (!StoreLastMessage || !showLastMessage) { return ''; } if (!lastMessage) { @@ -184,7 +190,7 @@ export default class RoomItem extends React.Component { let prefix = ''; - if (lastMessage.u.username === this.props.username) { + if (lastMessage.u.username === username) { prefix = I18n.t('You_colon'); } else if (type !== 'd') { prefix = `${ lastMessage.u.username }: `; @@ -223,7 +229,7 @@ export default class RoomItem extends React.Component { render() { const { - favorite, unread, userMentions, name, _updatedAt, alert, testID, height + favorite, unread, userMentions, name, _updatedAt, alert, testID, height, onPress, onLongPress } = this.props; const date = this.formatDate(_updatedAt); @@ -245,8 +251,8 @@ export default class RoomItem extends React.Component { return ( ({ - create: data => dispatch(createChannelRequest(data)), - removeUser: user => dispatch(removeUser(user)) + create: data => dispatch(createChannelRequestAction(data)), + removeUser: user => dispatch(removeUserAction(user)) })) /** @extends React.Component */ export default class CreateChannelView extends LoggedView { @@ -105,15 +107,19 @@ export default class CreateChannelView extends LoggedView { } componentDidUpdate(prevProps) { - if (this.props.createChannel.error && prevProps.createChannel.error !== this.props.createChannel.error) { + const { createChannel } = this.props; + + if (createChannel.error && prevProps.createChannel.error !== createChannel.error) { setTimeout(() => { - const msg = this.props.createChannel.error.reason || I18n.t('There_was_an_error_while_action', { action: I18n.t('creating_channel') }); + const msg = createChannel.error.reason || I18n.t('There_was_an_error_while_action', { action: I18n.t('creating_channel') }); showErrorAlert(msg); }, 300); } } onChangeText = (channelName) => { + const { navigator } = this.props; + const rightButtons = []; if (channelName.trim().length > 0) { rightButtons.push({ @@ -122,7 +128,7 @@ export default class CreateChannelView extends LoggedView { testID: 'create-channel-submit' }); } - this.props.navigator.setButtons({ rightButtons }); + navigator.setButtons({ rightButtons }); this.setState({ channelName }); } @@ -135,28 +141,30 @@ export default class CreateChannelView extends LoggedView { } submit = () => { - if (!this.state.channelName.trim() || this.props.createChannel.isFetching) { - return; - } const { channelName, type, readOnly, broadcast } = this.state; - let { users } = this.props; + const { users: usersProps, createChannel, create } = this.props; + + if (!channelName.trim() || createChannel.isFetching) { + return; + } // transform users object into array of usernames - users = users.map(user => user.name); + const users = usersProps.map(user => user.name); // create channel - this.props.create({ + create({ name: channelName, users, type, readOnly, broadcast }); } removeUser = (user) => { - if (this.props.users.length === 1) { + const { users, removeUser } = this.props; + if (users.length === 1) { return; } - this.props.removeUser(user); + removeUser(user); } renderSwitch = ({ @@ -215,31 +223,42 @@ export default class CreateChannelView extends LoggedView { renderFormSeparator = () => - renderItem = ({ item }) => ( - this.removeUser(item)} - testID={`create-channel-view-item-${ item.name }`} - baseUrl={this.props.baseUrl} - /> - ) + renderItem = ({ item }) => { + const { baseUrl } = this.props; - renderInvitedList = () => ( - item._id} - style={[styles.list, sharedStyles.separatorVertical]} - renderItem={this.renderItem} - ItemSeparatorComponent={this.renderSeparator} - enableEmptySections - keyboardShouldPersistTaps='always' - /> - ) + return ( + this.removeUser(item)} + testID={`create-channel-view-item-${ item.name }`} + baseUrl={baseUrl} + /> + ); + } + + renderInvitedList = () => { + const { users } = this.props; + + return ( + item._id} + style={[styles.list, sharedStyles.separatorVertical]} + renderItem={this.renderItem} + ItemSeparatorComponent={this.renderSeparator} + enableEmptySections + keyboardShouldPersistTaps='always' + /> + ); + } render() { - const userCount = this.props.users.length; + const { channelName } = this.state; + const { users, createChannel } = this.props; + const userCount = users.length; + return ( this.channelNameRef = ref} style={styles.input} label={I18n.t('Channel_Name')} - value={this.state.channelName} + value={channelName} onChangeText={this.onChangeText} placeholder={I18n.t('Channel_Name')} returnKeyType='done' @@ -273,7 +292,7 @@ export default class CreateChannelView extends LoggedView { {userCount === 1 ? I18n.t('1_user') : I18n.t('N_users', { n: userCount })} {this.renderInvitedList()} - + diff --git a/app/views/ForgotPasswordView.js b/app/views/ForgotPasswordView.js index 405ac3947..3ea5cbcad 100644 --- a/app/views/ForgotPasswordView.js +++ b/app/views/ForgotPasswordView.js @@ -1,10 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Text, View, SafeAreaView, ScrollView } from 'react-native'; +import { + Text, View, SafeAreaView, ScrollView +} from 'react-native'; import { connect } from 'react-redux'; import LoggedView from './View'; -import { forgotPasswordInit, forgotPasswordRequest } from '../actions/login'; +import { forgotPasswordInit as forgotPasswordInitAction, forgotPasswordRequest as forgotPasswordRequestAction } from '../actions/login'; import KeyboardView from '../presentation/KeyboardView'; import TextInput from '../containers/TextInput'; import Button from '../containers/Button'; @@ -17,8 +19,8 @@ import I18n from '../i18n'; @connect(state => ({ login: state.login }), dispatch => ({ - forgotPasswordInit: () => dispatch(forgotPasswordInit()), - forgotPasswordRequest: email => dispatch(forgotPasswordRequest(email)) + forgotPasswordInit: () => dispatch(forgotPasswordInitAction()), + forgotPasswordRequest: email => dispatch(forgotPasswordRequestAction(email)) })) /** @extends React.Component */ export default class ForgotPasswordView extends LoggedView { @@ -39,13 +41,14 @@ export default class ForgotPasswordView extends LoggedView { } componentDidMount() { - this.props.forgotPasswordInit(); + const { forgotPasswordInit } = this.props; + forgotPasswordInit(); } componentDidUpdate() { - const { login } = this.props; + const { login, navigator } = this.props; if (login.success) { - this.props.navigator.pop(); + navigator.pop(); setTimeout(() => { showErrorAlert(I18n.t('Forgot_password_If_this_email_is_registered'), I18n.t('Alert')); }); @@ -64,13 +67,17 @@ export default class ForgotPasswordView extends LoggedView { resetPassword = () => { const { email, invalidEmail } = this.state; + const { forgotPasswordRequest } = this.props; if (invalidEmail || !email) { return; } - this.props.forgotPasswordRequest(email); + forgotPasswordRequest(email); } render() { + const { invalidEmail } = this.state; + const { login } = this.props; + return ( - {this.props.login.failure ? {this.props.login.error.reason} : null} - + {login.failure ? {login.error.reason} : null} + diff --git a/app/views/LoginSignupView.js b/app/views/LoginSignupView.js index 592d09aef..f1a141d4d 100644 --- a/app/views/LoginSignupView.js +++ b/app/views/LoginSignupView.js @@ -1,12 +1,14 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Text, View, ScrollView, TouchableOpacity, LayoutAnimation, Image, StyleSheet, SafeAreaView } from 'react-native'; +import { + Text, View, ScrollView, TouchableOpacity, LayoutAnimation, Image, StyleSheet, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import Icon from 'react-native-vector-icons/FontAwesome'; import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'; import { Base64 } from 'js-base64'; -import { open, close } from '../actions/login'; +import { open as openAction, close as closeAction } from '../actions/login'; import LoggedView from './View'; import sharedStyles from './Styles'; import scrollPersistTaps from '../utils/scrollPersistTaps'; @@ -57,8 +59,8 @@ const styles = StyleSheet.create({ Accounts_OAuth_Twitter: state.settings.Accounts_OAuth_Twitter, services: state.login.services }), dispatch => ({ - open: () => dispatch(open()), - close: () => dispatch(close()) + open: () => dispatch(openAction()), + close: () => dispatch(closeAction()) })) /** @extends React.Component */ export default class LoginSignupView extends LoggedView { @@ -85,23 +87,27 @@ export default class LoginSignupView extends LoggedView { } componentDidMount() { - this.props.open(); + const { open } = this.props; + open(); } componentWillReceiveProps(nextProps) { - if (this.props.services !== nextProps.services) { + const { services } = this.props; + if (services !== nextProps.services) { LayoutAnimation.easeInEaseOut(); } } componentWillUnmount() { - this.props.close(); + const { close } = this.props; + close(); } onPressFacebook = () => { - const { appId } = this.props.services.facebook; + const { services, server } = this.props; + const { appId } = services.facebook; const endpoint = 'https://m.facebook.com/v2.9/dialog/oauth'; - const redirect_uri = `${ this.props.server }/_oauth/facebook?close`; + const redirect_uri = `${ server }/_oauth/facebook?close`; const scope = 'email'; const state = this.getOAuthState(); const params = `?client_id=${ appId }&redirect_uri=${ redirect_uri }&scope=${ scope }&state=${ state }&display=touch`; @@ -109,9 +115,10 @@ export default class LoginSignupView extends LoggedView { } onPressGithub = () => { - const { clientId } = this.props.services.github; + const { services, server } = this.props; + const { clientId } = services.github; const endpoint = `https://github.com/login?client_id=${ clientId }&return_to=${ encodeURIComponent('/login/oauth/authorize') }`; - const redirect_uri = `${ this.props.server }/_oauth/github?close`; + const redirect_uri = `${ server }/_oauth/github?close`; const scope = 'user:email'; const state = this.getOAuthState(); const params = `?client_id=${ clientId }&redirect_uri=${ redirect_uri }&scope=${ scope }&state=${ state }`; @@ -119,9 +126,10 @@ export default class LoginSignupView extends LoggedView { } onPressGitlab = () => { - const { clientId } = this.props.services.gitlab; + const { services, server } = this.props; + const { clientId } = services.gitlab; const endpoint = 'https://gitlab.com/oauth/authorize'; - const redirect_uri = `${ this.props.server }/_oauth/gitlab?close`; + const redirect_uri = `${ server }/_oauth/gitlab?close`; const scope = 'read_user'; const state = this.getOAuthState(); const params = `?client_id=${ clientId }&redirect_uri=${ redirect_uri }&scope=${ scope }&state=${ state }&response_type=code`; @@ -129,9 +137,10 @@ export default class LoginSignupView extends LoggedView { } onPressGoogle = () => { - const { clientId } = this.props.services.google; + const { services, server } = this.props; + const { clientId } = services.google; const endpoint = 'https://accounts.google.com/o/oauth2/auth'; - const redirect_uri = `${ this.props.server }/_oauth/google?close`; + const redirect_uri = `${ server }/_oauth/google?close`; const scope = 'email'; const state = this.getOAuthState(); const params = `?client_id=${ clientId }&redirect_uri=${ redirect_uri }&scope=${ scope }&state=${ state }&response_type=code`; @@ -139,9 +148,10 @@ export default class LoginSignupView extends LoggedView { } onPressLinkedin = () => { - const { clientId } = this.props.services.linkedin; + const { services, server } = this.props; + const { clientId } = services.linkedin; const endpoint = 'https://www.linkedin.com/uas/oauth2/authorization'; - const redirect_uri = `${ this.props.server }/_oauth/linkedin?close`; + const redirect_uri = `${ server }/_oauth/linkedin?close`; const scope = 'r_emailaddress'; const state = this.getOAuthState(); const params = `?client_id=${ clientId }&redirect_uri=${ redirect_uri }&scope=${ scope }&state=${ state }&response_type=code`; @@ -149,17 +159,19 @@ export default class LoginSignupView extends LoggedView { } onPressMeteor = () => { - const { clientId } = this.props.services['meteor-developer']; + const { services, server } = this.props; + const { clientId } = services['meteor-developer']; const endpoint = 'https://www.meteor.com/oauth2/authorize'; - const redirect_uri = `${ this.props.server }/_oauth/meteor-developer`; + const redirect_uri = `${ server }/_oauth/meteor-developer`; const state = this.getOAuthState(); const params = `?client_id=${ clientId }&redirect_uri=${ redirect_uri }&state=${ state }&response_type=code`; this.openOAuth(`${ endpoint }${ params }`); } onPressTwitter = () => { + const { server } = this.props; const state = this.getOAuthState(); - const url = `${ this.props.server }/_oauth/twitter/?requestTokenAndRedirect=true&state=${ state }`; + const url = `${ server }/_oauth/twitter/?requestTokenAndRedirect=true&state=${ state }`; this.openOAuth(url); } @@ -169,7 +181,8 @@ export default class LoginSignupView extends LoggedView { } openOAuth = (oAuthUrl) => { - this.props.navigator.showModal({ + const { navigator } = this.props; + navigator.showModal({ screen: 'OAuthView', title: 'OAuth', passProps: { @@ -179,93 +192,113 @@ export default class LoginSignupView extends LoggedView { } login = () => { - this.props.navigator.push({ + const { navigator, server } = this.props; + navigator.push({ screen: 'LoginView', - title: this.props.server, + title: server, backButtonTitle: '' }); } register = () => { - this.props.navigator.push({ + const { navigator, server } = this.props; + navigator.push({ screen: 'RegisterView', - title: this.props.server, + title: server, backButtonTitle: '' }); } renderServices = () => { - const { services } = this.props; + const { + services, Accounts_OAuth_Facebook, Accounts_OAuth_Github, Accounts_OAuth_Gitlab, Accounts_OAuth_Google, Accounts_OAuth_Linkedin, Accounts_OAuth_Meteor, Accounts_OAuth_Twitter + } = this.props; + if (!Object.keys(services).length) { return null; } + return ( {I18n.t('Or_continue_using_social_accounts')} - {this.props.Accounts_OAuth_Facebook && this.props.services.facebook ? - - - + {Accounts_OAuth_Facebook && services.facebook + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Github && this.props.services.github ? - - - + {Accounts_OAuth_Github && services.github + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Gitlab && this.props.services.gitlab ? - - - + {Accounts_OAuth_Gitlab && services.gitlab + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Google && this.props.services.google ? - - - + {Accounts_OAuth_Google && services.google + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Linkedin && this.props.services.linkedin ? - - - + {Accounts_OAuth_Linkedin && services.linkedin + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Meteor && this.props.services['meteor-developer'] ? - - - + {Accounts_OAuth_Meteor && services['meteor-developer'] + ? ( + + + + ) : null } - {this.props.Accounts_OAuth_Twitter && this.props.services.twitter ? - - - + {Accounts_OAuth_Twitter && services.twitter + ? ( + + + + ) : null } @@ -274,6 +307,8 @@ export default class LoginSignupView extends LoggedView { } render() { + const { isFetching } = this.props; + return ( {this.renderServices()} - + ); diff --git a/app/views/LoginView.js b/app/views/LoginView.js index d7164829a..2b6d3e564 100644 --- a/app/views/LoginView.js +++ b/app/views/LoginView.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Keyboard, Text, ScrollView, View, SafeAreaView } from 'react-native'; +import { + Keyboard, Text, ScrollView, View, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import { Answers } from 'react-native-fabric'; @@ -50,6 +52,8 @@ export default class LoginView extends LoggedView { submit = async() => { const { username, password, code } = this.state; + const { loginSubmit } = this.props; + if (username.trim() === '' || password.trim() === '') { showToast(I18n.t('Email_or_password_field_is_empty')); return; @@ -57,7 +61,7 @@ export default class LoginView extends LoggedView { Keyboard.dismiss(); try { - await this.props.loginSubmit({ username, password, code }); + await loginSubmit({ username, password, code }); Answers.logLogin('Email', true); } catch (error) { console.warn('LoginView submit', error); @@ -65,15 +69,17 @@ export default class LoginView extends LoggedView { } register = () => { - this.props.navigator.push({ + const { navigator, server } = this.props; + navigator.push({ screen: 'RegisterView', - title: this.props.server, + title: server, backButtonTitle: '' }); } forgotPassword = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'ForgotPasswordView', title: I18n.t('Forgot_Password'), backButtonTitle: '' @@ -81,7 +87,8 @@ export default class LoginView extends LoggedView { } renderTOTP = () => { - if (/totp/ig.test(this.props.error)) { + const { error } = this.props; + if (/totp/ig.test(error)) { return ( this.codeInput = ref} @@ -99,6 +106,10 @@ export default class LoginView extends LoggedView { } render() { + const { + Accounts_EmailOrUsernamePlaceholder, Accounts_PasswordPlaceholder, failure, reason, isFetching + } = this.props; + return ( Login { this.password = e; }} label={I18n.t('Password')} - placeholder={this.props.Accounts_PasswordPlaceholder || I18n.t('Password')} + placeholder={Accounts_PasswordPlaceholder || I18n.t('Password')} returnKeyType='done' iconLeft='key-variant' secureTextEntry @@ -156,8 +167,8 @@ export default class LoginView extends LoggedView { - {this.props.failure ? {this.props.reason} : null} - + {failure ? {reason} : null} + diff --git a/app/views/MentionedMessagesView/index.js b/app/views/MentionedMessagesView/index.js index ca1cfe849..68630fce6 100644 --- a/app/views/MentionedMessagesView/index.js +++ b/app/views/MentionedMessagesView/index.js @@ -1,10 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FlatList, View, Text, SafeAreaView } from 'react-native'; +import { + FlatList, View, Text, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; +import { openMentionedMessages as openMentionedMessagesAction, closeMentionedMessages as closeMentionedMessagesAction } from '../../actions/mentionedMessages'; import LoggedView from '../View'; -import { openMentionedMessages, closeMentionedMessages } from '../../actions/mentionedMessages'; import styles from './styles'; import Message from '../../containers/message'; import RCActivityIndicator from '../../containers/ActivityIndicator'; @@ -19,8 +21,8 @@ import I18n from '../../i18n'; token: state.login.user && state.login.user.token } }), dispatch => ({ - openMentionedMessages: (rid, limit) => dispatch(openMentionedMessages(rid, limit)), - closeMentionedMessages: () => dispatch(closeMentionedMessages()) + openMentionedMessages: (rid, limit) => dispatch(openMentionedMessagesAction(rid, limit)), + closeMentionedMessages: () => dispatch(closeMentionedMessagesAction()) })) /** @extends React.Component */ export default class MentionedMessagesView extends LoggedView { @@ -47,17 +49,20 @@ export default class MentionedMessagesView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.ready && nextProps.ready !== this.props.ready) { + const { ready } = this.props; + if (nextProps.ready && nextProps.ready !== ready) { this.setState({ loading: false, loadingMore: false }); } } componentWillUnmount() { - this.props.closeMentionedMessages(); + const { closeMentionedMessages } = this.props; + closeMentionedMessages(); } load = () => { - this.props.openMentionedMessages(this.props.rid, this.limit); + const { openMentionedMessages, rid } = this.props; + openMentionedMessages(rid, this.limit); } moreData = () => { @@ -79,15 +84,18 @@ export default class MentionedMessagesView extends LoggedView { ) - renderItem = ({ item }) => ( - - ) + renderItem = ({ item }) => { + const { user } = this.props; + return ( + + ); + } render() { const { loading, loadingMore } = this.state; diff --git a/app/views/NewMessageView.js b/app/views/NewMessageView.js index b8b60c76d..898926aac 100644 --- a/app/views/NewMessageView.js +++ b/app/views/NewMessageView.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, StyleSheet, SafeAreaView, FlatList, Text, Platform, Image } from 'react-native'; +import { + View, StyleSheet, SafeAreaView, FlatList, Text, Platform, Image +} from 'react-native'; import { connect } from 'react-redux'; import database from '../lib/realm'; @@ -75,9 +77,10 @@ export default class NewMessageView extends LoggedView { } async onNavigatorEvent(event) { + const { navigator } = this.props; if (event.type === 'NavBarButtonPress') { if (event.id === 'cancel') { - this.props.navigator.dismissModal(); + navigator.dismissModal(); } } } @@ -87,12 +90,14 @@ export default class NewMessageView extends LoggedView { } onPressItem = (item) => { - this.props.navigator.dismissModal(); + const { navigator, onPressItem } = this.props; + navigator.dismissModal(); setTimeout(() => { - this.props.onPressItem(item); + onPressItem(item); }, 600); } + // eslint-disable-next-line react/sort-comp updateState = debounce(() => { this.forceUpdate(); }, 1000); @@ -105,7 +110,8 @@ export default class NewMessageView extends LoggedView { } createChannel = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'SelectedUsersView', title: I18n.t('Select_Users'), backButtonTitle: '', @@ -130,14 +136,17 @@ export default class NewMessageView extends LoggedView { renderSeparator = () => ; renderItem = ({ item, index }) => { + const { search } = this.state; + const { baseUrl } = this.props; + let style = {}; if (index === 0) { style = { ...sharedStyles.separatorTop }; } - if (this.state.search.length > 0 && index === this.state.search.length - 1) { + if (search.length > 0 && index === search.length - 1) { style = { ...style, ...sharedStyles.separatorBottom }; } - if (this.state.search.length === 0 && index === this.data.length - 1) { + if (search.length === 0 && index === this.data.length - 1) { style = { ...style, ...sharedStyles.separatorBottom }; } return ( @@ -145,24 +154,27 @@ export default class NewMessageView extends LoggedView { name={item.search ? item.name : item.fname} username={item.search ? item.username : item.name} onPress={() => this.onPressItem(item)} - baseUrl={this.props.baseUrl} + baseUrl={baseUrl} testID={`new-message-view-item-${ item.name }`} style={style} /> ); } - renderList = () => ( - 0 ? this.state.search : this.data} - extraData={this.state} - keyExtractor={item => item._id} - ListHeaderComponent={this.renderHeader} - renderItem={this.renderItem} - ItemSeparatorComponent={this.renderSeparator} - keyboardShouldPersistTaps='always' - /> - ) + renderList = () => { + const { search } = this.state; + return ( + 0 ? search : this.data} + extraData={this.state} + keyExtractor={item => item._id} + ListHeaderComponent={this.renderHeader} + renderItem={this.renderItem} + ItemSeparatorComponent={this.renderSeparator} + keyboardShouldPersistTaps='always' + /> + ); + } render = () => ( diff --git a/app/views/NewServerView.js b/app/views/NewServerView.js index e99fc0258..5364e0b27 100644 --- a/app/views/NewServerView.js +++ b/app/views/NewServerView.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Text, ScrollView, Keyboard, SafeAreaView, Image, Alert, StyleSheet, TouchableOpacity } from 'react-native'; +import { + Text, ScrollView, Keyboard, SafeAreaView, Image, Alert, StyleSheet, TouchableOpacity +} from 'react-native'; import { connect } from 'react-redux'; import Icon from 'react-native-vector-icons/Ionicons'; @@ -74,9 +76,9 @@ export default class NewServerView extends LoggedView { } componentDidMount() { - const { server } = this.props; + const { server, connectServer } = this.props; if (server) { - this.props.connectServer(server); + connectServer(server); this.setState({ text: server }); } else { setTimeout(() => { @@ -86,7 +88,8 @@ export default class NewServerView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.failure && nextProps.failure !== this.props.failure) { + const { failure } = this.props; + if (nextProps.failure && nextProps.failure !== failure) { Alert.alert(I18n.t('Oops'), I18n.t('The_URL_is_invalid')); } } @@ -96,17 +99,20 @@ export default class NewServerView extends LoggedView { } submit = () => { - if (this.state.text) { + const { text } = this.state; + const { connectServer } = this.props; + + if (text) { Keyboard.dismiss(); - this.props.connectServer(this.completeUrl(this.state.text)); + connectServer(this.completeUrl(text)); } } completeUrl = (url) => { url = url && url.trim(); - if (/^(\w|[0-9-_]){3,}$/.test(url) && - /^(htt(ps?)?)|(loca((l)?|(lh)?|(lho)?|(lhos)?|(lhost:?\d*)?)$)/.test(url) === false) { + if (/^(\w|[0-9-_]){3,}$/.test(url) + && /^(htt(ps?)?)|(loca((l)?|(lh)?|(lho)?|(lhos)?|(lhost:?\d*)?)$)/.test(url) === false) { url = `${ url }.rocket.chat`; } @@ -122,6 +128,8 @@ export default class NewServerView extends LoggedView { } renderBack = () => { + const { navigator } = this.props; + let top = 15; if (DeviceInfo.getBrand() === 'Apple') { top = DeviceInfo.isNotch() ? 45 : 30; @@ -130,7 +138,7 @@ export default class NewServerView extends LoggedView { return ( this.props.navigator.pop()} + onPress={() => navigator.pop()} > { const url = decodeURIComponent(webViewState.url); @@ -62,7 +63,7 @@ export default class OAuthView extends React.PureComponent { const parts = url.split('#'); const credentials = JSON.parse(parts[1]); this.login({ oauth: { ...credentials } }); - this.props.navigator.dismissModal(); + navigator.dismissModal(); } }} /> diff --git a/app/views/OnboardingView/Button.js b/app/views/OnboardingView/Button.js index 59877313a..d4dc2f113 100644 --- a/app/views/OnboardingView/Button.js +++ b/app/views/OnboardingView/Button.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, Text, TouchableWithoutFeedback, Image } from 'react-native'; +import { + View, Text, TouchableWithoutFeedback, Image +} from 'react-native'; import styles from './styles'; diff --git a/app/views/OnboardingView/index.js b/app/views/OnboardingView/index.js index 3e2acf41d..1efdfc93d 100644 --- a/app/views/OnboardingView/index.js +++ b/app/views/OnboardingView/index.js @@ -1,5 +1,7 @@ import React from 'react'; -import { View, Text, Image, SafeAreaView, TouchableOpacity } from 'react-native'; +import { + View, Text, Image, SafeAreaView, TouchableOpacity +} from 'react-native'; import PropTypes from 'prop-types'; import Icon from 'react-native-vector-icons/MaterialIcons'; import { connect } from 'react-redux'; @@ -56,11 +58,13 @@ export default class OnboardingView extends LoggedView { } close = () => { - this.props.navigator.dismissModal(); + const { navigator } = this.props; + navigator.dismissModal(); } connectServer = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'NewServerView', backButtonTitle: '', navigatorStyle: { @@ -70,7 +74,8 @@ export default class OnboardingView extends LoggedView { } joinCommunity = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'NewServerView', backButtonTitle: '', passProps: { @@ -87,7 +92,9 @@ export default class OnboardingView extends LoggedView { } renderClose = () => { - if (this.props.previousServer) { + const { previousServer } = this.props; + + if (previousServer) { let top = 15; if (DeviceInfo.getBrand() === 'Apple') { top = DeviceInfo.isNotch() ? 45 : 30; @@ -96,6 +103,7 @@ export default class OnboardingView extends LoggedView { ({ - openPinnedMessages: (rid, limit) => dispatch(openPinnedMessages(rid, limit)), - closePinnedMessages: () => dispatch(closePinnedMessages()), - togglePinRequest: message => dispatch(togglePinRequest(message)) + openPinnedMessages: (rid, limit) => dispatch(openPinnedMessagesAction(rid, limit)), + closePinnedMessages: () => dispatch(closePinnedMessagesAction()), + togglePinRequest: message => dispatch(togglePinRequestAction(message)) })) /** @extends React.Component */ export default class PinnedMessagesView extends LoggedView { @@ -56,13 +58,15 @@ export default class PinnedMessagesView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.ready && nextProps.ready !== this.props.ready) { + const { ready } = this.props; + if (nextProps.ready && nextProps.ready !== ready) { this.setState({ loading: false, loadingMore: false }); } } componentWillUnmount() { - this.props.closePinnedMessages(); + const { closePinnedMessages } = this.props; + closePinnedMessages(); } onLongPress = (message) => { @@ -73,9 +77,12 @@ export default class PinnedMessagesView extends LoggedView { } handleActionPress = (actionIndex) => { + const { message } = this.state; + const { togglePinRequest } = this.props; + switch (actionIndex) { case PIN_INDEX: - this.props.togglePinRequest(this.state.message); + togglePinRequest(message); break; default: break; @@ -83,7 +90,8 @@ export default class PinnedMessagesView extends LoggedView { } load = () => { - this.props.openPinnedMessages(this.props.rid, this.limit); + const { openPinnedMessages, rid } = this.props; + openPinnedMessages(rid, this.limit); } moreData = () => { @@ -105,16 +113,19 @@ export default class PinnedMessagesView extends LoggedView { ) - renderItem = ({ item }) => ( - - ) + renderItem = ({ item }) => { + const { user } = this.props; + return ( + + ); + } render() { const { loading, loadingMore } = this.state; diff --git a/app/views/PrivacyPolicyView.js b/app/views/PrivacyPolicyView.js index f86868b4a..f823ca0f1 100644 --- a/app/views/PrivacyPolicyView.js +++ b/app/views/PrivacyPolicyView.js @@ -20,9 +20,11 @@ export default class PrivacyPolicyView extends LoggedView { } render() { + const { privacyPolicy } = this.props; + return ( - + ); } diff --git a/app/views/ProfileView/index.js b/app/views/ProfileView/index.js index f01dbabd0..48d0c3f31 100644 --- a/app/views/ProfileView/index.js +++ b/app/views/ProfileView/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, ScrollView, SafeAreaView, Keyboard, Dimensions } from 'react-native'; +import { + View, ScrollView, SafeAreaView, Keyboard, Dimensions +} from 'react-native'; import { connect } from 'react-redux'; import Dialog from 'react-native-dialog'; import SHA256 from 'js-sha256'; @@ -61,7 +63,8 @@ export default class ProfileView extends LoggedView { } componentWillMount() { - this.props.navigator.setButtons({ + const { navigator } = this.props; + navigator.setButtons({ leftButtons: [{ id: 'settings', icon: { uri: 'settings', scale: Dimensions.get('window').scale } @@ -70,9 +73,11 @@ export default class ProfileView extends LoggedView { } async componentDidMount() { + const { navigator } = this.props; + this.init(); - this.props.navigator.setDrawerEnabled({ + navigator.setDrawerEnabled({ side: 'left', enabled: true }); @@ -86,15 +91,18 @@ export default class ProfileView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (this.props.user !== nextProps.user) { + const { user } = this.props; + if (user !== nextProps.user) { this.init(nextProps.user); } } onNavigatorEvent(event) { + const { navigator } = this.props; + if (event.type === 'NavBarButtonPress') { if (event.id === 'settings') { - this.props.navigator.toggleDrawer({ + navigator.toggleDrawer({ side: 'left' }); } @@ -106,9 +114,11 @@ export default class ProfileView extends LoggedView { } init = (user) => { + const { user: userProps } = this.props; const { name, username, emails, customFields - } = user || this.props.user; + } = user || userProps; + this.setState({ name, username, @@ -137,12 +147,12 @@ export default class ProfileView extends LoggedView { }); } - return !(user.name === name && - user.username === username && - !newPassword && - (user.emails && user.emails[0].address === email) && - !avatar.data && - !customFieldsChanged + return !(user.name === name + && user.username === username + && !newPassword + && (user.emails && user.emails[0].address === email) + && !avatar.data + && !customFieldsChanged ); } @@ -278,43 +288,50 @@ export default class ProfileView extends LoggedView { ) - renderAvatarButtons = () => ( - - {this.renderAvatarButton({ - child: , - onPress: () => this.resetAvatar(), - key: 'profile-view-reset-avatar' - })} - {this.renderAvatarButton({ - child: , - onPress: () => this.pickImage(), - key: 'profile-view-upload-avatar' - })} - {this.renderAvatarButton({ - child: , - onPress: () => this.setAvatar({ url: this.state.avatarUrl, data: this.state.avatarUrl, service: 'url' }), - disabled: !this.state.avatarUrl, - key: 'profile-view-avatar-url-button' - })} - {Object.keys(this.state.avatarSuggestions).map((service) => { - const { url, blob, contentType } = this.state.avatarSuggestions[service]; - return this.renderAvatarButton({ - key: `profile-view-avatar-${ service }`, - child: , - onPress: () => this.setAvatar({ - url, data: blob, service, contentType - }) - }); - })} - - ); + renderAvatarButtons = () => { + const { avatarUrl, avatarSuggestions } = this.state; + const { user, baseUrl } = this.props; + + return ( + + {this.renderAvatarButton({ + child: , + onPress: () => this.resetAvatar(), + key: 'profile-view-reset-avatar' + })} + {this.renderAvatarButton({ + child: , + onPress: () => this.pickImage(), + key: 'profile-view-upload-avatar' + })} + {this.renderAvatarButton({ + child: , + onPress: () => this.setAvatar({ url: avatarUrl, data: avatarUrl, service: 'url' }), + disabled: !avatarUrl, + key: 'profile-view-avatar-url-button' + })} + {Object.keys(avatarSuggestions).map((service) => { + const { url, blob, contentType } = avatarSuggestions[service]; + return this.renderAvatarButton({ + key: `profile-view-avatar-${ service }`, + child: , + onPress: () => this.setAvatar({ + url, data: blob, service, contentType + }) + }); + })} + + ); + } renderCustomFields = () => { const { customFields } = this.state; - if (!this.props.Accounts_CustomFields) { + const { Accounts_CustomFields } = this.props; + + if (!Accounts_CustomFields) { return null; } - const parsedCustomFields = JSON.parse(this.props.Accounts_CustomFields); + const parsedCustomFields = JSON.parse(Accounts_CustomFields); return Object.keys(parsedCustomFields).map((key, index, array) => { if (parsedCustomFields[key].type === 'select') { const options = parsedCustomFields[key].options.map(option => ({ label: option, value: option })); @@ -325,7 +342,7 @@ export default class ProfileView extends LoggedView { onValueChange={(value) => { const newValue = {}; newValue[key] = value; - this.setState({ customFields: { ...this.state.customFields, ...newValue } }); + this.setState({ customFields: { ...customFields, ...newValue } }); }} value={customFields[key]} > @@ -350,7 +367,7 @@ export default class ProfileView extends LoggedView { onChangeText={(value) => { const newValue = {}; newValue[key] = value; - this.setState({ customFields: { ...this.state.customFields, ...newValue } }); + this.setState({ customFields: { ...customFields, ...newValue } }); }} onSubmitEditing={() => { if (array.length - 1 > index) { @@ -365,8 +382,10 @@ export default class ProfileView extends LoggedView { render() { const { - name, username, email, newPassword, avatarUrl, customFields + name, username, email, newPassword, avatarUrl, customFields, avatar, saving, showPasswordAlert } = this.state; + const { baseUrl } = this.props; + return ( - - + + {I18n.t('Please_enter_your_password')} diff --git a/app/views/RegisterView.js b/app/views/RegisterView.js index e5e91483d..4926c322d 100644 --- a/app/views/RegisterView.js +++ b/app/views/RegisterView.js @@ -1,9 +1,11 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Keyboard, Text, View, ScrollView, SafeAreaView } from 'react-native'; +import { + Keyboard, Text, View, ScrollView, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; -import { registerSubmit, setUsernameSubmit } from '../actions/login'; +import { registerSubmit as registerSubmitAction, setUsernameSubmit as setUsernameSubmitAction } from '../actions/login'; import TextInput from '../containers/TextInput'; import Button from '../containers/Button'; import Loading from '../containers/Loading'; @@ -22,8 +24,8 @@ import I18n from '../i18n'; Accounts_RepeatPasswordPlaceholder: state.settings.Accounts_RepeatPasswordPlaceholder, login: state.login }), dispatch => ({ - registerSubmit: params => dispatch(registerSubmit(params)), - setUsernameSubmit: params => dispatch(setUsernameSubmit(params)) + registerSubmit: params => dispatch(registerSubmitAction(params)), + setUsernameSubmit: params => dispatch(setUsernameSubmitAction(params)) })) /** @extends React.Component */ export default class RegisterView extends LoggedView { @@ -51,28 +53,31 @@ export default class RegisterView extends LoggedView { }; } - valid() { + valid = () => { const { name, email, password, confirmPassword } = this.state; - return name.trim() && email.trim() && - password && confirmPassword && password === confirmPassword; + return name.trim() && email.trim() + && password && confirmPassword && password === confirmPassword; } - invalidEmail() { - return this.props.login.failure && /Email/.test(this.props.login.error.reason) ? this.props.login.error : {}; + invalidEmail = () => { + const { login } = this.props; + return login.failure && /Email/.test(login.error && login.error.reason) ? login.error : {}; } submit = () => { const { name, email, password, code } = this.state; + const { registerSubmit } = this.props; + if (!this.valid()) { showToast(I18n.t('Some_field_is_invalid_or_empty')); return; } - this.props.registerSubmit({ + registerSubmit({ name, email, pass: password, code }); Keyboard.dismiss(); @@ -80,17 +85,20 @@ export default class RegisterView extends LoggedView { usernameSubmit = () => { const { username } = this.state; + const { setUsernameSubmit } = this.props; + if (!username) { showToast(I18n.t('Username_is_empty')); return; } - this.props.setUsernameSubmit({ username }); + setUsernameSubmit({ username }); Keyboard.dismiss(); } termsService = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'TermsServiceView', title: I18n.t('Terms_of_Service'), backButtonTitle: '' @@ -98,7 +106,8 @@ export default class RegisterView extends LoggedView { } privacyPolicy = () => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'PrivacyPolicyView', title: I18n.t('Privacy_Policy'), backButtonTitle: '' @@ -106,15 +115,20 @@ export default class RegisterView extends LoggedView { } _renderRegister() { - if (this.props.login.token) { + const { password, confirmPassword } = this.state; + const { + login, Accounts_NamePlaceholder, Accounts_EmailOrUsernamePlaceholder, Accounts_PasswordPlaceholder, Accounts_RepeatPasswordPlaceholder + } = this.props; + + if (login.token) { return null; } return ( { this.name = e; }} - label={this.props.Accounts_NamePlaceholder || I18n.t('Name')} - placeholder={this.props.Accounts_NamePlaceholder || I18n.t('Name')} + label={Accounts_NamePlaceholder || I18n.t('Name')} + placeholder={Accounts_NamePlaceholder || I18n.t('Name')} returnKeyType='next' iconLeft='account' onChangeText={name => this.setState({ name })} @@ -123,8 +137,8 @@ export default class RegisterView extends LoggedView { /> { this.email = e; }} - label={this.props.Accounts_EmailOrUsernamePlaceholder || I18n.t('Email')} - placeholder={this.props.Accounts_EmailOrUsernamePlaceholder || I18n.t('Email')} + label={Accounts_EmailOrUsernamePlaceholder || I18n.t('Email')} + placeholder={Accounts_EmailOrUsernamePlaceholder || I18n.t('Email')} returnKeyType='next' keyboardType='email-address' iconLeft='email' @@ -135,28 +149,28 @@ export default class RegisterView extends LoggedView { /> { this.password = e; }} - label={this.props.Accounts_PasswordPlaceholder || I18n.t('Password')} - placeholder={this.props.Accounts_PasswordPlaceholder || I18n.t('Password')} + label={Accounts_PasswordPlaceholder || I18n.t('Password')} + placeholder={Accounts_PasswordPlaceholder || I18n.t('Password')} returnKeyType='next' iconLeft='key-variant' secureTextEntry - onChangeText={password => this.setState({ password })} + onChangeText={value => this.setState({ password: value })} onSubmitEditing={() => { this.confirmPassword.focus(); }} testID='register-view-password' /> { this.confirmPassword = e; }} inputStyle={ - this.state.password && - this.state.confirmPassword && - this.state.confirmPassword !== this.state.password ? { borderColor: 'red' } : {} + password + && confirmPassword + && confirmPassword !== password ? { borderColor: 'red' } : {} } - label={this.props.Accounts_RepeatPasswordPlaceholder || I18n.t('Repeat_Password')} - placeholder={this.props.Accounts_RepeatPasswordPlaceholder || I18n.t('Repeat_Password')} + label={Accounts_RepeatPasswordPlaceholder || I18n.t('Repeat_Password')} + placeholder={Accounts_RepeatPasswordPlaceholder || I18n.t('Repeat_Password')} returnKeyType='done' iconLeft='key-variant' secureTextEntry - onChangeText={confirmPassword => this.setState({ confirmPassword })} + onChangeText={value => this.setState({ confirmPassword: value })} onSubmitEditing={this.submit} testID='register-view-repeat-password' /> @@ -180,15 +194,17 @@ export default class RegisterView extends LoggedView { } _renderUsername() { - if (!this.props.login.token) { + const { login, Accounts_UsernamePlaceholder } = this.props; + + if (!login.token) { return null; } return ( { this.username = e; }} - label={this.props.Accounts_UsernamePlaceholder || I18n.t('Username')} - placeholder={this.props.Accounts_UsernamePlaceholder || I18n.t('Username')} + label={Accounts_UsernamePlaceholder || I18n.t('Username')} + placeholder={Accounts_UsernamePlaceholder || I18n.t('Username')} returnKeyType='done' iconLeft='at' onChangeText={username => this.setState({ username })} @@ -209,6 +225,7 @@ export default class RegisterView extends LoggedView { } render() { + const { login } = this.props; return ( @@ -216,13 +233,15 @@ export default class RegisterView extends LoggedView { {I18n.t('Sign_Up')} {this._renderRegister()} {this._renderUsername()} - {this.props.login.failure ? - - {this.props.login.error.reason} - + {login.failure + ? ( + + {login.error.reason} + + ) : null } - + diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index ba7e85359..1c0cf5cc6 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -1,10 +1,13 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, SectionList, Text, Alert, SafeAreaView } from 'react-native'; +import { + View, SectionList, Text, Alert, SafeAreaView +} from 'react-native'; import Icon from 'react-native-vector-icons/Ionicons'; import MaterialIcon from 'react-native-vector-icons/MaterialIcons'; import { connect } from 'react-redux'; +import { leaveRoom as leaveRoomAction } from '../../actions/room'; import LoggedView from '../View'; import styles from './styles'; import sharedStyles from '../Styles'; @@ -13,7 +16,6 @@ import Status from '../../containers/status'; import Touch from '../../utils/touch'; import database from '../../lib/realm'; import RocketChat from '../../lib/rocketchat'; -import { leaveRoom } from '../../actions/room'; import log from '../../utils/log'; import RoomTypeIcon from '../../containers/RoomTypeIcon'; import I18n from '../../i18n'; @@ -26,7 +28,7 @@ const renderSeparator = () => ; username: state.login.user && state.login.user.username, baseUrl: state.settings.Site_Url || state.server ? state.server.server : '' }), dispatch => ({ - leaveRoom: rid => dispatch(leaveRoom(rid)) + leaveRoom: rid => dispatch(leaveRoomAction(rid)) })) /** @extends React.Component */ export default class RoomActionsView extends LoggedView { @@ -63,8 +65,10 @@ export default class RoomActionsView extends LoggedView { } onPressTouchable = (item) => { + const { navigator } = this.props; + if (item.route) { - this.props.navigator.push({ + navigator.push({ screen: item.route, title: item.name, passProps: item.params, @@ -81,8 +85,10 @@ export default class RoomActionsView extends LoggedView { rid, t } = this.room; const { allMembers } = this.state; + const { username } = this.props; + // TODO: same test joined - const userInRoom = !!allMembers.find(m => m.username === this.props.username); + const userInRoom = !!allMembers.find(m => m.username === username); const permissions = RocketChat.hasPermission(['add-user-to-joined-room', 'add-user-to-any-c-room', 'add-user-to-any-p-room'], rid); if (userInRoom && permissions['add-user-to-joined-room']) { @@ -96,8 +102,10 @@ export default class RoomActionsView extends LoggedView { } return false; } + get canViewMembers() { - const { rid, t, broadcast } = this.state.room; + const { room } = this.state; + const { rid, t, broadcast } = room; if (broadcast) { const viewBroadcastMemberListPermission = 'view-broadcast-member-list'; const permissions = RocketChat.hasPermission([viewBroadcastMemberListPermission], rid); @@ -107,6 +115,7 @@ export default class RoomActionsView extends LoggedView { } return (t === 'c' || t === 'p'); } + get sections() { const { rid, t, blocker, notifications @@ -218,9 +227,9 @@ export default class RoomActionsView extends LoggedView { actions.push({ icon: 'ios-people', name: I18n.t('Members'), - description: (onlineMembers.length === 1 ? - I18n.t('1_online_member') : - I18n.t('N_online_members', { n: onlineMembers.length })), + description: (onlineMembers.length === 1 + ? I18n.t('1_online_member') + : I18n.t('N_online_members', { n: onlineMembers.length })), route: 'RoomMembersView', params: { rid, members: onlineMembers }, testID: 'room-actions-members' @@ -257,7 +266,8 @@ export default class RoomActionsView extends LoggedView { } updateRoomMembers = async() => { - const { t } = this.state.room; + const { room } = this.state; + const { rid, t } = room; if (!this.canViewMembers) { return {}; @@ -267,8 +277,8 @@ export default class RoomActionsView extends LoggedView { let onlineMembers = []; let allMembers = []; try { - const onlineMembersCall = RocketChat.getRoomMembers(this.state.room.rid, false); - const allMembersCall = RocketChat.getRoomMembers(this.state.room.rid, true); + const onlineMembersCall = RocketChat.getRoomMembers(rid, false); + const allMembersCall = RocketChat.getRoomMembers(rid, true); const [onlineMembersResult, allMembersResult] = await Promise.all([onlineMembersCall, allMembersCall]); onlineMembers = onlineMembersResult.records; allMembers = allMembersResult.records; @@ -280,11 +290,15 @@ export default class RoomActionsView extends LoggedView { } updateRoomMember = async() => { - if (this.state.room.t !== 'd') { + const { room } = this.state; + const { rid, t } = room; + const { userId } = this.props; + + if (t !== 'd') { return {}; } try { - const member = await RocketChat.getRoomMember(this.state.room.rid, this.props.userId); + const member = await RocketChat.getRoomMember(rid, userId); return { member }; } catch (e) { log('RoomActions updateRoomMember', e); @@ -297,7 +311,8 @@ export default class RoomActionsView extends LoggedView { } toggleBlockUser = async() => { - const { rid, blocker } = this.state.room; + const { room } = this.state; + const { rid, blocker } = room; const { member } = this.state; try { RocketChat.toggleBlockUser(rid, member._id, !blocker); @@ -308,6 +323,8 @@ export default class RoomActionsView extends LoggedView { leaveChannel = () => { const { room } = this.state; + const { leaveRoom } = this.props; + Alert.alert( I18n.t('Are_you_sure_question_mark'), I18n.t('Are_you_sure_you_want_to_leave_the_room', { room: room.t === 'd' ? room.fname : room.name }), @@ -319,7 +336,7 @@ export default class RoomActionsView extends LoggedView { { text: I18n.t('Yes_action_it', { action: I18n.t('leave') }), style: 'destructive', - onPress: () => this.props.leaveRoom(room.rid) + onPress: () => leaveRoom(room.rid) } ] ); @@ -337,6 +354,8 @@ export default class RoomActionsView extends LoggedView { renderRoomInfo = ({ item }) => { const { room, member } = this.state; const { name, t, topic } = room; + const { baseUrl } = this.props; + return ( this.renderTouchableItem([ {t === 'd' ? : null } , - {room.t === 'd' ? - {room.fname} : - - - {room.name} - + {room.t === 'd' + ? {room.fname} + : ( + + + {room.name} + + ) } {t === 'd' ? `@${ name }` : topic} , diff --git a/app/views/RoomFilesView/index.js b/app/views/RoomFilesView/index.js index 01827d19b..1cb42efcd 100644 --- a/app/views/RoomFilesView/index.js +++ b/app/views/RoomFilesView/index.js @@ -1,10 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FlatList, View, Text, SafeAreaView } from 'react-native'; +import { + FlatList, View, Text, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; +import { openRoomFiles as openRoomFilesAction, closeRoomFiles as closeRoomFilesAction } from '../../actions/roomFiles'; import LoggedView from '../View'; -import { openRoomFiles, closeRoomFiles } from '../../actions/roomFiles'; import styles from './styles'; import Message from '../../containers/message'; import RCActivityIndicator from '../../containers/ActivityIndicator'; @@ -19,8 +21,8 @@ import I18n from '../../i18n'; token: state.login.user && state.login.user.token } }), dispatch => ({ - openRoomFiles: (rid, limit) => dispatch(openRoomFiles(rid, limit)), - closeRoomFiles: () => dispatch(closeRoomFiles()) + openRoomFiles: (rid, limit) => dispatch(openRoomFilesAction(rid, limit)), + closeRoomFiles: () => dispatch(closeRoomFilesAction()) })) /** @extends React.Component */ export default class RoomFilesView extends LoggedView { @@ -47,17 +49,20 @@ export default class RoomFilesView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.ready && nextProps.ready !== this.props.ready) { + const { ready } = this.props; + if (nextProps.ready && nextProps.ready !== ready) { this.setState({ loading: false, loadingMore: false }); } } componentWillUnmount() { - this.props.closeRoomFiles(); + const { closeRoomFiles } = this.props; + closeRoomFiles(); } load = () => { - this.props.openRoomFiles(this.props.rid, this.limit); + const { openRoomFiles, rid } = this.props; + openRoomFiles(rid, this.limit); } moreData = () => { @@ -79,15 +84,19 @@ export default class RoomFilesView extends LoggedView { ) - renderItem = ({ item }) => ( - - ) + renderItem = ({ item }) => { + const { user } = this.props; + + return ( + + ); + } render() { const { messages, ready } = this.props; diff --git a/app/views/RoomInfoEditView/SwitchContainer.js b/app/views/RoomInfoEditView/SwitchContainer.js index beba008f2..40f10342c 100644 --- a/app/views/RoomInfoEditView/SwitchContainer.js +++ b/app/views/RoomInfoEditView/SwitchContainer.js @@ -3,7 +3,7 @@ import { View, Text, Switch } from 'react-native'; import PropTypes from 'prop-types'; import styles from './styles'; -import sharedStyles from '../../views/Styles'; +import sharedStyles from '../Styles'; export default class SwitchContainer extends React.PureComponent { static propTypes = { diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index 57b87eeb5..b86f8e22c 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -1,8 +1,11 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Text, View, ScrollView, TouchableOpacity, SafeAreaView, Keyboard, Alert } from 'react-native'; +import { + Text, View, ScrollView, TouchableOpacity, SafeAreaView, Keyboard, Alert +} from 'react-native'; import { connect } from 'react-redux'; +import { eraseRoom as eraseRoomAction } from '../../actions/room'; import LoggedView from '../View'; import KeyboardView from '../../presentation/KeyboardView'; import sharedStyles from '../Styles'; @@ -11,7 +14,6 @@ import scrollPersistTaps from '../../utils/scrollPersistTaps'; import { showErrorAlert, showToast } from '../../utils/info'; import database from '../../lib/realm'; import RocketChat from '../../lib/rocketchat'; -import { eraseRoom } from '../../actions/room'; import RCTextInput from '../../containers/TextInput'; import Loading from '../../containers/Loading'; import SwitchContainer from './SwitchContainer'; @@ -35,7 +37,7 @@ const PERMISSIONS_ARRAY = [ ]; @connect(null, dispatch => ({ - eraseRoom: rid => dispatch(eraseRoom(rid)) + eraseRoom: rid => dispatch(eraseRoomAction(rid)) })) /** @extends React.Component */ export default class RoomInfoEditView extends LoggedView { @@ -66,10 +68,11 @@ export default class RoomInfoEditView extends LoggedView { async componentDidMount() { + const { room } = this.state; await this.updateRoom(); this.init(); this.rooms.addListener(this.updateRoom); - this.permissions = RocketChat.hasPermission(PERMISSIONS_ARRAY, this.state.room.rid); + this.permissions = RocketChat.hasPermission(PERMISSIONS_ARRAY, room.rid); } componentWillUnmount() { @@ -82,9 +85,10 @@ export default class RoomInfoEditView extends LoggedView { } init = () => { + const { room } = this.state; const { name, description, topic, announcement, t, ro, reactWhenReadOnly, joinCodeRequired - } = this.state.room; + } = room; // fake password just to user knows about it this.randomValue = random(15); this.setState({ @@ -114,14 +118,14 @@ export default class RoomInfoEditView extends LoggedView { const { room, name, description, topic, announcement, t, ro, reactWhenReadOnly, joinCode } = this.state; - return !(room.name === name && - room.description === description && - room.topic === topic && - room.announcement === announcement && - this.randomValue === joinCode && - room.t === 'p' === t && - room.ro === ro && - room.reactWhenReadOnly === reactWhenReadOnly + return !(room.name === name + && room.description === description + && room.topic === topic + && room.announcement === announcement + && this.randomValue === joinCode + && room.t === 'p' === t + && room.ro === ro + && room.reactWhenReadOnly === reactWhenReadOnly ); } @@ -199,6 +203,9 @@ export default class RoomInfoEditView extends LoggedView { } delete = () => { + const { room } = this.state; + const { eraseRoom } = this.props; + Alert.alert( I18n.t('Are_you_sure_question_mark'), I18n.t('Delete_Room_Warning'), @@ -210,7 +217,7 @@ export default class RoomInfoEditView extends LoggedView { { text: I18n.t('Yes_action_it', { action: I18n.t('delete') }), style: 'destructive', - onPress: () => this.props.eraseRoom(this.state.room.rid) + onPress: () => eraseRoom(room.rid) } ], { cancelable: false } @@ -218,7 +225,9 @@ export default class RoomInfoEditView extends LoggedView { } toggleArchive = () => { - const { archived } = this.state.room; + const { room } = this.state; + const { rid, archived } = room; + const action = I18n.t(`${ archived ? 'un' : '' }archive`); Alert.alert( I18n.t('Are_you_sure_question_mark'), @@ -233,7 +242,7 @@ export default class RoomInfoEditView extends LoggedView { style: 'destructive', onPress: () => { try { - RocketChat.toggleArchiveRoom(this.state.room.rid, !archived); + RocketChat.toggleArchiveRoom(rid, !archived); } catch (e) { log('toggleArchive', e); } @@ -244,9 +253,12 @@ export default class RoomInfoEditView extends LoggedView { ); } - hasDeletePermission = () => ( - this.state.room.t === 'p' ? this.permissions[PERMISSION_DELETE_P] : this.permissions[PERMISSION_DELETE_C] - ); + hasDeletePermission = () => { + const { room } = this.state; + return ( + room.t === 'p' ? this.permissions[PERMISSION_DELETE_P] : this.permissions[PERMISSION_DELETE_C] + ); + } hasArchivePermission = () => ( this.permissions[PERMISSION_ARCHIVE] || this.permissions[PERMISSION_UNARCHIVE] @@ -254,7 +266,7 @@ export default class RoomInfoEditView extends LoggedView { render() { const { - name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode + name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode, saving } = this.state; return ( - {ro && !room.broadcast ? - this.setState({ reactWhenReadOnly: value })} - disabled={!this.permissions[PERMISSION_SET_REACT_WHEN_READONLY]} - testID='room-info-edit-view-react-when-ro' - /> + {ro && !room.broadcast + ? ( + this.setState({ reactWhenReadOnly: value })} + disabled={!this.permissions[PERMISSION_SET_REACT_WHEN_READONLY]} + testID='room-info-edit-view-react-when-ro' + /> + ) : null } - {room.broadcast ? - [ + {room.broadcast + ? [ {I18n.t('Broadcast_Channel')}, ] @@ -394,7 +408,7 @@ export default class RoomInfoEditView extends LoggedView { > {I18n.t('DELETE')} - + diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index bf7cc61a3..8876f2a56 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, Text, ScrollView, SafeAreaView } from 'react-native'; +import { + View, Text, ScrollView, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import moment from 'moment'; @@ -20,14 +22,14 @@ import { iconsMap } from '../../Icons'; const PERMISSION_EDIT_ROOM = 'edit-room'; const camelize = str => str.replace(/^(.)/, (match, chr) => chr.toUpperCase()); -const getRoomTitle = room => (room.t === 'd' ? - {room.fname} : - [ +const getRoomTitle = room => (room.t === 'd' + ? {room.fname} + : ( {room.name} - ] + ) ); @connect(state => ({ @@ -35,7 +37,7 @@ const getRoomTitle = room => (room.t === 'd' ? userId: state.login.user && state.login.user.id, activeUsers: state.activeUsers, Message_TimeFormat: state.settings.Message_TimeFormat, - roles: state.roles + allRoles: state.roles })) /** @extends React.Component */ export default class RoomInfoView extends LoggedView { @@ -46,7 +48,7 @@ export default class RoomInfoView extends LoggedView { baseUrl: PropTypes.string, activeUsers: PropTypes.object, Message_TimeFormat: PropTypes.string, - roles: PropTypes.object + allRoles: PropTypes.object } constructor(props) { @@ -64,19 +66,61 @@ export default class RoomInfoView extends LoggedView { props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this)); } - async componentDidMount() { - await this.updateRoom(); + componentDidMount() { + this.updateRoom(); this.rooms.addListener(this.updateRoom); + } + + componentWillUnmount() { + this.rooms.removeAllListeners(); + this.sub.unsubscribe(); + } + + onNavigatorEvent(event) { + const { rid, navigator } = this.props; + if (event.type === 'NavBarButtonPress') { + if (event.id === 'edit') { + navigator.push({ + screen: 'RoomInfoEditView', + title: I18n.t('Room_Info_Edit'), + backButtonTitle: '', + passProps: { + rid + } + }); + } + } + } + + getFullUserData = async(username) => { + try { + const result = await RocketChat.subscribe('fullUserData', username); + this.sub = result; + } catch (e) { + log('getFullUserData', e); + } + } + + isDirect = () => { + const { room: { t } } = this.state; + return t === 'd'; + } + + updateRoom = async() => { + const { userId, activeUsers, navigator } = this.props; + + const [room] = this.rooms; + this.setState({ room }); // get user of room - if (this.state.room) { - if (this.state.room.t === 'd') { + if (room) { + if (room.t === 'd') { try { - const roomUser = await RocketChat.getRoomMember(this.state.room.rid, this.props.userId); + const roomUser = await RocketChat.getRoomMember(room.rid, userId); this.setState({ roomUser }); - const username = this.state.room.name; + const username = room.name; - const activeUser = this.props.activeUsers[roomUser._id]; + const activeUser = activeUsers[roomUser._id]; if (!activeUser || !activeUser.utcOffset) { // get full user data looking for utcOffset // will be catched by .on('users) and saved on activeUsers reducer @@ -94,9 +138,14 @@ export default class RoomInfoView extends LoggedView { log('RoomInfoView.componentDidMount', e); } } else { - const permissions = RocketChat.hasPermission([PERMISSION_EDIT_ROOM], this.state.room.rid); + const isVisible = await navigator.screenIsCurrentlyVisible(); + + if (!isVisible) { + return; + } + const permissions = RocketChat.hasPermission([PERMISSION_EDIT_ROOM], room.rid); if (permissions[PERMISSION_EDIT_ROOM]) { - this.props.navigator.setButtons({ + navigator.setButtons({ rightButtons: [{ id: 'edit', icon: iconsMap.create, @@ -108,42 +157,6 @@ export default class RoomInfoView extends LoggedView { } } - componentWillUnmount() { - this.rooms.removeAllListeners(); - this.sub.unsubscribe(); - } - - onNavigatorEvent(event) { - if (event.type === 'NavBarButtonPress') { - if (event.id === 'edit') { - this.props.navigator.push({ - screen: 'RoomInfoEditView', - title: I18n.t('Room_Info_Edit'), - backButtonTitle: '', - passProps: { - rid: this.props.rid - } - }); - } - } - } - - getFullUserData = async(username) => { - try { - const result = await RocketChat.subscribe('fullUserData', username); - this.sub = result; - } catch (e) { - log('getFullUserData', e); - } - } - - isDirect = () => this.state.room.t === 'd'; - - updateRoom = async() => { - const [room] = this.rooms; - this.setState({ room }); - } - renderItem = (key, room) => ( {I18n.t(camelize(key))} @@ -155,24 +168,33 @@ export default class RoomInfoView extends LoggedView { ); - renderRoles = () => ( - this.state.roles.length > 0 ? - - {I18n.t('Roles')} - - {this.state.roles.map(role => ( - - { this.props.roles[role] } + renderRoles = () => { + const { roles } = this.state; + const { allRoles } = this.props; + + return ( + roles.length > 0 + ? ( + + {I18n.t('Roles')} + + {roles.map(role => ( + + { allRoles[role] } + + ))} - ))} - - - : null - ) + + ) + : null + ); + } renderTimezone = (userId) => { - if (this.props.activeUsers[userId]) { - const { utcOffset } = this.props.activeUsers[userId]; + const { activeUsers, Message_TimeFormat } = this.props; + + if (activeUsers[userId]) { + const { utcOffset } = activeUsers[userId]; if (!utcOffset) { return null; @@ -180,24 +202,28 @@ export default class RoomInfoView extends LoggedView { return ( {I18n.t('Timezone')} - {moment().utcOffset(utcOffset).format(this.props.Message_TimeFormat)} (UTC { utcOffset }) + {moment().utcOffset(utcOffset).format(Message_TimeFormat)} (UTC { utcOffset }) ); } return null; } - renderAvatar = (room, roomUser) => ( - - {room.t === 'd' ? : null} - - ) + renderAvatar = (room, roomUser) => { + const { baseUrl } = this.props; + + return ( + + {room.t === 'd' ? : null} + + ); + } renderBroadcast = () => ( diff --git a/app/views/RoomMembersView/index.js b/app/views/RoomMembersView/index.js index 84c893fbc..0a732a46f 100644 --- a/app/views/RoomMembersView/index.js +++ b/app/views/RoomMembersView/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FlatList, View, Vibration, SafeAreaView } from 'react-native'; +import { + FlatList, View, Vibration, SafeAreaView +} from 'react-native'; import ActionSheet from 'react-native-actionsheet'; import { connect } from 'react-redux'; @@ -37,6 +39,8 @@ export default class RoomMembersView extends LoggedView { constructor(props) { super('MentionedMessagesView', props); + const { navigator } = this.props; + this.CANCEL_INDEX = 0; this.MUTE_INDEX = 1; this.actionSheetOptions = ['']; @@ -52,7 +56,7 @@ export default class RoomMembersView extends LoggedView { userLongPressed: {}, room: {} }; - this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this)); + navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this)); } componentDidMount() { @@ -64,16 +68,19 @@ export default class RoomMembersView extends LoggedView { } async onNavigatorEvent(event) { + const { rid, allUsers } = this.state; + const { navigator } = this.props; + if (event.type === 'NavBarButtonPress') { if (event.id === 'toggleOnline') { try { - const allUsers = !this.state.allUsers; - const membersResult = await RocketChat.getRoomMembers(this.state.rid, allUsers); + const allUsersFilter = !allUsers; + const membersResult = await RocketChat.getRoomMembers(rid, allUsersFilter); const members = membersResult.records; - this.setState({ allUsers, members }); - this.props.navigator.setButtons({ + this.setState({ allUsers: allUsersFilter, members }); + navigator.setButtons({ rightButtons: [{ - title: this.state.allUsers ? I18n.t('Online') : I18n.t('All'), + title: allUsers ? I18n.t('Online') : I18n.t('All'), id: 'toggleOnline', testID: 'room-members-view-toggle-status' }] @@ -86,9 +93,11 @@ export default class RoomMembersView extends LoggedView { } onSearchChangeText = (text) => { + const { members } = this.state; + let membersFiltered = []; if (text) { - membersFiltered = this.state.members.filter(m => m.username.toLowerCase().match(text.toLowerCase())); + membersFiltered = members.filter(m => m.username.toLowerCase().match(text.toLowerCase())); } this.setState({ filtering: !!text, membersFiltered }); } @@ -111,8 +120,10 @@ export default class RoomMembersView extends LoggedView { if (!this.permissions['mute-user']) { return; } + const { room } = this.state; + const { muted } = room; + this.actionSheetOptions = [I18n.t('Cancel')]; - const { muted } = this.state.room; const userIsMuted = !!muted.find(m => m.value === user.username); user.muted = userIsMuted; if (userIsMuted) { @@ -133,9 +144,10 @@ export default class RoomMembersView extends LoggedView { } goRoom = ({ rid, name }) => { - this.props.navigator.popToRoot(); + const { navigator } = this.props; + navigator.popToRoot(); setTimeout(() => { - this.props.navigator.push({ + navigator.push({ screen: 'RoomView', title: name, backButtonTitle: '', @@ -170,16 +182,20 @@ export default class RoomMembersView extends LoggedView { renderSeparator = () => ; - renderItem = ({ item }) => ( - this.onPressUser(item)} - onLongPress={() => this.onLongPressUser(item)} - baseUrl={this.props.baseUrl} - testID={`room-members-view-item-${ item.username }`} - /> - ) + renderItem = ({ item }) => { + const { baseUrl } = this.props; + + return ( + this.onPressUser(item)} + onLongPress={() => this.onLongPressUser(item)} + baseUrl={baseUrl} + testID={`room-members-view-item-${ item.username }`} + /> + ); + } render() { const { filtering, members, membersFiltered } = this.state; diff --git a/app/views/RoomView/ListView.js b/app/views/RoomView/ListView.js index d9b656478..553584f31 100644 --- a/app/views/RoomView/ListView.js +++ b/app/views/RoomView/ListView.js @@ -35,6 +35,7 @@ export class List extends React.Component { room: PropTypes.string, end: PropTypes.bool }; + constructor(props) { super(props); this.data = database @@ -43,16 +44,22 @@ export class List extends React.Component { .sorted('ts', true); this.dataSource = ds.cloneWithRows(this.data); } + componentDidMount() { this.data.addListener(this.updateState); } + shouldComponentUpdate(nextProps) { - return this.props.end !== nextProps.end; + const { end } = this.props; + return end !== nextProps.end; } + componentWillUnmount() { this.data.removeAllListeners(); this.updateState.stop(); } + + // eslint-disable-next-line react/sort-comp updateState = throttle(() => { // this.setState({ this.dataSource = this.dataSource.cloneWithRows(this.data); @@ -62,6 +69,8 @@ export class List extends React.Component { }, 1000); render() { + const { renderFooter, onEndReached, renderRow } = this.props; + return ( item._id} onEndReachedThreshold={100} - renderFooter={this.props.renderFooter} + renderFooter={renderFooter} renderHeader={() => } - onEndReached={() => this.props.onEndReached(this.data[this.data.length - 1])} + onEndReached={() => onEndReached(this.data[this.data.length - 1])} dataSource={this.dataSource} - renderRow={(item, previousItem) => this.props.renderRow(item, previousItem)} + renderRow={(item, previousItem) => renderRow(item, previousItem)} initialListSize={1} pageSize={20} testID='room-view-messages' @@ -106,7 +115,9 @@ export class ListView extends OldList2 { setNativeProps(props) { this.refs.listView.setNativeProps(props); } + static DataSource = DataSource; + render() { const bodyComponents = []; @@ -132,9 +143,9 @@ export class ListView extends OldList2 { continue; // eslint-disable-line } - const showUnreadSeparator = this.props.lastOpen && - moment(message.ts).isAfter(this.props.lastOpen) && - moment(previousMessage.ts).isBefore(this.props.lastOpen); + const showUnreadSeparator = this.props.lastOpen + && moment(message.ts).isAfter(this.props.lastOpen) + && moment(previousMessage.ts).isBefore(this.props.lastOpen); const showDateSeparator = !moment(message.ts).isSame(previousMessage.ts, 'day'); if (showUnreadSeparator || showDateSeparator) { diff --git a/app/views/RoomView/ReactionPicker.js b/app/views/RoomView/ReactionPicker.js index 1675f5fd2..612131699 100644 --- a/app/views/RoomView/ReactionPicker.js +++ b/app/views/RoomView/ReactionPicker.js @@ -4,8 +4,9 @@ import { View, Platform } from 'react-native'; import { connect } from 'react-redux'; import Modal from 'react-native-modal'; import { responsive } from 'react-native-responsive-ui'; + import EmojiPicker from '../../containers/EmojiPicker'; -import { toggleReactionPicker } from '../../actions/messages'; +import { toggleReactionPicker as toggleReactionPickerAction } from '../../actions/messages'; import styles from './styles'; const margin = Platform.OS === 'android' ? 40 : 20; @@ -15,7 +16,7 @@ const tabEmojiStyle = { fontSize: 15 }; showReactionPicker: state.messages.showReactionPicker, baseUrl: state.settings.Site_Url || state.server ? state.server.server : '' }), dispatch => ({ - toggleReactionPicker: message => dispatch(toggleReactionPicker(message)) + toggleReactionPicker: message => dispatch(toggleReactionPickerAction(message)) })) @responsive export default class ReactionPicker extends React.Component { @@ -28,40 +29,47 @@ export default class ReactionPicker extends React.Component { }; shouldComponentUpdate(nextProps) { - return nextProps.showReactionPicker !== this.props.showReactionPicker || this.props.window.width !== nextProps.window.width; + const { showReactionPicker, window } = this.props; + return nextProps.showReactionPicker !== showReactionPicker || window.width !== nextProps.window.width; } onEmojiSelected(emoji, shortname) { // standard emojis: `emoji` is unicode and `shortname` is :joy: // custom emojis: only `emoji` is returned with shortname type (:joy:) // to set reactions, we need shortname type - this.props.onEmojiSelected(shortname || emoji); + const { onEmojiSelected } = this.props; + onEmojiSelected(shortname || emoji); } render() { - const { window: { width, height }, showReactionPicker, baseUrl } = this.props; + const { + window: { width, height }, showReactionPicker, baseUrl, toggleReactionPicker + } = this.props; - return (showReactionPicker ? - this.props.toggleReactionPicker()} - onBackButtonPress={() => this.props.toggleReactionPicker()} - animationIn='fadeIn' - animationOut='fadeOut' - > - toggleReactionPicker()} + onBackButtonPress={() => toggleReactionPicker()} + animationIn='fadeIn' + animationOut='fadeOut' > - this.onEmojiSelected(emoji, shortname)} - baseUrl={baseUrl} - /> - - : null + + this.onEmojiSelected(emoji, shortname)} + baseUrl={baseUrl} + /> + + + ) + : null ); } } diff --git a/app/views/RoomView/UploadProgress.js b/app/views/RoomView/UploadProgress.js index f97d09264..306203963 100644 --- a/app/views/RoomView/UploadProgress.js +++ b/app/views/RoomView/UploadProgress.js @@ -1,5 +1,7 @@ import React, { Component } from 'react'; -import { View, Text, StyleSheet, TouchableOpacity, ScrollView } from 'react-native'; +import { + View, Text, StyleSheet, TouchableOpacity, ScrollView +} from 'react-native'; import PropTypes from 'prop-types'; import Icon from 'react-native-vector-icons/MaterialIcons'; import { responsive } from 'react-native-responsive-ui'; @@ -64,7 +66,8 @@ export default class UploadProgress extends Component { this.state = { uploads: [] }; - this.uploads = database.objects('uploads').filtered('rid = $0', this.props.rid); + const { rid } = this.props; + this.uploads = database.objects('uploads').filtered('rid = $0', rid); this.uploads.addListener(this.updateUploads); } @@ -98,11 +101,13 @@ export default class UploadProgress extends Component { } tryAgain = async(item) => { + const { rid } = this.props; + try { database.write(() => { item.error = false; }); - await RocketChat.sendFileMessage(this.props.rid, JSON.parse(JSON.stringify(item))); + await RocketChat.sendFileMessage(rid, JSON.parse(JSON.stringify(item))); } catch (e) { log('UploadProgess.tryAgain', e); } @@ -113,6 +118,8 @@ export default class UploadProgress extends Component { } renderItemContent = (item) => { + const { window } = this.props; + if (!item.error) { return ( [ @@ -123,7 +130,7 @@ export default class UploadProgress extends Component { this.cancelUpload(item)} /> , - + ] ); } diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index d9b097dab..24d0d5870 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -1,14 +1,16 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Text, View, LayoutAnimation, ActivityIndicator, SafeAreaView } from 'react-native'; +import { + Text, View, LayoutAnimation, ActivityIndicator, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import equal from 'deep-equal'; import { RectButton } from 'react-native-gesture-handler'; +import { openRoom as openRoomAction, closeRoom as closeRoomAction, setLastOpen as setLastOpenAction } from '../../actions/room'; +import { toggleReactionPicker as toggleReactionPickerAction, actionsShow as actionsShowAction } from '../../actions/messages'; import LoggedView from '../View'; import { List } from './ListView'; -import { openRoom, closeRoom, setLastOpen } from '../../actions/room'; -import { toggleReactionPicker, actionsShow } from '../../actions/messages'; import database from '../../lib/realm'; import RocketChat from '../../lib/rocketchat'; import Message from '../../containers/message'; @@ -33,11 +35,11 @@ import { iconsMap } from '../../Icons'; showActions: state.messages.showActions, showErrorActions: state.messages.showErrorActions }), dispatch => ({ - openRoom: room => dispatch(openRoom(room)), - setLastOpen: date => dispatch(setLastOpen(date)), - toggleReactionPicker: message => dispatch(toggleReactionPicker(message)), - actionsShow: actionMessage => dispatch(actionsShow(actionMessage)), - close: () => dispatch(closeRoom()) + openRoom: room => dispatch(openRoomAction(room)), + setLastOpen: date => dispatch(setLastOpenAction(date)), + toggleReactionPicker: message => dispatch(toggleReactionPickerAction(message)), + actionsShow: actionMessage => dispatch(actionsShowAction(actionMessage)), + closeRoom: () => dispatch(closeRoomAction()) })) /** @extends React.Component */ export default class RoomView extends LoggedView { @@ -56,12 +58,12 @@ export default class RoomView extends LoggedView { actionMessage: PropTypes.object, toggleReactionPicker: PropTypes.func.isRequired, actionsShow: PropTypes.func, - close: PropTypes.func + closeRoom: PropTypes.func }; constructor(props) { super('RoomView', props); - this.rid = this.props.rid; + this.rid = props.rid; this.rooms = database.objects('subscriptions').filtered('rid = $0', this.rid); this.state = { loaded: false, @@ -74,7 +76,9 @@ export default class RoomView extends LoggedView { } componentWillMount() { - this.props.navigator.setButtons({ + const { navigator } = this.props; + + navigator.setButtons({ rightButtons: [{ id: 'more', testID: 'room-view-header-actions', @@ -88,9 +92,11 @@ export default class RoomView extends LoggedView { } componentDidMount() { + const { navigator } = this.props; + this.updateRoom(); this.rooms.addListener(this.updateRoom); - this.props.navigator.setDrawerEnabled({ + navigator.setDrawerEnabled({ side: 'left', enabled: false }); @@ -98,12 +104,16 @@ export default class RoomView extends LoggedView { } shouldComponentUpdate(nextProps, nextState) { - return !(equal(this.props, nextProps) && equal(this.state, nextState) && this.state.room.ro === nextState.room.ro); + const { room } = this.state; + return !(equal(this.props, nextProps) && equal(this.state, nextState) && room.ro === nextState.room.ro); } componentDidUpdate(prevProps, prevState) { - if (prevState.room.f !== this.state.room.f) { - this.props.navigator.setButtons({ + const { room } = this.state; + const { navigator } = this.props; + + if (prevState.room.f !== room.f) { + navigator.setButtons({ rightButtons: [{ id: 'more', testID: 'room-view-header-actions', @@ -111,32 +121,37 @@ export default class RoomView extends LoggedView { }, { id: 'star', testID: 'room-view-header-star', - icon: this.state.room.f ? iconsMap.star : iconsMap.starOutline + icon: room.f ? iconsMap.star : iconsMap.starOutline }] }); } } componentWillUnmount() { + const { closeRoom } = this.props; this.rooms.removeAllListeners(); this.onEndReached.stop(); - this.props.close(); + closeRoom(); } onNavigatorEvent(event) { + const { room } = this.state; + const { rid, f } = room; + const { navigator } = this.props; + if (event.type === 'NavBarButtonPress') { if (event.id === 'more') { - this.props.navigator.push({ + navigator.push({ screen: 'RoomActionsView', title: I18n.t('Actions'), backButtonTitle: '', passProps: { - rid: this.state.room.rid + rid } }); } else if (event.id === 'star') { try { - RocketChat.toggleFavorite(this.state.room.rid, this.state.room.f); + RocketChat.toggleFavorite(rid, f); } catch (e) { log('toggleFavorite', e); } @@ -151,8 +166,9 @@ export default class RoomView extends LoggedView { } requestAnimationFrame(async() => { + const { room } = this.state; try { - const result = await RocketChat.loadMessagesForRoom({ rid: this.rid, t: this.state.room.t, latest: lastRowData.ts }); + const result = await RocketChat.loadMessagesForRoom({ rid: this.rid, t: room.t, latest: lastRowData.ts }); this.setState({ end: result < 20 }); } catch (e) { log('RoomView.onEndReached', e); @@ -161,14 +177,16 @@ export default class RoomView extends LoggedView { }) onMessageLongPress = (message) => { - this.props.actionsShow(message); + const { actionsShow } = this.props; + actionsShow(message); } onReactionPress = (shortname, messageId) => { + const { actionMessage, toggleReactionPicker } = this.props; try { if (!messageId) { - RocketChat.setReaction(shortname, this.props.actionMessage._id); - return this.props.toggleReactionPicker(); + RocketChat.setReaction(shortname, actionMessage._id); + return toggleReactionPicker(); } RocketChat.setReaction(shortname, messageId); } catch (e) { @@ -177,53 +195,71 @@ export default class RoomView extends LoggedView { }; updateRoom = async() => { + const { navigator, openRoom, setLastOpen } = this.props; + if (this.rooms.length > 0) { const { room: prevRoom } = this.state; const room = JSON.parse(JSON.stringify(this.rooms[0])); this.setState({ room }); if (!prevRoom.rid) { - this.props.navigator.setTitle({ title: room.name }); - this.props.openRoom({ + navigator.setTitle({ title: room.name }); + openRoom({ ...room }); if (room.alert || room.unread || room.userMentions) { - this.props.setLastOpen(room.ls); + setLastOpen(room.ls); } else { - this.props.setLastOpen(null); + setLastOpen(null); } } } else { - this.props.openRoom({ rid: this.rid }); + openRoom({ rid: this.rid }); this.setState({ joined: false }); } } sendMessage = (message) => { + const { setLastOpen } = this.props; LayoutAnimation.easeInEaseOut(); RocketChat.sendMessage(this.rid, message).then(() => { - this.props.setLastOpen(null); + setLastOpen(null); }); }; joinRoom = async() => { + const { rid } = this.props; try { - await RocketChat.joinRoom(this.props.rid); - this.setState({ joined: true }); + await RocketChat.joinRoom(rid); + this.setState({ + joined: true + }); } catch (e) { log('joinRoom', e); } }; - isOwner = () => this.state.room && this.state.room.roles && Array.from(Object.keys(this.state.room.roles), i => this.state.room.roles[i].value).includes('owner'); + isOwner = () => { + const { room } = this.state; + return room && room.roles && Array.from(Object.keys(room.roles), i => room.roles[i].value).includes('owner'); + } - isMuted = () => this.state.room && this.state.room.muted && Array.from(Object.keys(this.state.room.muted), i => this.state.room.muted[i].value).includes(this.props.user.username); + isMuted = () => { + const { room } = this.state; + const { user } = this.props; + return room && room.muted && Array.from(Object.keys(room.muted), i => room.muted[i].value).includes(user.username); + } - isReadOnly = () => this.state.room.ro && this.isMuted() && !this.isOwner(); + isReadOnly = () => { + const { room } = this.state; + return room.ro && this.isMuted() && !this.isOwner(); + } isBlocked = () => { - if (this.state.room) { - const { t, blocked, blocker } = this.state.room; + const { room } = this.state; + + if (room) { + const { t, blocked, blocker } = room; if (t === 'd' && (blocked || blocker)) { return true; } @@ -231,24 +267,31 @@ export default class RoomView extends LoggedView { return false; } - renderItem = (item, previousItem) => ( - - ); + renderItem = (item, previousItem) => { + const { room } = this.state; + const { user } = this.props; + + return ( + + ); + } renderFooter = () => { - if (!this.state.joined) { + const { joined, room } = this.state; + + if (!joined) { return ( {I18n.t('You_are_in_preview_mode')} @@ -263,7 +306,7 @@ export default class RoomView extends LoggedView { ); } - if (this.state.room.archived || this.isReadOnly()) { + if (room.archived || this.isReadOnly()) { return ( {I18n.t('This_room_is_read_only')} @@ -281,21 +324,23 @@ export default class RoomView extends LoggedView { }; renderHeader = () => { - if (!this.state.end) { + const { end } = this.state; + if (!end) { return ; } return null; } renderList = () => { - if (!this.state.loaded) { + const { loaded, end } = this.state; + if (!loaded) { return ; } return ( [ {this.renderList()} - {this.state.room._id && this.props.showActions ? - : - null} - {this.props.showErrorActions ? : null} + {room._id && showActions + ? + : null + } + {showErrorActions ? : null} diff --git a/app/views/RoomsListView/Header/Header.android.js b/app/views/RoomsListView/Header/Header.android.js index 40c2169a4..07f2a5df2 100644 --- a/app/views/RoomsListView/Header/Header.android.js +++ b/app/views/RoomsListView/Header/Header.android.js @@ -1,5 +1,7 @@ import React from 'react'; -import { Text, View, TouchableOpacity, Image, StyleSheet } from 'react-native'; +import { + Text, View, TouchableOpacity, Image, StyleSheet +} from 'react-native'; import PropTypes from 'prop-types'; const styles = StyleSheet.create({ diff --git a/app/views/RoomsListView/Header/Header.ios.js b/app/views/RoomsListView/Header/Header.ios.js index 290aafcf8..e6d52b045 100644 --- a/app/views/RoomsListView/Header/Header.ios.js +++ b/app/views/RoomsListView/Header/Header.ios.js @@ -1,5 +1,7 @@ import React from 'react'; -import { Text, View, TouchableOpacity, Image, StyleSheet } from 'react-native'; +import { + Text, View, TouchableOpacity, Image, StyleSheet +} from 'react-native'; import PropTypes from 'prop-types'; import I18n from '../../../i18n'; diff --git a/app/views/RoomsListView/Search/index.js b/app/views/RoomsListView/Search/index.js index 8d71c85e1..4df82214f 100644 --- a/app/views/RoomsListView/Search/index.js +++ b/app/views/RoomsListView/Search/index.js @@ -3,12 +3,12 @@ import { View, TextInput } from 'react-native'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; -import { setSearch } from '../../../actions/rooms'; +import { setSearch as setSearchAction } from '../../../actions/rooms'; import styles from './styles'; import I18n from '../../../i18n'; @connect(null, dispatch => ({ - setSearch: searchText => dispatch(setSearch(searchText)) + setSearch: searchText => dispatch(setSearchAction(searchText)) })) export default class RoomsListSearchView extends React.Component { static propTypes = { @@ -20,7 +20,8 @@ export default class RoomsListSearchView extends React.Component { } onSearchChangeText(text) { - this.props.setSearch(text.trim()); + const { setSearch } = this.props; + setSearch(text.trim()); } render() { diff --git a/app/views/RoomsListView/ServerDropdown.js b/app/views/RoomsListView/ServerDropdown.js index d6a816b10..11bb12b40 100644 --- a/app/views/RoomsListView/ServerDropdown.js +++ b/app/views/RoomsListView/ServerDropdown.js @@ -1,12 +1,14 @@ import React, { Component } from 'react'; -import { View, Text, Animated, Easing, TouchableWithoutFeedback, TouchableOpacity, FlatList, Image, AsyncStorage } from 'react-native'; +import { + View, Text, Animated, Easing, TouchableWithoutFeedback, TouchableOpacity, FlatList, Image, AsyncStorage +} from 'react-native'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; +import { toggleServerDropdown as toggleServerDropdownAction } from '../../actions/rooms'; +import { selectServerRequest as selectServerRequestAction } from '../../actions/server'; +import { appStart as appStartAction } from '../../actions'; import styles from './styles'; -import { toggleServerDropdown } from '../../actions/rooms'; -import { selectServerRequest } from '../../actions/server'; -import { appStart } from '../../actions'; import database from '../../lib/realm'; import Touch from '../../utils/touch'; import RocketChat from '../../lib/rocketchat'; @@ -19,9 +21,9 @@ const ANIMATION_DURATION = 200; closeServerDropdown: state.rooms.closeServerDropdown, server: state.server.server }), dispatch => ({ - toggleServerDropdown: () => dispatch(toggleServerDropdown()), - selectServerRequest: server => dispatch(selectServerRequest(server)), - appStart: () => dispatch(appStart('outside')) + toggleServerDropdown: () => dispatch(toggleServerDropdownAction()), + selectServerRequest: server => dispatch(selectServerRequestAction(server)), + appStart: () => dispatch(appStartAction('outside')) })) export default class ServerDropdown extends Component { static propTypes = { @@ -56,7 +58,8 @@ export default class ServerDropdown extends Component { } componentDidUpdate(prevProps) { - if (prevProps.closeServerDropdown !== this.props.closeServerDropdown) { + const { closeServerDropdown } = this.props; + if (prevProps.closeServerDropdown !== closeServerDropdown) { this.close(); } } @@ -67,6 +70,7 @@ export default class ServerDropdown extends Component { } close = () => { + const { toggleServerDropdown } = this.props; Animated.timing( this.animatedValue, { @@ -75,16 +79,18 @@ export default class ServerDropdown extends Component { easing: Easing.ease, useNativeDriver: true } - ).start(() => this.props.toggleServerDropdown()); + ).start(() => toggleServerDropdown()); } addServer = () => { + const { navigator, server } = this.props; + this.close(); setTimeout(() => { - this.props.navigator.showModal({ + navigator.showModal({ screen: 'OnboardingView', passProps: { - previousServer: this.props.server + previousServer: server }, navigatorStyle: { navBarHidden: true, @@ -95,14 +101,18 @@ export default class ServerDropdown extends Component { } select = async(server) => { + const { + server: serverProp, selectServerRequest, appStart, navigator + } = this.props; + this.close(); - if (this.props.server !== server) { - this.props.selectServerRequest(server); + if (serverProp !== server) { + selectServerRequest(server); const token = await AsyncStorage.getItem(`${ RocketChat.TOKEN_KEY }-${ server }`); if (!token) { - this.props.appStart(); + appStart(); setTimeout(() => { - this.props.navigator.push({ + navigator.push({ screen: 'NewServerView', backButtonTitle: '', passProps: { @@ -119,32 +129,41 @@ export default class ServerDropdown extends Component { renderSeparator = () => ; - renderServer = ({ item }) => ( - this.select(item.id)} style={styles.serverItem} testID={`rooms-list-header-server-${ item.id }`}> - - {item.iconURL ? - : - - } - - {item.name || item.id} - {item.id} + renderServer = ({ item }) => { + const { server } = this.props; + + return ( + this.select(item.id)} style={styles.serverItem} testID={`rooms-list-header-server-${ item.id }`}> + + {item.iconURL + ? ( + + ) + : ( + + ) + } + + {item.name || item.id} + {item.id} + + {item.id === server ? : null} - {item.id === this.props.server ? : null} - - - ) + + ); + } render() { + const { servers } = this.state; const maxRows = 4; - const initialTop = 41 + (Math.min(this.state.servers.length, maxRows) * ROW_HEIGHT); + const initialTop = 41 + (Math.min(servers.length, maxRows) * ROW_HEIGHT); const translateY = this.animatedValue.interpolate({ inputRange: [0, 1], outputRange: [-initialTop, 0] @@ -171,7 +190,7 @@ export default class ServerDropdown extends Component { item.id} renderItem={this.renderServer} ItemSeparatorComponent={this.renderSeparator} diff --git a/app/views/RoomsListView/SortDropdown.js b/app/views/RoomsListView/SortDropdown.js index b2b8718f5..c44c85049 100644 --- a/app/views/RoomsListView/SortDropdown.js +++ b/app/views/RoomsListView/SortDropdown.js @@ -1,5 +1,7 @@ import React, { Component } from 'react'; -import { View, Text, Animated, Easing, Image, TouchableWithoutFeedback } from 'react-native'; +import { + View, Text, Animated, Easing, Image, TouchableWithoutFeedback +} from 'react-native'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; @@ -46,14 +48,17 @@ export default class Sort extends Component { } componentDidUpdate(prevProps) { - if (prevProps.closeSortDropdown !== this.props.closeSortDropdown) { + const { closeSortDropdown } = this.props; + if (prevProps.closeSortDropdown !== closeSortDropdown) { this.close(); } } setSortPreference = async(param) => { + const { setSortPreference } = this.props; + try { - this.props.setSortPreference(param); + setSortPreference(param); RocketChat.saveSortPreference(param); } catch (e) { log('RoomsListView.setSortPreference', e); @@ -69,18 +74,22 @@ export default class Sort extends Component { } toggleGroupByType = () => { - this.setSortPreference({ groupByType: !this.props.groupByType }); + const { groupByType } = this.props; + this.setSortPreference({ groupByType: !groupByType }); } toggleGroupByFavorites = () => { - this.setSortPreference({ showFavorites: !this.props.showFavorites }); + const { showFavorites } = this.props; + this.setSortPreference({ showFavorites: !showFavorites }); } toggleUnread = () => { - this.setSortPreference({ showUnread: !this.props.showUnread }); + const { showUnread } = this.props; + this.setSortPreference({ showUnread: !showUnread }); } close = () => { + const { close } = this.props; Animated.timing( this.animatedValue, { @@ -89,7 +98,7 @@ export default class Sort extends Component { easing: Easing.ease, useNativeDriver: true }, - ).start(() => this.props.close()); + ).start(() => close()); } render() { @@ -104,6 +113,7 @@ export default class Sort extends Component { const { sortBy, groupByType, showFavorites, showUnread } = this.props; + return ( [ @@ -156,7 +166,7 @@ export default class Sort extends Component { style={[styles.dropdownContainerHeader, styles.sortToggleContainerClose]} > - {I18n.t('Sorting_by', { key: I18n.t(this.props.sortBy === 'alphabetical' ? 'name' : 'activity') })} + {I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })} diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js index e1204edb8..383381d0e 100644 --- a/app/views/RoomsListView/index.js +++ b/app/views/RoomsListView/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Platform, View, FlatList, BackHandler, ActivityIndicator, SafeAreaView, Text, Image, Dimensions, ScrollView, Keyboard } from 'react-native'; +import { + Platform, View, FlatList, BackHandler, ActivityIndicator, SafeAreaView, Text, Image, Dimensions, ScrollView, Keyboard +} from 'react-native'; import { connect } from 'react-redux'; import { isEqual } from 'lodash'; @@ -15,7 +17,7 @@ import I18n from '../../i18n'; import SortDropdown from './SortDropdown'; import ServerDropdown from './ServerDropdown'; import Touch from '../../utils/touch'; -import { toggleSortDropdown } from '../../actions/rooms'; +import { toggleSortDropdown as toggleSortDropdownAction } from '../../actions/rooms'; const ROW_HEIGHT = 70; const SCROLL_OFFSET = 56; @@ -54,7 +56,7 @@ if (Platform.OS === 'android') { showUnread: state.sortPreferences.showUnread, useRealName: state.settings.UI_Use_Real_Name }), dispatch => ({ - toggleSortDropdown: () => dispatch(toggleSortDropdown()) + toggleSortDropdown: () => dispatch(toggleSortDropdownAction()) })) /** @extends React.Component */ export default class RoomsListView extends LoggedView { @@ -114,13 +116,15 @@ export default class RoomsListView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.server && this.props.loadingServer !== nextProps.loadingServer) { + const { loadingServer, searchText } = this.props; + + if (nextProps.server && loadingServer !== nextProps.loadingServer) { if (nextProps.loadingServer) { this.setState({ loading: true }); } else { this.getSubscriptions(); } - } else if (this.props.searchText !== nextProps.searchText) { + } else if (searchText !== nextProps.searchText) { this.search(nextProps.searchText); } } @@ -130,11 +134,15 @@ export default class RoomsListView extends LoggedView { } componentDidUpdate(prevProps) { + const { + sortBy, groupByType, showFavorites, showUnread + } = this.props; + if (!( - (prevProps.sortBy === this.props.sortBy) && - (prevProps.groupByType === this.props.groupByType) && - (prevProps.showFavorites === this.props.showFavorites) && - (prevProps.showUnread === this.props.showUnread) + (prevProps.sortBy === sortBy) + && (prevProps.groupByType === groupByType) + && (prevProps.showFavorites === showFavorites) + && (prevProps.showUnread === showUnread) )) { this.getSubscriptions(); } @@ -158,7 +166,7 @@ export default class RoomsListView extends LoggedView { const { navigator } = this.props; if (event.type === 'NavBarButtonPress') { if (event.id === 'newMessage') { - this.props.navigator.showModal({ + navigator.showModal({ screen: 'NewMessageView', title: I18n.t('New_Message'), passProps: { @@ -183,8 +191,12 @@ export default class RoomsListView extends LoggedView { } getSubscriptions = () => { - if (this.props.server && this.hasActiveDB()) { - if (this.props.sortBy === 'alphabetical') { + const { + server, sortBy, showUnread, showFavorites, groupByType + } = this.props; + + if (server && this.hasActiveDB()) { + if (sortBy === 'alphabetical') { this.data = database.objects('subscriptions').filtered('archived != true && open == true').sorted('name', false); } else { this.data = database.objects('subscriptions').filtered('archived != true && open == true').sorted('roomUpdatedAt', true); @@ -199,7 +211,7 @@ export default class RoomsListView extends LoggedView { let livechat = []; // unread - if (this.props.showUnread) { + if (showUnread) { this.unread = this.data.filtered('archived != true && open == true').sorted('name', false).filtered('(unread > 0 || alert == true)'); unread = this.unread.slice(); setTimeout(() => { @@ -209,7 +221,7 @@ export default class RoomsListView extends LoggedView { this.removeListener(unread); } // favorites - if (this.props.showFavorites) { + if (showFavorites) { this.favorites = this.data.filtered('f == true'); favorites = this.favorites.slice(); setTimeout(() => { @@ -219,7 +231,7 @@ export default class RoomsListView extends LoggedView { this.removeListener(favorites); } // type - if (this.props.groupByType) { + if (groupByType) { // channels this.channels = this.data.filtered('t == $0', 'c'); channels = this.channels.slice(); @@ -241,7 +253,7 @@ export default class RoomsListView extends LoggedView { this.removeListener(this.chats); } else { // chats - if (this.props.showUnread) { + if (showUnread) { this.chats = this.data.filtered('(unread == 0 && alert == false)'); } else { this.chats = this.data; @@ -327,7 +339,8 @@ export default class RoomsListView extends LoggedView { } goRoom = (rid, name) => { - this.props.navigator.push({ + const { navigator } = this.props; + navigator.push({ screen: 'RoomView', title: name, backButtonTitle: '', @@ -358,34 +371,41 @@ export default class RoomsListView extends LoggedView { } toggleSort = () => { + const { toggleSortDropdown } = this.props; + if (Platform.OS === 'ios') { this.scroll.scrollTo({ x: 0, y: SCROLL_OFFSET, animated: true }); } else { this.scroll.scrollTo({ x: 0, y: 0, animated: true }); } setTimeout(() => { - this.props.toggleSortDropdown(); + toggleSortDropdown(); }, 100); } renderHeader = () => { - if (this.state.search.length > 0) { + const { search } = this.state; + if (search.length > 0) { return null; } return this.renderSort(); } - renderSort = () => ( - - - {I18n.t('Sorting_by', { key: I18n.t(this.props.sortBy === 'alphabetical' ? 'name' : 'activity') })} - - - - ) + renderSort = () => { + const { sortBy } = this.props; + + return ( + + + {I18n.t('Sorting_by', { key: I18n.t(sortBy === 'alphabetical' ? 'name' : 'activity') })} + + + + ); + } renderSearchBar = () => { if (Platform.OS === 'ios') { @@ -394,36 +414,41 @@ export default class RoomsListView extends LoggedView { } renderItem = ({ item }) => { - const id = item.rid.replace(this.props.userId, '').trim(); - const { useRealName } = this.props; - return ( this._onPressItem(item)} - testID={`rooms-list-view-item-${ item.name }`} - height={ROW_HEIGHT} - />); + const { useRealName, userId, baseUrl } = this.props; + const id = item.rid.replace(userId, '').trim(); + + return ( + this._onPressItem(item)} + testID={`rooms-list-view-item-${ item.name }`} + height={ROW_HEIGHT} + /> + ); } renderSeparator = () => ; renderSection = (data, header) => { - if (header === 'Unread' && !this.props.showUnread) { + const { showUnread, showFavorites, groupByType } = this.props; + + if (header === 'Unread' && !showUnread) { return null; - } else if (header === 'Favorites' && !this.props.showFavorites) { + } else if (header === 'Favorites' && !showFavorites) { return null; - } else if (['Channels', 'Direct_Messages', 'Private_Groups', 'Livechat'].includes(header) && !this.props.groupByType) { + } else if (['Channels', 'Direct_Messages', 'Private_Groups', 'Livechat'].includes(header) && !groupByType) { return null; - } else if (header === 'Chats' && this.props.groupByType) { + } else if (header === 'Chats' && groupByType) { return null; } if (data.length > 0) { @@ -486,7 +511,9 @@ export default class RoomsListView extends LoggedView { } renderScroll = () => { - if (this.state.loading) { + const { loading } = this.state; + + if (loading) { return ; } @@ -506,22 +533,25 @@ export default class RoomsListView extends LoggedView { render = () => { const { - sortBy, groupByType, showFavorites, showUnread, showServerDropdown, showSortDropdown + sortBy, groupByType, showFavorites, showUnread, showServerDropdown, showSortDropdown, navigator } = this.props; return ( {this.renderScroll()} - {showSortDropdown ? - : - null} - {showServerDropdown ? : null} + {showSortDropdown + ? ( + + ) + : null + } + {showServerDropdown ? : null} ); } diff --git a/app/views/SearchMessagesView/index.js b/app/views/SearchMessagesView/index.js index 65bf5d0cd..7f0c215e2 100644 --- a/app/views/SearchMessagesView/index.js +++ b/app/views/SearchMessagesView/index.js @@ -52,22 +52,26 @@ export default class SearchMessagesView extends LoggedView { } onChangeSearch = debounce((search) => { + const { searching } = this.state; + this.searchText = search; this.limit = 0; - if (!this.state.searching) { + if (!searching) { this.setState({ searching: true }); } this.search(); }, 1000) search = async() => { + const { rid } = this.props; + if (this._cancel) { this._cancel('cancel'); } const cancel = new Promise((r, reject) => this._cancel = reject); let messages = []; try { - const result = await Promise.race([RocketChat.messageSearch(this.searchText, this.props.rid, this.limit), cancel]); + const result = await Promise.race([RocketChat.messageSearch(this.searchText, rid, this.limit), cancel]); messages = result.message.docs.map(message => buildMessage(message)); this.setState({ messages, searching: false, loadingMore: false }); } catch (e) { @@ -91,27 +95,30 @@ export default class SearchMessagesView extends LoggedView { } } - renderItem = ({ item }) => ( - { - try { - await RocketChat.setReaction(emoji, item._id); - this.search(); - this.forceUpdate(); - } catch (e) { - log('SearchMessagesView.onReactionPress', e); - } - }} - /> - ); + renderItem = ({ item }) => { + const { user } = this.props; + return ( + { + try { + await RocketChat.setReaction(emoji, item._id); + this.search(); + this.forceUpdate(); + } catch (e) { + log('SearchMessagesView.onReactionPress', e); + } + }} + /> + ); + } render() { - const { searching, loadingMore } = this.state; + const { searching, loadingMore, messages } = this.state; return ( @@ -126,7 +133,7 @@ export default class SearchMessagesView extends LoggedView { item._id} diff --git a/app/views/SelectedUsersView.js b/app/views/SelectedUsersView.js index de6e006ee..d8de2fcc3 100644 --- a/app/views/SelectedUsersView.js +++ b/app/views/SelectedUsersView.js @@ -1,9 +1,13 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, StyleSheet, SafeAreaView, FlatList, LayoutAnimation, Platform } from 'react-native'; +import { + View, StyleSheet, SafeAreaView, FlatList, LayoutAnimation, Platform +} from 'react-native'; import { connect } from 'react-redux'; -import { addUser, removeUser, reset, setLoading } from '../actions/selectedUsers'; +import { + addUser as addUserAction, removeUser as removeUserAction, reset as resetAction, setLoading as setLoadingAction +} from '../actions/selectedUsers'; import database from '../lib/realm'; import RocketChat from '../lib/rocketchat'; import UserItem from '../presentation/UserItem'; @@ -33,10 +37,10 @@ const styles = StyleSheet.create({ users: state.selectedUsers.users, loading: state.selectedUsers.loading }), dispatch => ({ - addUser: user => dispatch(addUser(user)), - removeUser: user => dispatch(removeUser(user)), - reset: () => dispatch(reset()), - setLoadingInvite: loading => dispatch(setLoading(loading)) + addUser: user => dispatch(addUserAction(user)), + removeUser: user => dispatch(removeUserAction(user)), + reset: () => dispatch(resetAction()), + setLoadingInvite: loading => dispatch(setLoadingAction(loading)) })) /** @extends React.Component */ export default class SelectedUsersView extends LoggedView { @@ -64,19 +68,22 @@ export default class SelectedUsersView extends LoggedView { } componentDidMount() { - this.props.navigator.setDrawerEnabled({ + const { navigator } = this.props; + navigator.setDrawerEnabled({ side: 'left', enabled: false }); } async componentDidUpdate(prevProps) { - const isVisible = await this.props.navigator.screenIsCurrentlyVisible(); + const { navigator, users } = this.props; + const isVisible = await navigator.screenIsCurrentlyVisible(); + if (!isVisible) { return; } - if (prevProps.users.length !== this.props.users.length) { - const { length } = this.props.users; + if (prevProps.users.length !== users.length) { + const { length } = users; const rightButtons = []; if (length > 0) { rightButtons.push({ @@ -85,14 +92,15 @@ export default class SelectedUsersView extends LoggedView { testID: 'selected-users-view-submit' }); } - this.props.navigator.setButtons({ rightButtons }); + navigator.setButtons({ rightButtons }); } } componentWillUnmount() { + const { reset } = this.props; this.updateState.stop(); this.data.removeAllListeners(); - this.props.reset(); + reset(); } async onNavigatorEvent(event) { @@ -100,15 +108,16 @@ export default class SelectedUsersView extends LoggedView { if (event.id === 'create') { const { nextAction, setLoadingInvite, navigator } = this.props; if (nextAction === 'CREATE_CHANNEL') { - this.props.navigator.push({ + navigator.push({ screen: 'CreateChannelView', title: I18n.t('Create_Channel'), backButtonTitle: '' }); } else { + const { rid } = this.props; try { setLoadingInvite(true); - await RocketChat.addUsersToRoom(this.props.rid); + await RocketChat.addUsersToRoom(rid); navigator.pop(); } catch (e) { log('RoomActions Add User', e); @@ -124,6 +133,7 @@ export default class SelectedUsersView extends LoggedView { this.search(text); } + // eslint-disable-next-line react/sort-comp updateState = debounce(() => { this.forceUpdate(); }, 1000); @@ -135,14 +145,19 @@ export default class SelectedUsersView extends LoggedView { }); } - isChecked = username => this.props.users.findIndex(el => el.name === username) !== -1; + isChecked = (username) => { + const { users } = this.props; + return users.findIndex(el => el.name === username) !== -1; + } toggleUser = (user) => { + const { addUser, removeUser } = this.props; + LayoutAnimation.easeInEaseOut(); if (!this.isChecked(user.name)) { - this.props.addUser(user); + addUser(user); } else { - this.props.removeUser(user); + removeUser(user); } } @@ -164,12 +179,14 @@ export default class SelectedUsersView extends LoggedView { ) renderSelected = () => { - if (this.props.users.length === 0) { + const { users } = this.props; + + if (users.length === 0) { return null; } return ( item._id} style={[styles.list, sharedStyles.separatorTop]} contentContainerStyle={{ marginVertical: 5 }} @@ -181,30 +198,36 @@ export default class SelectedUsersView extends LoggedView { ); } - renderSelectedItem = ({ item }) => ( - this._onPressSelectedItem(item)} - testID={`selected-user-${ item.name }`} - baseUrl={this.props.baseUrl} - style={{ paddingRight: 15 }} - /> - ) + renderSelectedItem = ({ item }) => { + const { baseUrl } = this.props; + return ( + this._onPressSelectedItem(item)} + testID={`selected-user-${ item.name }`} + baseUrl={baseUrl} + style={{ paddingRight: 15 }} + /> + ); + } renderSeparator = () => renderItem = ({ item, index }) => { + const { search } = this.state; + const { baseUrl } = this.props; + const name = item.search ? item.name : item.fname; const username = item.search ? item.username : item.name; let style = {}; if (index === 0) { style = { ...sharedStyles.separatorTop }; } - if (this.state.search.length > 0 && index === this.state.search.length - 1) { + if (search.length > 0 && index === search.length - 1) { style = { ...style, ...sharedStyles.separatorBottom }; } - if (this.state.search.length === 0 && index === this.data.length - 1) { + if (search.length === 0 && index === this.data.length - 1) { style = { ...style, ...sharedStyles.separatorBottom }; } return ( @@ -214,29 +237,35 @@ export default class SelectedUsersView extends LoggedView { onPress={() => this._onPressItem(item._id, item)} testID={`select-users-view-item-${ item.name }`} icon={this.isChecked(username) ? 'check' : null} - baseUrl={this.props.baseUrl} + baseUrl={baseUrl} style={style} /> ); } - renderList = () => ( - 0 ? this.state.search : this.data} - extraData={this.props} - keyExtractor={item => item._id} - renderItem={this.renderItem} - ItemSeparatorComponent={this.renderSeparator} - ListHeaderComponent={this.renderHeader} - enableEmptySections - keyboardShouldPersistTaps='always' - /> - ) + renderList = () => { + const { search } = this.state; + return ( + 0 ? search : this.data} + extraData={this.props} + keyExtractor={item => item._id} + renderItem={this.renderItem} + ItemSeparatorComponent={this.renderSeparator} + ListHeaderComponent={this.renderHeader} + enableEmptySections + keyboardShouldPersistTaps='always' + /> + ); + } - render = () => ( - - {this.renderList()} - - - ) + render = () => { + const { loading } = this.props; + return ( + + {this.renderList()} + + + ); + } } diff --git a/app/views/SettingsView/index.js b/app/views/SettingsView/index.js index 016e78952..e8213ad01 100644 --- a/app/views/SettingsView/index.js +++ b/app/views/SettingsView/index.js @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { View, ScrollView, SafeAreaView, Dimensions } from 'react-native'; +import { + View, ScrollView, SafeAreaView, Dimensions +} from 'react-native'; import RNPickerSelect from 'react-native-picker-select'; import { connect } from 'react-redux'; @@ -15,12 +17,12 @@ import Button from '../../containers/Button'; import Loading from '../../containers/Loading'; import { showErrorAlert, showToast } from '../../utils/info'; import log from '../../utils/log'; -import { setUser } from '../../actions/login'; +import { setUser as setUserAction } from '../../actions/login'; @connect(state => ({ userLanguage: state.login.user && state.login.user.language }), dispatch => ({ - setUser: params => dispatch(setUser(params)) + setUser: params => dispatch(setUserAction(params)) })) /** @extends React.Component */ export default class SettingsView extends LoggedView { @@ -51,7 +53,8 @@ export default class SettingsView extends LoggedView { } componentWillMount() { - this.props.navigator.setButtons({ + const { navigator } = this.props; + navigator.setButtons({ leftButtons: [{ id: 'settings', icon: { uri: 'settings', scale: Dimensions.get('window').scale } @@ -60,16 +63,18 @@ export default class SettingsView extends LoggedView { } componentDidMount() { - this.props.navigator.setDrawerEnabled({ + const { navigator } = this.props; + navigator.setDrawerEnabled({ side: 'left', enabled: true }); } onNavigatorEvent(event) { + const { navigator } = this.props; if (event.type === 'NavBarButtonPress') { if (event.id === 'settings') { - this.props.navigator.toggleDrawer({ + navigator.toggleDrawer({ side: 'left' }); } @@ -86,17 +91,16 @@ export default class SettingsView extends LoggedView { } formIsChanged = () => { + const { userLanguage } = this.props; const { language } = this.state; - return !(this.props.userLanguage === language); + return !(userLanguage === language); } submit = async() => { this.setState({ saving: true }); - const { - language - } = this.state; - const { userLanguage } = this.props; + const { language } = this.state; + const { userLanguage, setUser, navigator } = this.props; if (!this.formIsChanged()) { return; @@ -111,14 +115,14 @@ export default class SettingsView extends LoggedView { try { await RocketChat.saveUserPreferences(params); - this.props.setUser({ language: params.language }); + setUser({ language: params.language }); this.setState({ saving: false }); setTimeout(() => { showToast(I18n.t('Preferences_saved')); if (params.language) { - this.props.navigator.setTitle({ title: I18n.t('Settings') }); + navigator.setTitle({ title: I18n.t('Settings') }); } }, 300); } catch (e) { @@ -134,7 +138,9 @@ export default class SettingsView extends LoggedView { } render() { - const { language, languages, placeholder } = this.state; + const { + language, languages, placeholder, saving + } = this.state; return ( - + diff --git a/app/views/SnippetedMessagesView/index.js b/app/views/SnippetedMessagesView/index.js index 442c5859f..e856a0e3a 100644 --- a/app/views/SnippetedMessagesView/index.js +++ b/app/views/SnippetedMessagesView/index.js @@ -1,10 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FlatList, View, Text, SafeAreaView } from 'react-native'; +import { + FlatList, View, Text, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; +import { openSnippetedMessages as openSnippetedMessagesAction, closeSnippetedMessages as closeSnippetedMessagesAction } from '../../actions/snippetedMessages'; import LoggedView from '../View'; -import { openSnippetedMessages, closeSnippetedMessages } from '../../actions/snippetedMessages'; import styles from './styles'; import Message from '../../containers/message'; import RCActivityIndicator from '../../containers/ActivityIndicator'; @@ -19,8 +21,8 @@ import I18n from '../../i18n'; token: state.login.user && state.login.user.token } }), dispatch => ({ - openSnippetedMessages: (rid, limit) => dispatch(openSnippetedMessages(rid, limit)), - closeSnippetedMessages: () => dispatch(closeSnippetedMessages()) + openSnippetedMessages: (rid, limit) => dispatch(openSnippetedMessagesAction(rid, limit)), + closeSnippetedMessages: () => dispatch(closeSnippetedMessagesAction()) })) /** @extends React.Component */ export default class SnippetedMessagesView extends LoggedView { @@ -47,17 +49,20 @@ export default class SnippetedMessagesView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.ready && nextProps.ready !== this.props.ready) { + const { ready } = this.props; + if (nextProps.ready && nextProps.ready !== ready) { this.setState({ loading: false, loadingMore: false }); } } componentWillUnmount() { - this.props.closeSnippetedMessages(); + const { closeSnippetedMessages } = this.props; + closeSnippetedMessages(); } - load() { - this.props.openSnippetedMessages(this.props.rid, this.limit); + load = () => { + const { rid, openSnippetedMessages } = this.props; + openSnippetedMessages(rid, this.limit); } moreData = () => { @@ -79,15 +84,18 @@ export default class SnippetedMessagesView extends LoggedView { ) - renderItem = ({ item }) => ( - - ); + renderItem = ({ item }) => { + const { user } = this.props; + return ( + + ); + } render() { const { loading, loadingMore } = this.state; diff --git a/app/views/StarredMessagesView/index.js b/app/views/StarredMessagesView/index.js index 3fa214b8f..7fad77d34 100644 --- a/app/views/StarredMessagesView/index.js +++ b/app/views/StarredMessagesView/index.js @@ -1,14 +1,16 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { FlatList, View, Text, SafeAreaView } from 'react-native'; +import { + FlatList, View, Text, SafeAreaView +} from 'react-native'; import { connect } from 'react-redux'; import ActionSheet from 'react-native-actionsheet'; +import { openStarredMessages as openStarredMessagesAction, closeStarredMessages as closeStarredMessagesAction } from '../../actions/starredMessages'; +import { toggleStarRequest as toggleStarRequestAction } from '../../actions/messages'; import LoggedView from '../View'; -import { openStarredMessages, closeStarredMessages } from '../../actions/starredMessages'; import styles from './styles'; import Message from '../../containers/message'; -import { toggleStarRequest } from '../../actions/messages'; import RCActivityIndicator from '../../containers/ActivityIndicator'; import I18n from '../../i18n'; @@ -25,9 +27,9 @@ const options = [I18n.t('Unstar'), I18n.t('Cancel')]; token: state.login.user && state.login.user.token } }), dispatch => ({ - openStarredMessages: (rid, limit) => dispatch(openStarredMessages(rid, limit)), - closeStarredMessages: () => dispatch(closeStarredMessages()), - toggleStarRequest: message => dispatch(toggleStarRequest(message)) + openStarredMessages: (rid, limit) => dispatch(openStarredMessagesAction(rid, limit)), + closeStarredMessages: () => dispatch(closeStarredMessagesAction()), + toggleStarRequest: message => dispatch(toggleStarRequestAction(message)) })) /** @extends React.Component */ export default class StarredMessagesView extends LoggedView { @@ -56,13 +58,15 @@ export default class StarredMessagesView extends LoggedView { } componentWillReceiveProps(nextProps) { - if (nextProps.ready && nextProps.ready !== this.props.ready) { + const { ready } = this.props; + if (nextProps.ready && nextProps.ready !== ready) { this.setState({ loading: false, loadingMore: false }); } } componentWillUnmount() { - this.props.closeStarredMessages(); + const { closeStarredMessages } = this.props; + closeStarredMessages(); } onLongPress = (message) => { @@ -73,9 +77,12 @@ export default class StarredMessagesView extends LoggedView { } handleActionPress = (actionIndex) => { + const { message } = this.state; + const { toggleStarRequest } = this.props; + switch (actionIndex) { case STAR_INDEX: - this.props.toggleStarRequest(this.state.message); + toggleStarRequest(message); break; default: break; @@ -83,7 +90,8 @@ export default class StarredMessagesView extends LoggedView { } load = () => { - this.props.openStarredMessages(this.props.rid, this.limit); + const { rid, openStarredMessages } = this.props; + openStarredMessages(rid, this.limit); } moreData = () => { @@ -105,16 +113,19 @@ export default class StarredMessagesView extends LoggedView { ) - renderItem = ({ item }) => ( - - ) + renderItem = ({ item }) => { + const { user } = this.props; + return ( + + ); + } render() { const { loading, loadingMore } = this.state; diff --git a/app/views/Styles.js b/app/views/Styles.js index facf01c60..ac9efeee1 100644 --- a/app/views/Styles.js +++ b/app/views/Styles.js @@ -1,6 +1,8 @@ import { StyleSheet, Platform } from 'react-native'; -import { COLOR_DANGER, COLOR_BUTTON_PRIMARY, COLOR_TEXT, COLOR_SEPARATOR } from '../constants/colors'; +import { + COLOR_DANGER, COLOR_BUTTON_PRIMARY, COLOR_TEXT, COLOR_SEPARATOR +} from '../constants/colors'; export default StyleSheet.create({ container: { diff --git a/app/views/TermsServiceView.js b/app/views/TermsServiceView.js index 1b7f1e6b1..0dca93178 100644 --- a/app/views/TermsServiceView.js +++ b/app/views/TermsServiceView.js @@ -20,9 +20,10 @@ export default class TermsServiceView extends LoggedView { } render() { + const { termsService } = this.props; return ( - + ); } diff --git a/app/views/View.js b/app/views/View.js index ae0a04490..cb6e3a550 100644 --- a/app/views/View.js +++ b/app/views/View.js @@ -13,14 +13,17 @@ export default class extends React.Component { navBarTextColor: isAndroid() ? '#FFF' : undefined, navBarButtonColor: isAndroid() ? '#FFF' : undefined } + static propTypes = { navigator: PropTypes.object } + constructor(name, props) { super(props); NavigationActions.setNavigator(props.navigator); Answers.logContentView(name); } + componentDidCatch = (error, info) => { Answers.logCustom(error, info); } diff --git a/e2e/05-roomslist.spec.js b/e2e/05-roomslist.spec.js index 87537f9fb..28d0449d1 100644 --- a/e2e/05-roomslist.spec.js +++ b/e2e/05-roomslist.spec.js @@ -68,9 +68,9 @@ describe('Rooms list screen', () => { await expect(element(by.id('rooms-list-header-server-dropdown'))).toBeVisible(); await expect(element(by.id('rooms-list-header-server-add'))).toBeVisible(); await element(by.id('rooms-list-header-server-add')).tap(); - await waitFor(element(by.id('new-server-view'))).toBeVisible().withTimeout(2000); - await expect(element(by.id('new-server-view'))).toBeVisible(); - await element(by.text('Close')).tap(); + await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(2000); + await expect(element(by.id('onboarding-view'))).toBeVisible(); + await element(by.id('onboarding-close')).tap(); await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(2000); await expect(element(by.id('rooms-list-view'))).toBeVisible(); }); diff --git a/e2e/08-roomactions.spec.js b/e2e/08-roomactions.spec.js index a15ca65e0..6ed5bea8f 100644 --- a/e2e/08-roomactions.spec.js +++ b/e2e/08-roomactions.spec.js @@ -14,7 +14,8 @@ async function navigateToRoomActions(type) { } else { room = `private${ data.random }`; } - await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toExist().withTimeout(2000); + await element(by.id('rooms-list-view-search')).replaceText(room); + await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toExist().withTimeout(60000); await element(by.id(`rooms-list-view-item-${ room }`)).tap(); await waitFor(element(by.id('room-view'))).toBeVisible().withTimeout(2000); await element(by.id('room-view-header-actions')).tap(); diff --git a/e2e/09-roominfo.spec.js b/e2e/09-roominfo.spec.js index 4d22f0d76..2185833f5 100644 --- a/e2e/09-roominfo.spec.js +++ b/e2e/09-roominfo.spec.js @@ -12,8 +12,9 @@ async function navigateToRoomInfo(type) { } else { room = `private${ data.random }`; } + await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000); await element(by.id('rooms-list-view-search')).replaceText(room); - await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toBeVisible().withTimeout(2000); + await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toBeVisible().withTimeout(60000); await element(by.id(`rooms-list-view-item-${ room }`)).tap(); await waitFor(element(by.id('room-view'))).toBeVisible().withTimeout(2000); await element(by.id('room-view-header-actions')).tap(); diff --git a/e2e/10-changeserver.spec.js b/e2e/10-changeserver.spec.js index 5368cc61d..c64084383 100644 --- a/e2e/10-changeserver.spec.js +++ b/e2e/10-changeserver.spec.js @@ -15,6 +15,8 @@ describe('Change server', () => { await element(by.id('rooms-list-header-server-dropdown-button')).tap(); await waitFor(element(by.id('rooms-list-header-server-dropdown'))).toBeVisible().withTimeout(2000); await element(by.id('rooms-list-header-server-add')).tap(); + await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(60000); + await element(by.id('connect-server-button')).tap(); // Add server await waitFor(element(by.id('new-server-view'))).toBeVisible().withTimeout(60000); await element(by.id('new-server-view-input')).replaceText(data.alternateServer); diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj index 75f91dfcb..4dc7cc7e4 100644 --- a/ios/RocketChatRN.xcodeproj/project.pbxproj +++ b/ios/RocketChatRN.xcodeproj/project.pbxproj @@ -42,7 +42,6 @@ 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; 2DCD954D1E0B4F2C00145EB5 /* RocketChatRNTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RocketChatRNTests.m */; }; 334A709FA3B448BC9A8563F6 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2F5CA2CDA66D46E99B8C184A /* MaterialIcons.ttf */; }; - 33647F7997A2493E9E1343B3 /* libRNZeroconf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BAAE4B947F5D44959F0A9D5A /* libRNZeroconf.a */; }; 435AB658888F41D69A230652 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9A1E1766CCB84C91A62BD5A6 /* Foundation.ttf */; }; 4529B474417149059A180775 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1B0746E708284151B8AD1198 /* Ionicons.ttf */; }; 50046CB6BDA69B9232CF66D9 /* libPods-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C235DC7B31A4D1578EDEF219 /* libPods-RocketChatRN.a */; }; @@ -60,7 +59,6 @@ 7A8DEB5A20ED0BEC00C5DCE4 /* libRNNotifications.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A8DEB5220ED0BDE00C5DCE4 /* libRNNotifications.a */; }; 7AFB806E205AE65700D004E7 /* libRCTToast.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7AFB804C205AE63100D004E7 /* libRCTToast.a */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - 8A159EDB97C44E52AF62D69C /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA50CE47374C4C35BE6D9D58 /* libRNSVG.a */; }; 8ECBD927DDAC4987B98E102E /* libRCTVideo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 20CE3E407E0D4D9E8C9885F2 /* libRCTVideo.a */; }; 95E57ADEB9A0487791D2C50E /* libRNGestureHandler.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58E5009FCA8D40E59303C3DD /* libRNGestureHandler.a */; }; AE5D35882AE04CC29630FB3D /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = DC6EE17B5550465E98C70FF0 /* Entypo.ttf */; }; @@ -70,7 +68,6 @@ B8C682AC1FD8511D003A12C8 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1B0746E708284151B8AD1198 /* Ionicons.ttf */; }; B8C682AD1FD8511E003A12C8 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1B0746E708284151B8AD1198 /* Ionicons.ttf */; }; B8C682AE1FD8511F003A12C8 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1B0746E708284151B8AD1198 /* Ionicons.ttf */; }; - B8E79AF41F3CD167005B464F /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB61A68108700A75B9A /* Info.plist */; }; BAB7DC22804246F3923A1833 /* libFastImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD2E2837F110483CA29EE0D4 /* libFastImage.a */; }; BED2B77AA660460E8BC9F8E0 /* libRNFetchBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6533FB90166345D29F1B91C0 /* libRNFetchBlob.a */; }; CBD0E0A35B174C4DBFED3B31 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E528DE3A405E43B4A37ABA68 /* Zocial.ttf */; }; @@ -255,13 +252,6 @@ remoteGlobalIDString = 2D2A28201D9B03D100D4039D; remoteInfo = "RCTAnimation-tvOS"; }; - 607C68951F36522C0096975F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0DE485BD1BDD49E400020698; - remoteInfo = RNZeroconf; - }; 607D610C1F325B7E00F639C4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; @@ -486,20 +476,6 @@ remoteGlobalIDString = 5DBEB1501B18CEA900B34395; remoteInfo = RNVectorIcons; }; - B8E79AC81F3CCCA7005B464F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0CF68AC11AF0540F00FF9E5C; - remoteInfo = RNSVG; - }; - B8E79ACA1F3CCCA7005B464F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = B8E79AA21F3CCCA6005B464F; - remoteInfo = "RNSVG-tvOS"; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -551,7 +527,6 @@ 2F5CA2CDA66D46E99B8C184A /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; 3B696712EE2345A59F007A88 /* libRNImagePicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNImagePicker.a; sourceTree = ""; }; 4019A5E1911B4C61944FBCEC /* SafariViewManager.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = SafariViewManager.xcodeproj; path = "../node_modules/react-native-safari-view/SafariViewManager.xcodeproj"; sourceTree = ""; }; - 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNZeroconf.xcodeproj; path = "../node_modules/react-native-zeroconf/ios/RNZeroconf.xcodeproj"; sourceTree = ""; }; 58E5009FCA8D40E59303C3DD /* libRNGestureHandler.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNGestureHandler.a; sourceTree = ""; }; 5A0EEFAF8AB14F5B9E796CDD /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; 5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = ""; }; @@ -587,7 +562,6 @@ C01CD6D4653143EEB5100C3A /* libRNI18n-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNI18n-tvOS.a"; sourceTree = ""; }; C21010507E5B4B37BA0E4C9D /* RNAudio.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNAudio.xcodeproj; path = "../node_modules/react-native-audio/ios/RNAudio.xcodeproj"; sourceTree = ""; }; C235DC7B31A4D1578EDEF219 /* libPods-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNSVG.xcodeproj; path = "../node_modules/react-native-svg/ios/RNSVG.xcodeproj"; sourceTree = ""; }; DA50CE47374C4C35BE6D9D58 /* libRNSVG.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNSVG.a; sourceTree = ""; }; DC6EE17B5550465E98C70FF0 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; DF26CC845883492D8AC8869B /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = ""; }; @@ -631,10 +605,8 @@ EF736EF520A64AE8820E684A /* libRealmReact.a in Frameworks */, 0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */, 24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */, - 33647F7997A2493E9E1343B3 /* libRNZeroconf.a in Frameworks */, BED2B77AA660460E8BC9F8E0 /* libRNFetchBlob.a in Frameworks */, 77C35F50C01C43668188886C /* libRNVectorIcons.a in Frameworks */, - 8A159EDB97C44E52AF62D69C /* libRNSVG.a in Frameworks */, 8ECBD927DDAC4987B98E102E /* libRCTVideo.a in Frameworks */, 7A32C247206D791D001C80E9 /* Crashlytics.framework in Frameworks */, 2C800DF680F8451599E80AF1 /* libSafariViewManager.a in Frameworks */, @@ -808,14 +780,6 @@ name = Products; sourceTree = ""; }; - 607C68741F36522C0096975F /* Products */ = { - isa = PBXGroup; - children = ( - 607C68961F36522C0096975F /* libRNZeroconf.a */, - ); - name = Products; - sourceTree = ""; - }; 607D60ED1F325B7D00F639C4 /* Products */ = { isa = PBXGroup; children = ( @@ -938,9 +902,7 @@ 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, 5A8684E7C27E426C9206E980 /* RealmReact.xcodeproj */, - 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */, 22A8B76C8EBA443BB97CE82D /* RNVectorIcons.xcodeproj */, - C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */, AD0379F2BCE84C968538CDAF /* RCTVideo.xcodeproj */, 4019A5E1911B4C61944FBCEC /* SafariViewManager.xcodeproj */, C21010507E5B4B37BA0E4C9D /* RNAudio.xcodeproj */, @@ -1072,15 +1034,6 @@ name = Products; sourceTree = ""; }; - B8E79AC41F3CCCA7005B464F /* Products */ = { - isa = PBXGroup; - children = ( - B8E79AC91F3CCCA7005B464F /* libRNSVG.a */, - B8E79ACB1F3CCCA7005B464F /* libRNSVG-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; BB4B591B5FC44CD9986DB2A6 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -1314,18 +1267,10 @@ ProductGroup = 7A8DEB1C20ED0BDE00C5DCE4 /* Products */; ProjectRef = 7A8DEB1B20ED0BDE00C5DCE4 /* RNNotifications.xcodeproj */; }, - { - ProductGroup = B8E79AC41F3CCCA7005B464F /* Products */; - ProjectRef = C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */; - }, { ProductGroup = B8E79A8A1F3CCC6C005B464F /* Products */; ProjectRef = 22A8B76C8EBA443BB97CE82D /* RNVectorIcons.xcodeproj */; }, - { - ProductGroup = 607C68741F36522C0096975F /* Products */; - ProjectRef = 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */; - }, { ProductGroup = B810DF8D203B10480010C331 /* Products */; ProjectRef = 4019A5E1911B4C61944FBCEC /* SafariViewManager.xcodeproj */; @@ -1507,13 +1452,6 @@ remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 607C68961F36522C0096975F /* libRNZeroconf.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRNZeroconf.a; - remoteRef = 607C68951F36522C0096975F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; 607D610D1F325B7E00F639C4 /* libthird-party.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1738,20 +1676,6 @@ remoteRef = B8E79A901F3CCC6D005B464F /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - B8E79AC91F3CCCA7005B464F /* libRNSVG.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRNSVG.a; - remoteRef = B8E79AC81F3CCCA7005B464F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - B8E79ACB1F3CCCA7005B464F /* libRNSVG-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRNSVG-tvOS.a"; - remoteRef = B8E79ACA1F3CCCA7005B464F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ @@ -1781,7 +1705,6 @@ 2684481F67844BE398381564 /* Octicons.ttf in Resources */, D6408D9E4A864FF6BA986857 /* SimpleLineIcons.ttf in Resources */, CBD0E0A35B174C4DBFED3B31 /* Zocial.ttf in Resources */, - B8E79AF41F3CD167005B464F /* Info.plist in Resources */, 0AC2050A2CA1485DAC130425 /* Feather.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1818,7 +1741,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n/bin/sh \"${PROJECT_DIR}/RocketChatRN/Fabric.sh\""; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n/bin/sh \"${PROJECT_DIR}/RocketChatRN/Fabric.sh\"\n"; }; 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { isa = PBXShellScriptBuildPhase; @@ -1964,9 +1887,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", @@ -2014,9 +1935,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", @@ -2075,9 +1994,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/**", @@ -2125,9 +2042,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/**", @@ -2172,9 +2087,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", @@ -2231,9 +2144,7 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)/../node_modules/realm/src/**", - "$(SRCROOT)/../node_modules/react-native-zeroconf/ios/RNZeroconf", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - "$(SRCROOT)/../node_modules/react-native-svg/ios/**", "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", diff --git a/ios/RocketChatRN.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/RocketChatRN.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..949b67898 --- /dev/null +++ b/ios/RocketChatRN.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + BuildSystemType + Original + + diff --git a/package-lock.json b/package-lock.json index dc7687e15..6e02d1e72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,306 +62,799 @@ } }, "@babel/core": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.47.tgz", - "integrity": "sha512-7EIuAX0UVnCgZ0E9tz9rFK0gd+aovwMA9bul+dnkmBQYLrJdas2EHMUSmaK67i1cyZpvgVvXhHtXJxC7wo3rlQ==", - "dev": true, + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.0.tgz", + "integrity": "sha512-9EWmD0cQAbcXSc+31RIoYgEHx3KQ2CCSMDBhnXrShWvo45TMw+3/55KVxlhkG53kw9tl87DqINgHDgFVhZJV/Q==", "requires": { - "@babel/code-frame": "7.0.0-beta.47", - "@babel/generator": "7.0.0-beta.47", - "@babel/helpers": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "babylon": "7.0.0-beta.47", + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helpers": "^7.1.0", + "@babel/parser": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0", "convert-source-map": "^1.1.0", "debug": "^3.1.0", "json5": "^0.5.0", - "lodash": "^4.17.5", - "micromatch": "^2.3.11", + "lodash": "^4.17.10", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", - "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "7.0.0-beta.47" + "@babel/highlight": "^7.0.0" } }, - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", - "dev": true + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==" + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "@babel/generator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.47.tgz", - "integrity": "sha512-fJP+9X+gqgTTZzTqrKJHwebPwt6S/e/4YuyRyKyWHAIirGgUwjRoZgbFci24wwGYMJW7nlkCSwWG7QvCVsG0eg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz", + "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==", "requires": { - "@babel/types": "7.0.0-beta.47", + "@babel/types": "^7.0.0", "jsesc": "^2.5.1", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "source-map": "^0.5.0", "trim-right": "^1.0.1" }, "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, "jsesc": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, "@babel/helper-annotate-as-pure": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz", - "integrity": "sha512-Pjxb/PrxyKWc7jcAXlawvNAQMxxY+tSSNC5wxJstJjpO10mocmGzBOqNYjxdvVhMb3d0BEPQ8mR+D65fFpZ+TA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "requires": { - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz", - "integrity": "sha512-nv8d6TcDBb1CJMQzwab/e0rqyqoP9d2AQBjr4GdSiVRpJX4aiLEiLBm2XprdEb/sVIRmmBnVxPXJaHDsS/K2fw==", - "requires": { - "@babel/helper-explode-assignable-expression": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.47.tgz", - "integrity": "sha512-oBGX/MyT4kNGuINK2k/KLHD77Ih1oTROtoxnV3uAPS9rLYhmZn3W8qy2L4bbyMwQ89nVSM427b0bTTXUEEReXA==", - "requires": { - "@babel/types": "7.0.0-beta.47", - "esutils": "^2.0.0" - } - }, - "@babel/helper-call-delegate": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz", - "integrity": "sha512-Rx9TRmCCEP0pWau9gfR6ubcbbX3nVc4ImNY143ftC70jrKdSv5rS20yz2cmCilDzhexwGZQ3PFwOLKe3C/5aEg==", - "requires": { - "@babel/helper-hoist-variables": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-define-map": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz", - "integrity": "sha512-pLB9RY7GZKcc/frzgfDY/HwdqxWPe60qMAvNUef1V1bDZ8i4AUgxAANgltFzj61t100WGhqaS0xGkALD+9VA+g==", - "requires": { - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "lodash": "^4.17.5" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz", - "integrity": "sha512-1mwk27zmhSuMUcVWxw5ZKiPYfuWXviZNqgA4OvFBloPf9R+dKDhNgP2uUrkHh68ltVVc3Bup1nsbd/2KM5AxEw==", - "requires": { - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz", - "integrity": "sha512-0LSvt95XCYaOrDA5K68KkTyldKXizDwBnKACdYzQszp1GdbtzmSeGwFU5Ecw86fU6bkYXtDvkFTOQwk/WQSJPw==", - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz", - "integrity": "sha512-63j0i3YUW8CO//uQc3ACffJdIlYcIlysuHjMF0yzQhqKoQ/CUPv0hf3nBwdRGjiWrr3JcL6++NF4XmXdwSU+fA==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz", - "integrity": "sha512-5BcKFhyzrsInlrfO/tGoe6khUuJzGfROD7oozF/5MWsKo/c3gVJfQ5y83lZ4XoTKJt/x4PQlLU0aHd/SJpYONA==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz", - "integrity": "sha512-gpipslnZw2hcVGADUtqQII9KF8FPpRZsVUXwKP/0EnWwtujRFSVL+u2Fh+VXODRAxFmTLo6eGcOr/Vfan0MqYw==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz", - "integrity": "sha512-Rk43Ty+a6npu9znK22IqFlseStRGWxEHi2cjmLbbi63VGiseofdUtIJI65F9MTCuMTXAX7VbY/ghef1Jp5qpvw==", - "requires": { - "@babel/types": "7.0.0-beta.47", - "lodash": "^4.17.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz", - "integrity": "sha512-CziMe30ZunAhe6j05oNOFOg7im1lcv3dYuMxrwBYVe9YdP4NHPU7a1wrDBUhaPmyqTIZDwGnFne7k1KP79SeGQ==", - "requires": { - "@babel/helper-module-imports": "7.0.0-beta.47", - "@babel/helper-simple-access": "7.0.0-beta.47", - "@babel/helper-split-export-declaration": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "lodash": "^4.17.5" - }, - "dependencies": { - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz", - "integrity": "sha512-jx8GmxryT6Qy4+24W6M6TnVL9T8bxqdyg5UKHjxBdw0Y2Sano1n0WphUS2seuOugn04W2ZQLqGc0ut8nGe/taA==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz", - "integrity": "sha512-NhnGhjwrhzGas4A/PoBDEtEPCGJHrzhaT6qGmo1hmkA2orG4UNi7KENC38DhJII0n2oUrKUuzTwgCvxKOTiHbw==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz", - "integrity": "sha512-GR67o8boOKVJRKM5Nhk7oVEHpxYy8R00lwu0F82WxxBH+iiT26DqW1e/4w/mo7Bdn1A6l0pNaOlNk1PdM2Hgag==" - }, - "@babel/helper-regex": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz", - "integrity": "sha512-dafidvVkjJP5AIWkJspV+7RGj1jeNts0qYvlmVzqAGb6BmQzEldJr6ZPzrmlpW/AW1YJGdw7br2yiwvlCRqDvQ==", - "requires": { - "lodash": "^4.17.5" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.47.tgz", - "integrity": "sha512-Nmj3lUHQscD160asav2bZ3sMIjGwGY9r6Vrriy9TqH7bmaClKUKUs5Twv0htFWfOKNFLEeY/MaqiAXylr1GS2w==", - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.47", - "@babel/helper-wrap-function": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-replace-supers": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz", - "integrity": "sha512-yf2JAD1+xNTjavqazqknRgPfd6MbGfvfIcAkxWsPURynAwOMSs4zThED8ImT2d5a97rGPysRJcq1jNh2L0WYxg==", - "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0-beta.47", - "@babel/helper-optimise-call-expression": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "@babel/helper-simple-access": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz", - "integrity": "sha512-sd2t3QDKjd+hHkJKaC2AX39l6oIil1N548oMZAtV5YHlVGoWWkAVGnPMxRg7ICEjIftCU3ZI6UeaogyEhF8t7Q==", - "requires": { - "@babel/template": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "lodash": "^4.17.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", - "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.44" + "@babel/types": "^7.0.0" }, "dependencies": { "@babel/types": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", - "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", "requires": { "esutils": "^2.0.2", - "lodash": "^4.2.0", + "lodash": "^4.17.10", "to-fast-properties": "^2.0.0" } }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0.tgz", + "integrity": "sha512-9HdU8lrAc4FUZOy+y2w//kUhynSpkGIRYDzJW1oKJx7+v8m6UEAbAd2tSvxirsq2kJTXJZZS6Eo8FnUDUH0ZWw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz", + "integrity": "sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw==", + "requires": { + "@babel/types": "^7.0.0", + "esutils": "^2.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0.tgz", + "integrity": "sha512-HdYG6vr4KgXHK0q1QRZ8guoYCF5rZjIdPlhcVY+j4EBK/FDR+cXRM5/6lQr3NIWDc7dO1KfgjG5rfH6lM89VBw==", + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-define-map": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0.tgz", + "integrity": "sha512-acbCxYS9XufWxsBiclmXMK1CFz7en/XSYvHFcbb3Jb8BqjFEBrA46WlIsoSQTRG/eYN60HciUnzdyQxOZhrHfw==", + "requires": { + "@babel/helper-function-name": "^7.0.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0.tgz", + "integrity": "sha512-5gLPwdDnYf8GfPsjS+UmZUtYE1jaXTFm1P+ymGobqvXbA0q3ANgpH60+C6zDrRAWXYbQXYvzzQC/r0gJVNNltQ==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz", + "integrity": "sha512-Zo+LGvfYp4rMtz84BLF3bavFTdf8y4rJtMPTe2J+rxYmnDOIeH8le++VFI/pRJU+rQhjqiXxE4LMaIau28Tv1Q==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0.tgz", + "integrity": "sha512-QdwmTTlPmT7TZcf30dnqm8pem+o48tVt991xXogE5CQCwqSpWKuzH2E9v8VWeccQ66a6/CmrLZ+bwp66JYeM5A==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.0.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + }, + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "requires": { + "lodash": "^4.17.10" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==" + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0.tgz", + "integrity": "sha512-fsSv7VogxzMSmGch6DwhKHGsciVXo7hbfhBgH9ZrgJMXKMjO7ASQTUfbVL7MU1uCfviyqjucazGK7TWPT9weuQ==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-simple-access": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0.tgz", + "integrity": "sha512-CNeuX52jbQSq4j1n+R+21xrjbTjsnXa9n1aERbgHRD/p9h4Udkxr1n24yPMQmnTETHdnQDvkVSYWFw/ETAymYg==", + "requires": { + "@babel/template": "^7.0.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "requires": { + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, "@babel/helper-wrap-function": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.47.tgz", - "integrity": "sha512-SAasvh80Mz5q9x15dqH6z8jpM0WTBmxQSNZATSwJwhmWdme6r2gxpufIMr8LwQIJHmXmgNLmvh0zdWSbE/PR4Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", + "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", "requires": { - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==" + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } } }, "@babel/helpers": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.47.tgz", - "integrity": "sha512-uWk7gIua2COEWLwZGxfF5Wq1bgXOt1V6xzWxqeFznrA6F1TUPiAhkK5zORiZEa5RAILp6Mswsn3xFjDyCpp3rQ==", - "dev": true, + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.0.tgz", + "integrity": "sha512-V1jXUTNdTpBn37wqqN73U+eBpzlLHmxA4aDaghJBggmzly/FpIJMHXse9lgdzQQT4gs5jZ5NmYxOL8G3ROc29g==", "requires": { - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==" + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } } }, "@babel/highlight": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.47.tgz", - "integrity": "sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -382,182 +875,433 @@ "supports-color": "^5.3.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } } } }, + "@babel/parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0.tgz", + "integrity": "sha512-RgJhNdRinpO8zibnoHbzTTexNs4c8ROkXFBanNDZTLHjwbdLk8J5cJSKulx/bycWTLYmKVNCkxRtVCoJnqPk+g==" + }, "@babel/plugin-external-helpers": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.0.0-beta.47.tgz", - "integrity": "sha512-R45V1hsr5DQIbhJajyQm5p2KS+qvmAqkEytP+DhrrEUrx0J1OfqWKZPNDiPe3xdLJtgTNZaDBq1iqfs0gnfslg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.0.0.tgz", + "integrity": "sha512-tZKTMdhZvTy0KCEX5EGQQm1RHr7jUa36q/yax1baEA0yZapVYmu10yW7LTqijITgSq416gPVjrcexiA6y4pJlA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz", - "integrity": "sha512-6yuCiF+ZZHPLgAa+0a6/teNeAMsWqY6AVtZA4NhCWnwP4OH0JrRaY7rwvFCJSqNGurf8rF65W9IucM/l0+HOCg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0.tgz", + "integrity": "sha512-mVgsbdySh6kuzv4omXvw0Kuh+3hrUrQ883qTCf75MqfC6zctx2LXrP3Wt+bbJmB5fE5nfhf/Et2pQyrRy4j0Pg==", "requires": { - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-replace-supers": "7.0.0-beta.47", - "@babel/plugin-syntax-class-properties": "7.0.0-beta.47" + "@babel/helper-function-name": "^7.0.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-proposal-decorators": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.47.tgz", - "integrity": "sha512-sI+cO1okrlOyV4I63HDXf/SFsCr492HLjzNsMsd7Lk9WrViA+eQIboIiI9wHicozdgD1WrpZGJTjz7Z3xwl2Qw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.0.tgz", + "integrity": "sha512-/ljbdikH1lPjylMlvq9yQcrwFI9Z0zstHoihZ4/4BKuv+Fl9uQoY9E3wxv12wkQ9FPBg7JYNt7uRl3Kiz0Wnrw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-decorators": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", + "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.0.tgz", + "integrity": "sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg==", + "dev": true + }, + "@babel/template": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.0.tgz", + "integrity": "sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/traverse": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", + "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "debug": "^3.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0.tgz", + "integrity": "sha512-cWhkx6SyjZ4caFOanoPmDNgQCuYYTmou4QXy886JsyLTw/vhWQbop2gLKsWyyswrJkKTB7fSNxVYbP/oEsoySA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.0.0.tgz", + "integrity": "sha512-QIN3UFo1ul4ruAsjIqK43PeXedo1qY74zeGrODJl1KfCGeMc6qJC4rb5Ylml/smzxibqsDeVZGH+TmWHCldRQQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz", - "integrity": "sha512-ujUjQUyTxUWHfixRD7Y5Nm8VCgHSf6YgbM37LEnojKp5lPahZO42qJfDty+Kh0tEanpI5H8BLPkJbFSzx6TNEw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0-beta.47.tgz", - "integrity": "sha512-5jlVmdC1Lv874h2553xAp50jVv3L/23KksOLUZdF/9+ZdbAzOlhX6spHiVy/jjfU9G1MFZtZTlxhV5roGkqZvg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0.tgz", + "integrity": "sha512-7x8HLa71OzNiofbQUVakS0Kmg++6a+cXNfS7QKHbbv03SuSaumJyaWsfNgw+T7aqrJlqurYpZqrkPgXu0iZK0w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-optional-chaining": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-class-properties": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz", - "integrity": "sha512-vLoAuLSjHSenX3TQmri6ttQWZp3rEtGcRp4LgYEBQ012fN5h+KmcssvkCAqm6V6ozS5KzUWpBlZ6t7YhZG6oBw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz", + "integrity": "sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-decorators": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.47.tgz", - "integrity": "sha512-Lv10BM3C+0Ki53lI7T9xZsSsgzQqfoQZq4pZj0F6tkK54E5BBSFfUxGavRE43CFXHbK0Hd9uMqmpGWPGtCvgAw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz", + "integrity": "sha512-uQvRSbgQ0nQg3jsmIixXXDCgSpkBolJ9X7NYThMKCcjvE8dN2uWJUzTUNNAeuKOjARTd+wUQV0ztXpgunZYKzQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.47.tgz", - "integrity": "sha512-J2y7RAH2NwQ+ahJahj2eS1PqS2NWNWTDaEibqrE55VTJU7nPL8AhthRwIQfQkCH+8UIeL/T3Jh1iHIRkvJ6dXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz", + "integrity": "sha512-Gt9xNyRrCHCiyX/ZxDGOcBnlJl0I3IWicpZRC4CdC0P5a/I07Ya2OAMEBU+J7GmRFVmIetqEYRko6QYRuKOESw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0.tgz", + "integrity": "sha512-HNnjg/fFFbnuLAqr/Ocp1Y3GB4AjmXcu1xxn3ql3bS2kGrB/qi+Povshb8i3hOkE5jNozzh8r/0/lq1w8oOWbQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-flow": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.47.tgz", - "integrity": "sha512-+3ZLKNV8tSDnTWL4QRNx5uZB/hUzY71WcgCwoXWy+8ma7EjZ3e3vbR69VR8dJwG1DqGsug6ZzM+afR0G4gKgPA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz", + "integrity": "sha512-zGcuZWiWWDa5qTZ6iAnpG0fnX/GOu49pGR5PFvkQ9GmKNaSphXQnlNXh/LG20sqWtNrx/eB6krzfEzcwvUyeFA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-jsx": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz", - "integrity": "sha512-5scuJzIYZY8M+A1ra8mcKANIwB5TtsRD6Aw94xZxfvnjhhVMFR5RYE9HshVlBrZVY+r3cJDNIQLJMC/fGJHImA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz", + "integrity": "sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.0.0-beta.47.tgz", - "integrity": "sha512-o0v9WRQwatyMSGoPIdYoK8VTDrjdHU3MQgHLcbveetueKHZGYN3MhZvkCFa86l5WKUGDF81FOk/mta/7QuDI9g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.0.0.tgz", + "integrity": "sha512-oAJmMsAvTSIk9y0sZdU2S/nY44PEUuHN7EzNDMgbuR4e/OwyfR9lSmoBJBZ2lslFZIqhksrTt4i+av7uKfNYDw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz", - "integrity": "sha512-UOGQCmzvNlZMQOuys7xPiTa2EjTT3xHuhUghcdJnYikqGV43obpIIaP+VDCWPvIT8g0QDIvmRWx5UefvkWXN+w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", + "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", + "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-syntax-optional-chaining": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0-beta.47.tgz", - "integrity": "sha512-lt6JV/D7QeAEf3qqUT4JTPkbU6vNCfeMW7BB7JD+HYivITkmXuGIVl7w4JrRB9LkfjkYE5vgiz3Nc733AD7v8w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0.tgz", + "integrity": "sha512-QXedQsZf8yua1nNrXSePT0TsGSQH9A1iK08m9dhCMdZeJaaxYcQfXdgHWVV6Cp7WE/afPVvSKIsAHK5wP+yxDA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0.tgz", + "integrity": "sha512-5fxmdqiAQVQTIS+KSvYeZuTt91wKtBTYi6JlIkvbQ6hmO+9fZE81ezxmMiFMIsxE7CdRSgzn7nQ1BChcvK9OpA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz", - "integrity": "sha512-xiU+7RJAsqx+iZqWSQQWBu9ZDTruWimkg4puDSdRVfEwgZQdOtiU2LuO0+xGFyitJPHkKuje0WvK1tFu1dmxCw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz", + "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.47.tgz", - "integrity": "sha512-/TXK3v6ipvmhMO81Y2Vjc7RYROkS2PcmRc+kvmU3CWA7r5I73KWg10UEW/fpWqCuoTCHHHXu1ZcZ5u+nduJeFw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", + "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", "requires": { - "@babel/helper-module-imports": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.47" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz", - "integrity": "sha512-V/u3Zdy40KjVQeyYUaQnCGiHQbRNJoc6IEtNDERltuW9vYPHS1n6YGc+EHKi8JVYT4kE6UHOjD+BrbCCV4kjRw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz", + "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "lodash": "^4.17.5" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-classes": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz", - "integrity": "sha512-hzW/jL6TPBMHJXeXwzuxMN0PFAfjVD0UzATHrFSejY5A7SvhWWrv1cZ3K0/SzCXJ9LpMdxCNiREvVjeD/Tyx2g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0.tgz", + "integrity": "sha512-8LBm7XsHQiNISEmb+ejBiHi1pUihwUf+lrIwyVsXVbQ1vLqgkvhgayK5JnW3WXvQD2rmM0qxFAIyDE5vtMem2A==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.47", - "@babel/helper-define-map": "7.0.0-beta.47", - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/helper-optimise-call-expression": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-replace-supers": "7.0.0-beta.47", - "@babel/helper-split-export-declaration": "7.0.0-beta.47", + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.0.0", + "@babel/helper-function-name": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.0.0", + "@babel/helper-split-export-declaration": "^7.0.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz", - "integrity": "sha512-jx8GmxryT6Qy4+24W6M6TnVL9T8bxqdyg5UKHjxBdw0Y2Sano1n0WphUS2seuOugn04W2ZQLqGc0ut8nGe/taA==", - "requires": { - "@babel/types": "7.0.0-beta.47" - } + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" }, "globals": { "version": "11.7.0", @@ -567,131 +1311,222 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz", - "integrity": "sha512-V78qyzmjj4aq/tjpkMFbV5gPtrx7xdclW1Rn6vV9hIwMSMbtstYEXF4msy614MofvYj6gYbPbNfyhXFIUvz/xw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz", + "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-destructuring": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz", - "integrity": "sha512-3AaXC9H7qPybJbSs/QMhhj9EZF9MYrb/HRytwki1tckaYifqCJquENIZxDAYmwsWIGIHiq34WqwPRMIsz/b5uQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz", + "integrity": "sha512-Fr2GtF8YJSXGTyFPakPFB4ODaEKGU04bPsAllAIabwoXdFrPxL0LVXQX5dQWoxOjjgozarJcC9eWGsj0fD6Zsg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz", - "integrity": "sha512-vyGG3kLIXpMuaPL485aqowdWFrxCxXtbzMXy9p1QTK5Q/+9UHpK9XoAVJZGknnsm091m0Ss7spo8uHaxbzYVog==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0.tgz", + "integrity": "sha512-Ig74elCuFQ0mvHkWUq5qDCNI3qHWlop5w4TcDxdtJiOk8Egqe2uxDRY9XnXGSlmWClClmnixcoYumyvbAuj4dA==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.47.tgz", - "integrity": "sha512-X/8Gd4CxdBx7LOtW2wPSzr83bYyndqYbnJoUEosPJXOG2aRmgVo4hn+wk97vtDH+hMP7HsTApVBffrZNXS3erA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz", + "integrity": "sha512-WhXUNb4It5a19RsgKKbQPrjmy4yWOY1KynpEbNw7bnd1QTcrT/EIl3MJvnGgpgvrKyKbqX7nUNOJfkpLOnoDKA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-flow": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-for-of": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz", - "integrity": "sha512-tfH5OMzV9fWLYJTzWDhoRJKr8kvBZWH26jiCgM0ayNq75ES/X947MqMNAgBjJdTAVEV2kOyks2ItgNAJT4rOUw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz", + "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-function-name": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz", - "integrity": "sha512-/5I/f8NCouugsRT6ORB1UjCP3N+Rgv/OB6SzmaeIUEpYYPM6D7WQ+4BaRYXQn4eqtOJmTgxDXYa8FgYtoeqP9A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0.tgz", + "integrity": "sha512-mR7JN9vkwsAIot74pSwzn/2Gq4nn2wN0HKtQyJLc1ghAarsymdBMTfh+Q/aeR2N3heXs3URQscTLrKe3yUU7Yw==", "requires": { - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-function-name": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-literals": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz", - "integrity": "sha512-PxBw+52qWypwR76YfS2FlW4wZfp61SjIyt3OSPZeWnf0zVQWNVrlRRunJ7lBYudDYvyMwStAE/VynZ0fHtPgng==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz", + "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz", - "integrity": "sha512-MYoLyexybBJ9ODWWMsMFzxAQey68RzhQNPjfNAYPhPPB3X160EZ5qOjWxRS2rYNvuYAxs6guy5OdrDpESqFSrQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0.tgz", + "integrity": "sha512-BIcQLgPFCxi7YygtNpz5xj+7HxhOprbCGZKeLW6Kxsn1eHS6sJZMw4MfmqFZagl/v6IVa0AJoMHdDXLVrpd3Aw==", "requires": { - "@babel/helper-module-transforms": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-simple-access": "7.0.0-beta.47" + "@babel/helper-module-transforms": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-object-assign": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.0.0-beta.47.tgz", - "integrity": "sha512-5Cc/5TsUjxiAuEQ4WUu+ccP0RI2/qcZWEZA7U87RH26rnhc0NDBZfUbEf1RGM5gBFLFVNzUAoFX8kRykHvl/nQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.0.0.tgz", + "integrity": "sha512-Dag8mxx7/03oj8F8PkNso8GEMhwGfeT0TL6KfMsa9Brjx4IpwZVl3WBvEmYks8BMhPmrvM5NQ/tjaMbwEj5ijA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-parameters": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz", - "integrity": "sha512-UzQG8draO+30Y8eNEREuGBfmEHLL7WFxOjmTBbaTrbdOrm/znCUThqcuNz8cyn2nrZbln7M/loQ3stjf9Pt9fQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0.tgz", + "integrity": "sha512-eWngvRBWx0gScot0xa340JzrkA+8HGAk1OaCHDfXAjkrTFkp73Lcf+78s7AStSdRML5nzx5aXpnjN1MfrjkBoA==", "requires": { - "@babel/helper-call-delegate": "7.0.0-beta.47", - "@babel/helper-get-function-arity": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-call-delegate": "^7.0.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-react-display-name": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.47.tgz", - "integrity": "sha512-Rw1KWihSkGHbqHiQuiFu/beMakDtobW3eLSABw1w3BvRIc/UhBXxwyIxa/q/R9hWFBholAjmx9cKey8FnZPykw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz", + "integrity": "sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-react-jsx": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.47.tgz", - "integrity": "sha512-HGian2BbCsyAqs6LntVVRpjXG9TkzhHfTynjUoMxOFL29doKEy/0s96SMvmbBSR/wMRKMd1OPvCiEYYxqZtr3g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz", + "integrity": "sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==", "requires": { - "@babel/helper-builder-react-jsx": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-jsx": "7.0.0-beta.47" + "@babel/helper-builder-react-jsx": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.47.tgz", - "integrity": "sha512-oZ6D9z+qql+tz7PjGp1CaxepxqDQQTusyjeKsWr7NdEa0v2j3sWLkfK4Aa7kU9BT0+j+r/LN4u33UBkBNVoVvw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz", + "integrity": "sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-jsx": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-regenerator": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz", - "integrity": "sha512-JEPIiJyqYRfjOYUTZguLkb2HTwudReqLyOljpOXnJ/1ymwsiof4D6ul611DGlMxJMZJGQ6TBi59iY9GoJ6j4Iw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", "requires": { - "regenerator-transform": "^0.12.3" + "regenerator-transform": "^0.13.3" }, "dependencies": { "regenerator-transform": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.4.tgz", - "integrity": "sha512-p2I0fY+TbSLD2/VFTFb/ypEHxs3e3AjU0DzttdPqk2bSmDhfSh5E54b86Yc6XhUa5KykK1tgbvZ4Nr82oCJWkQ==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", "requires": { "private": "^0.1.6" } @@ -699,49 +1534,98 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz", - "integrity": "sha512-+o7/yb0Nrk4Gg/tnBgfBf+G1uGZbtkSluUnj8RyD37ajpDlWmysDjFEHSfktKcuD8YHeGz2M9AYNGcClk1fr/g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz", + "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-spread": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz", - "integrity": "sha512-LFAozFdfT4bE2AQw2BnjzLufTX4GBsTUHUGRhT8XNoDYuGnV+7k9Yj6JU3/7csJc9u6W91PArYgoO+D56CMw6Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz", + "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz", - "integrity": "sha512-+Rc6NihGoXcwAqAxbiumvzOYxRR0aUg1ZExfyHnI5QnQf0sf4xAfgT/YpGvEgLd5Ci0rka+IWSj54PhzZkhuTg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", + "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-regex": "7.0.0-beta.47" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-template-literals": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz", - "integrity": "sha512-ORfrfN/gQoRuI+xf+kOa2i/yvXfedFRgH+KtgoIrpUQom7OhexxzD280x80LMCIkdaVGzYhvlC3kdJkFMWAfUg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz", + "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0-beta.47", - "@babel/helper-plugin-utils": "7.0.0-beta.47" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.0.0.tgz", + "integrity": "sha512-UNhEa+Wt8tq3bfLKJWsuZplYEdwdX2y8Cn1gHeIwnL7OqT6L+NZzVe6VTkR1AKqAhH7z3Krs61TpxgVkp5aHCg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-typescript": "^7.0.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + } } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz", - "integrity": "sha512-44nWn421tMVZ/A4+1uppzoAO7nrlwWzefMr9JUi5G+tXl0DLEtWy+F7L6zCVw19C4OAOA6WlolVro5CEs6g6AQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", + "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/helper-regex": "7.0.0-beta.47", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", "regexpu-core": "^4.1.3" }, "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + }, "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", @@ -781,17 +1665,17 @@ } }, "@babel/register": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0-beta.47.tgz", - "integrity": "sha512-r5aS1bAqW0tHvwUNPRRdmIedSWGK/oyv598EENpV/+VZF8EkX9TiVqCpJyg6zucPPyMjtdXN1pK/Yljp5NdGGA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0.tgz", + "integrity": "sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g==", "requires": { - "core-js": "^2.5.3", + "core-js": "^2.5.7", "find-cache-dir": "^1.0.0", "home-or-tmp": "^3.0.0", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "mkdirp": "^0.5.1", - "pirates": "^3.0.1", - "source-map-support": "^0.4.2" + "pirates": "^4.0.0", + "source-map-support": "^0.5.9" }, "dependencies": { "core-js": { @@ -803,95 +1687,124 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "@babel/template": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.47.tgz", - "integrity": "sha512-mAzrOCLwOb4jAobHi0kTwIkoamP1Do28c6zxvrDXjYSJFZHz6KGuzMaT0AV7ZCq7M3si7QypVVMVX2bE6IsuOg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0.tgz", + "integrity": "sha512-VLQZik/G5mjYJ6u19U3W2u7eM+rA/NGzH+GtHDFFkLTKLW66OasFrxZ/yK7hkyQcswrmvugFyZpDFRW0DjcjCw==", "requires": { - "@babel/code-frame": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "babylon": "7.0.0-beta.47", - "lodash": "^4.17.5" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/types": "^7.0.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", - "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "7.0.0-beta.47" + "@babel/highlight": "^7.0.0" } }, - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==" + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, "@babel/traverse": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.47.tgz", - "integrity": "sha512-kYGGs//OnUnei+9TTldxlgf7llprj7VUeDKtG50+g+0k1g0yZyrkEgbyFheYFdnudR8IDEHOEXVsUuY82r5Aiw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0.tgz", + "integrity": "sha512-ka/lwaonJZTlJyn97C4g5FYjPOx+Oxd3ab05hbDr1Mx9aP1FclJ+SUHyLx3Tx40sGmOVJApDxE6puJhd3ld2kw==", "requires": { - "@babel/code-frame": "7.0.0-beta.47", - "@babel/generator": "7.0.0-beta.47", - "@babel/helper-function-name": "7.0.0-beta.47", - "@babel/helper-split-export-declaration": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "babylon": "7.0.0-beta.47", + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.0.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/types": "^7.0.0", "debug": "^3.1.0", "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "lodash": "^4.17.10" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", - "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "7.0.0-beta.47" + "@babel/highlight": "^7.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz", - "integrity": "sha512-jx8GmxryT6Qy4+24W6M6TnVL9T8bxqdyg5UKHjxBdw0Y2Sano1n0WphUS2seuOugn04W2ZQLqGc0ut8nGe/taA==", + "@babel/types": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", "requires": { - "@babel/types": "7.0.0-beta.47" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" } }, - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==" - }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" } } }, "@babel/types": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.47.tgz", - "integrity": "sha512-MOP5pOosg7JETrVGg8OQyzmUmbyoSopT5j2HlblHsto89mPz3cmxzn1IA4UNUmnWKgeticSwfhS+Gdy25IIlBQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.5", + "lodash": "^4.17.10", "to-fast-properties": "^2.0.0" }, "dependencies": { @@ -908,11 +1821,12 @@ "integrity": "sha512-iOD1PRnTSVr9sDWQdesIpfRrwJhHfeEQe5BpalQxC5OhM9thpiE6cu2NlW1KBWl0RJG4ZiJaF1xLlCo9YxU6dA==" }, "@storybook/addon-actions": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.10.tgz", - "integrity": "sha512-5UptYl8amjWe1hBRqZ8JL/dDxzGGYUF7bYtWVLgI6X4yfkMhG62H4IFARaukYfvUmf86jyPBybPQ6BibQ8eZXg==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-3.4.11.tgz", + "integrity": "sha512-vA7KiMg6J3SlI0U9COhyX+nxoNNXsgXTKBA7oVjE+wduNwNc86WcbYGxKIxhCjJMBoAjZYBeRL9DmYWwaHb4xQ==", + "dev": true, "requires": { - "@storybook/components": "3.4.10", + "@storybook/components": "3.4.11", "babel-runtime": "^6.26.0", "deep-equal": "^1.0.1", "glamor": "^2.20.40", @@ -927,29 +1841,31 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true } } }, "@storybook/addon-links": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-3.4.10.tgz", - "integrity": "sha512-GIxgSj2/42WgG8iFPOE0nrl7lrSFD/vNC8ipAAHCQYkZR2leFamVmV2M+hntcwxbIeW9RPS3sOoB6+tFEM8dnA==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-3.4.11.tgz", + "integrity": "sha512-DFTBj359ANqKJBhcSw2zAojlWF4A4+U48sKOhcPZ96qwPPtZwMtUR1TYxP+6ssfEP4tlA9zs4dn0+yRye+ydNQ==", + "dev": true, "requires": { - "@storybook/components": "3.4.10", + "@storybook/components": "3.4.11", "babel-runtime": "^6.26.0", "global": "^4.3.2", "prop-types": "^15.6.1" } }, "@storybook/addon-storyshots": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-3.4.10.tgz", - "integrity": "sha512-TndPPSRjv/rM+qveO82j5+kNRqGNDD2pAU/Lndkmtx2pOnPqvjDvf8IAuv1Zbhi1nBGmK2VFmVaSnAhRXHXGtQ==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-3.4.11.tgz", + "integrity": "sha512-E0OX50xICBexMIgHcdf8qOjDJUykSSCL6tFncoHSTAQgeCoH+PpFYe04vTWgalZxIoHY5o0dfDm8fLCzFQhyYA==", "dev": true, "requires": { - "@storybook/channels": "3.4.10", - "@storybook/node-logger": "3.4.10", + "@storybook/channels": "3.4.11", + "@storybook/node-logger": "3.4.11", "babel-runtime": "^6.26.0", "glob": "^7.1.2", "global": "^4.3.2", @@ -1020,58 +1936,49 @@ } }, "@storybook/addons": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-3.4.10.tgz", - "integrity": "sha512-Be/ZxfQ6F434qNQPLK0Q7xNvSMf63LmLZgwoy4mT2fIc2ye2yNXfO7nxh97s5zhMXMGmFispUNiRAMXzbjfpJA==" + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-3.4.11.tgz", + "integrity": "sha512-Uf01aZ1arcpG1prrrCrBCUYW63lDaoG+r/i3TNo1iG9ZaNc+2UHWeuiEedLfHg0fi/q7UnqMNWDiyO3AkEwwrA==", + "dev": true }, "@storybook/channel-postmessage": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-3.4.10.tgz", - "integrity": "sha512-9gh6CNf55Zq8taBorDO6oZ0oB4FFugtZcjKphtlbZLmuybmhvzgdX5dzdNxc3lIs9F3fF2dWfRdKPJZCeijY9Q==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-3.4.11.tgz", + "integrity": "sha512-uzJS3xkx4r9L10j5Tb+rsHOmHh8Xq6hovZYYLhsSxWKysyhDI7vRMhfmZVadXNoncSjSHSG8BtSJexIeeQCBuw==", + "dev": true, "requires": { - "@storybook/channels": "3.4.10", + "@storybook/channels": "3.4.11", "global": "^4.3.2", "json-stringify-safe": "^5.0.1" - }, - "dependencies": { - "@storybook/channels": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-3.4.10.tgz", - "integrity": "sha512-ozYnZsPEkSdMmtC+9/CnFXa+ZuQLL/9U1dK9rU2AdrbwkPlHaeGcae1RMlZjgjkHH3PNiuXFLPM8G+R9E7Tx4A==" - } } }, "@storybook/channel-websocket": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-3.4.10.tgz", - "integrity": "sha512-AwUgEflOG5eMyQDM+H11OyPgYmUtpr2byC1rs/Gcm+SlWy6I3xsJJpejxaKmCTAdZ5njI868pVcKPEtylvFKdg==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-3.4.11.tgz", + "integrity": "sha512-GB5mG2t5XDKeyw1DQGj5LFQCBwELmK/oL+HtJIGBVLqPTzhGewMf/vT/G+L1g7uvmpXYBOuzTmCDwjoGcsZ+LQ==", + "dev": true, "requires": { - "@storybook/channels": "3.4.10", + "@storybook/channels": "3.4.11", "global": "^4.3.2" - }, - "dependencies": { - "@storybook/channels": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-3.4.10.tgz", - "integrity": "sha512-ozYnZsPEkSdMmtC+9/CnFXa+ZuQLL/9U1dK9rU2AdrbwkPlHaeGcae1RMlZjgjkHH3PNiuXFLPM8G+R9E7Tx4A==" - } } }, "@storybook/channels": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-3.4.10.tgz", - "integrity": "sha512-ozYnZsPEkSdMmtC+9/CnFXa+ZuQLL/9U1dK9rU2AdrbwkPlHaeGcae1RMlZjgjkHH3PNiuXFLPM8G+R9E7Tx4A==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-3.4.11.tgz", + "integrity": "sha512-49A79anI04nhMsNzyk5cF8fa3+HKZkb9RLshtaqvQmM7olQxCrks6cIdE2Y1zMBuyZxX1ARhcBCFVw+PUxkJjA==", "dev": true }, "@storybook/client-logger": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-3.4.10.tgz", - "integrity": "sha512-WRINmY3OqVSwBWz62ij9B1MoQsXkI+Slq2qp6RRWSYEh7/7kyNiPbYfX6ODUcPEaUNdXlZgLfDk1alJWGeJrDw==" + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-3.4.11.tgz", + "integrity": "sha512-rQ1f0ItOd8l4JX0cJpP976jU6c1+yOl1DfNcitL+1/dG4wwuvaB3j4rhe8VwTiFjYe6arm3hMeRzu5mUTVbSVg==", + "dev": true }, "@storybook/components": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-3.4.10.tgz", - "integrity": "sha512-0X2H3iCz8JXpSItcAYgxrTQSEnYDaSWiLl3nz303JTkadcmBLJcIMnuQHKGKYLXde6jTkbxbb0AO/wgK7wXCYw==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-3.4.11.tgz", + "integrity": "sha512-M3WhGPR4LNB2NabKyLtxDMevB1LAHOrmrII2U19XYIph93k3SReIwLKWEds0/jWwajgQtI3hBftDCu/QA5bTOA==", + "dev": true, "requires": { "glamor": "^2.20.40", "glamorous": "^4.12.1", @@ -1079,15 +1986,16 @@ } }, "@storybook/core": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-3.4.10.tgz", - "integrity": "sha512-VByCEHdfJgsETIwC0qvQG9+MY614qCn7cE1t2cGaMG+T+kPWV9YiI7DumWlwFVk+bYgOrLvoXjou38xmKVVF8A==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-3.4.11.tgz", + "integrity": "sha512-WoocDMuvyB2OPnv6h4OuoGqspsdnZRzf1DxkYZHIOxHo3jeSwovvLvf1Y/G8PRWugSoy8ujwMfkN31dITXHGTA==", + "dev": true, "requires": { - "@storybook/addons": "3.4.10", - "@storybook/channel-postmessage": "3.4.10", - "@storybook/client-logger": "3.4.10", - "@storybook/node-logger": "3.4.10", - "@storybook/ui": "3.4.10", + "@storybook/addons": "3.4.11", + "@storybook/channel-postmessage": "3.4.11", + "@storybook/client-logger": "3.4.11", + "@storybook/node-logger": "3.4.11", + "@storybook/ui": "3.4.11", "autoprefixer": "^7.2.6", "babel-runtime": "^6.26.0", "chalk": "^2.3.2", @@ -1112,18 +2020,11 @@ "webpack-hot-middleware": "^2.22.1" }, "dependencies": { - "@storybook/node-logger": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-3.4.10.tgz", - "integrity": "sha512-r6f5UMf7wHFuDYZFQRzBCUoAvQbVh3OprHxupWmbRwZbzPllp+v8klReeeDA9i4HVckrTlNt05rlVe1ToU2lFQ==", - "requires": { - "npmlog": "^4.1.2" - } - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -1132,21 +2033,18 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" - }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -1157,6 +2055,7 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/@storybook/mantra-core/-/mantra-core-1.7.2.tgz", "integrity": "sha512-GD4OYJ8GsayVhIg306sfgcKDk9j8YfuSKIAWvdB/g7IDlw0pDgueONALVEEE2XWJtCwcsUyDtCYzXFgCBWLEjA==", + "dev": true, "requires": { "@storybook/react-komposer": "^2.0.1", "@storybook/react-simple-di": "^1.2.1", @@ -1164,9 +2063,9 @@ } }, "@storybook/node-logger": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-3.4.10.tgz", - "integrity": "sha512-r6f5UMf7wHFuDYZFQRzBCUoAvQbVh3OprHxupWmbRwZbzPllp+v8klReeeDA9i4HVckrTlNt05rlVe1ToU2lFQ==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-3.4.11.tgz", + "integrity": "sha512-eCjvZsCwZTcjDOeG7JDEVs5bugyybpAFu/4+X3hfikxGBBjnx2NtjJIfIsriUKa1O559+aFGUG73wogYAjudhg==", "dev": true, "requires": { "npmlog": "^4.1.2" @@ -1174,8 +2073,9 @@ }, "@storybook/podda": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@storybook/podda/-/podda-1.2.3.tgz", + "resolved": "http://registry.npmjs.org/@storybook/podda/-/podda-1.2.3.tgz", "integrity": "sha512-g7dsdsn50AhlGZ8iIDKdF8bi7Am++iFOq+QN+hNKz3FvgLuf8Dz+mpC/BFl90eE9bEYxXqXKeMf87399Ec5Qhw==", + "dev": true, "requires": { "babel-runtime": "^6.11.6", "immutable": "^3.8.1" @@ -1183,8 +2083,9 @@ }, "@storybook/react-komposer": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", + "resolved": "http://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz", "integrity": "sha1-wsDUp12bSpwMa0bxSrBQ9FitS7A=", + "dev": true, "requires": { "@storybook/react-stubber": "^1.0.0", "babel-runtime": "^6.11.6", @@ -1194,16 +2095,17 @@ } }, "@storybook/react-native": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/react-native/-/react-native-3.4.10.tgz", - "integrity": "sha512-GkPQlTi/CmCfmScjWAMnrDBstoNlDRyP045bx247u2z4PVC3NCQWpBXTHdORJojIVxiZJ7gBM4UrPkqILE967Q==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/react-native/-/react-native-3.4.11.tgz", + "integrity": "sha512-UbbXNCRtrDADmCpVcEy+Yv4IQgLpDwt3jXDY6N/A6g9ThM/x38xxrdWiUelYd1oYKolpYbcdY2vZe4qEJqk/5A==", + "dev": true, "requires": { - "@storybook/addon-actions": "3.4.10", - "@storybook/addon-links": "3.4.10", - "@storybook/addons": "3.4.10", - "@storybook/channel-websocket": "3.4.10", - "@storybook/core": "3.4.10", - "@storybook/ui": "3.4.10", + "@storybook/addon-actions": "3.4.11", + "@storybook/addon-links": "3.4.11", + "@storybook/addons": "3.4.11", + "@storybook/channel-websocket": "3.4.11", + "@storybook/core": "3.4.11", + "@storybook/ui": "3.4.11", "babel-loader": "^7.1.4", "babel-plugin-macros": "^2.2.0", "babel-plugin-syntax-async-functions": "^6.13.0", @@ -1243,12 +2145,14 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true }, "ws": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "dev": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0" @@ -1260,6 +2164,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz", "integrity": "sha512-RH6gPQaYMs/VzQX2dgbZU8DQMKFXVOv1ruohHjjNPys4q+YdqMFMDe5jOP1AUE3j9g01x0eW7bVjRawSpl++Ew==", + "dev": true, "requires": { "babel-runtime": "6.x.x", "create-react-class": "^15.6.2", @@ -1271,16 +2176,18 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@storybook/react-stubber/-/react-stubber-1.0.1.tgz", "integrity": "sha512-k+CHH+vA8bQfCmzBTtJsPkITFgD+C/w19KuByZ9WeEvNUFtnDaCqfP+Vp3/OR+3IAfAXYYOWolqPLxNPcEqEjw==", + "dev": true, "requires": { "babel-runtime": "^6.5.0" } }, "@storybook/ui": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-3.4.10.tgz", - "integrity": "sha512-bmSBEiN4tI5WO7inhzM8P74ogftXayhTQnZrPGTxpvTRvWUZU0Ctmcm//GYLCcG5WcBn90SpqpcKXBdkvIaxLw==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-3.4.11.tgz", + "integrity": "sha512-VJ7KxZ8xpQ3zDm5lO/r6oyfxUMEzIifbm6xTcruz9fPZS02Z3yJTs3Yfj0TH7B5PzXga56P9Doy9BSs5oV9xyA==", + "dev": true, "requires": { - "@storybook/components": "3.4.10", + "@storybook/components": "3.4.11", "@storybook/mantra-core": "^1.7.2", "@storybook/podda": "^1.2.3", "@storybook/react-komposer": "^2.0.3", @@ -1301,13 +2208,6 @@ "react-modal": "^3.3.2", "react-split-pane": "^0.1.77", "react-treebeard": "^2.1.0" - }, - "dependencies": { - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" - } } }, "@types/markdown-it": { @@ -1331,266 +2231,6 @@ "@types/react": "*" } }, - "@webassemblyjs/ast": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.12.tgz", - "integrity": "sha512-bmTBEKuuhSU6dC95QIW250xO769cdYGx9rWn3uBLTw2pUpud0Z5kVuMw9m9fqbNzGeuOU2HpyuZa+yUt2CTEDA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.5.12", - "@webassemblyjs/helper-wasm-bytecode": "1.5.12", - "@webassemblyjs/wast-parser": "1.5.12", - "debug": "^3.1.0", - "mamacro": "^0.0.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz", - "integrity": "sha512-epTvkdwOIPpTE9edHS+V+shetYzpTbd91XOzUli1zAS0+NSgSe6ZsNggIqUNzhma1s4bN2f/m8c6B1NMdCERAg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz", - "integrity": "sha512-Goxag86JvLq8ucHLXFNSLYzf9wrR+CJr37DsESTAzSnGoqDTgw5eqiXSQVd/D9Biih7+DIn8UIQCxMs8emRRwg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz", - "integrity": "sha512-tJNUjttL5CxiiS/KLxT4/Zk0Nbl/poFhztFxktb46zoQEUWaGHR9ZJ0SnvE7DbFX5PY5JNJDMZ0Li4lm246fWw==", - "dev": true, - "requires": { - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz", - "integrity": "sha512-0FrJgiST+MQDMvPigzs+UIk1vslLIqGadkEWdn53Lr0NsUC2JbheG9QaO3Zf6ycK2JwsHiUpGaMFcHYXStTPMA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.5.12" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz", - "integrity": "sha512-QBHZ45VPUJ7UyYKvUFoaxrSS9H5hbkC9U7tdWgFHmnTMutkXSEgDg2gZg3I/QTsiKOCIwx4qJUJwPd7J4D5CNQ==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz", - "integrity": "sha512-SCXR8hPI4JOG3cdy9HAO8W5/VQ68YXG/Hfs7qDf1cd64zWuMNshyEour5NYnLMVkrrtc0XzfVS/MdeV94woFHA==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "mamacro": "^0.0.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz", - "integrity": "sha512-0Gz5lQcyvElNVbOTKwjEmIxGwdWf+zpAW/WGzGo95B7IgMEzyyfZU+PrGHDwiSH9c0knol9G7smQnY0ljrSA6g==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz", - "integrity": "sha512-ge/CKVKBGpiJhFN9PIOQ7sPtGYJhxm/mW1Y3SpG1L6XBunfRz0YnLjW3TmhcOEFozIVyODPS1HZ9f7VR3GBGow==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-buffer": "1.5.12", - "@webassemblyjs/helper-wasm-bytecode": "1.5.12", - "@webassemblyjs/wasm-gen": "1.5.12", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/ieee754": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz", - "integrity": "sha512-F+PEv9QBzPi1ThLBouUJbuxhEr+Sy/oua1ftXFKHiaYYS5Z9tKPvK/hgCxlSdq+RY4MSG15jU2JYb/K5pkoybg==", - "dev": true, - "requires": { - "ieee754": "^1.1.11" - } - }, - "@webassemblyjs/leb128": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.12.tgz", - "integrity": "sha512-cCOx/LVGiWyCwVrVlvGmTdnwHzIP4+zflLjGkZxWpYCpdNax9krVIJh1Pm7O86Ox/c5PrJpbvZU1cZLxndlPEw==", - "dev": true, - "requires": { - "leb": "^0.3.0" - } - }, - "@webassemblyjs/utf8": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.12.tgz", - "integrity": "sha512-FX8NYQMiTRU0TfK/tJVntsi9IEKsedSsna8qtsndWVE0x3zLndugiApxdNMIOoElBV9o4j0BUqR+iwU58QfPxQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz", - "integrity": "sha512-r/oZAyC4EZl0ToOYJgvj+b0X6gVEKQMLT34pNNbtvWBehQOnaSXvVUA5FIYlH8ubWjFNAFqYaVGgQTjR1yuJdQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-buffer": "1.5.12", - "@webassemblyjs/helper-wasm-bytecode": "1.5.12", - "@webassemblyjs/helper-wasm-section": "1.5.12", - "@webassemblyjs/wasm-gen": "1.5.12", - "@webassemblyjs/wasm-opt": "1.5.12", - "@webassemblyjs/wasm-parser": "1.5.12", - "@webassemblyjs/wast-printer": "1.5.12", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz", - "integrity": "sha512-LTu+cr1YRxGGiVIXWhei/35lXXEwTnQU18x4V/gE+qCSJN21QcVTMjJuasTUh8WtmBZtOlqJbOQIeN7fGnHWhg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-wasm-bytecode": "1.5.12", - "@webassemblyjs/ieee754": "1.5.12", - "@webassemblyjs/leb128": "1.5.12", - "@webassemblyjs/utf8": "1.5.12" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz", - "integrity": "sha512-LBwG5KPA9u/uigZVyTsDpS3CVxx3AePCnTItVL+OPkRCp5LqmLsOp4a3/c5CQE0Lecm0Ss9hjUTDcbYFZkXlfQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-buffer": "1.5.12", - "@webassemblyjs/wasm-gen": "1.5.12", - "@webassemblyjs/wasm-parser": "1.5.12", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz", - "integrity": "sha512-xset3+1AtoFYEfMg30nzCGBnhKmTBzbIKvMyLhqJT06TvYV+kA884AOUpUvhSmP6XPF3G+HVZPm/PbCGxH4/VQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-api-error": "1.5.12", - "@webassemblyjs/helper-wasm-bytecode": "1.5.12", - "@webassemblyjs/ieee754": "1.5.12", - "@webassemblyjs/leb128": "1.5.12", - "@webassemblyjs/utf8": "1.5.12" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz", - "integrity": "sha512-QWUtzhvfY7Ue9GlJ3HeOB6w5g9vNYUUnG+Y96TWPkFHJTxZlcvGfNrUoACCw6eDb9gKaHrjt77aPq41a7y8svg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/floating-point-hex-parser": "1.5.12", - "@webassemblyjs/helper-api-error": "1.5.12", - "@webassemblyjs/helper-code-frame": "1.5.12", - "@webassemblyjs/helper-fsm": "1.5.12", - "long": "^3.2.0", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.5.12", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz", - "integrity": "sha512-XF9RTeckFgDyl196uRKZWHFFfbkzsMK96QTXp+TC0R9gsV9DMiDGMSIllgy/WdrZ3y3dsQp4fTA5r4GoaOBchA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/wast-parser": "1.5.12", - "long": "^3.2.0" - } - }, - "@zamotany/react-proxy": { - "version": "3.0.0-alpha.4", - "resolved": "https://registry.npmjs.org/@zamotany/react-proxy/-/react-proxy-3.0.0-alpha.4.tgz", - "integrity": "sha512-bJ9B6bEQss7Cnrts6y6BQx1ni6max0eZDhMzMaCxFjpne2s15MGB/KFfLq48A87DDYO+KLdqWFZgGMQg3/JIyQ==", - "dev": true, - "requires": { - "lodash": "^4.6.1" - } - }, "abab": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", @@ -1634,12 +2274,14 @@ "acorn": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", - "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==" + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "dev": true }, "acorn-dynamic-import": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, "requires": { "acorn": "^4.0.3" }, @@ -1647,7 +2289,8 @@ "acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true } } }, @@ -1661,26 +2304,19 @@ } }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "^5.0.3" } }, "address": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "dev": true }, "agent-base": { "version": "4.2.0", @@ -1704,12 +2340,14 @@ "ajv-keywords": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1719,12 +2357,7 @@ "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, "ansi": { @@ -1764,12 +2397,7 @@ "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-parser": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/ansi-parser/-/ansi-parser-3.2.8.tgz", - "integrity": "sha1-rYCmNRrF5YzH6Kdhq8A3tVBQQdA=", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", "dev": true }, "ansi-red": { @@ -2044,12 +2672,12 @@ } }, "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "^2.0.0" + "default-require-extensions": "^1.0.0" } }, "aproba": { @@ -2136,12 +2764,14 @@ "array-find": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=" + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true }, "array-includes": { "version": "3.0.3", @@ -2213,6 +2843,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -2223,6 +2854,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, "requires": { "util": "0.10.3" } @@ -2265,7 +2897,8 @@ "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, "async-limiter": { "version": "1.0.0", @@ -2284,8 +2917,9 @@ }, "autoprefixer": { "version": "7.2.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", + "resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", + "dev": true, "requires": { "browserslist": "^2.11.3", "caniuse-lite": "^1.0.30000805", @@ -2300,11 +2934,6 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, "axobject-query": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.1.tgz", @@ -2325,112 +2954,174 @@ } }, "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + } + } }, "babel-eslint": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz", - "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-9.0.0.tgz", + "integrity": "sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", "eslint-scope": "3.7.1", "eslint-visitor-keys": "^1.0.0" }, "dependencies": { - "@babel/generator": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz", - "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==", + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.44", + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0.tgz", + "integrity": "sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", "jsesc": "^2.5.1", - "lodash": "^4.2.0", + "lodash": "^4.17.10", "source-map": "^0.5.0", "trim-right": "^1.0.1" } }, "@babel/helper-function-name": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz", - "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz", + "integrity": "sha512-Zo+LGvfYp4rMtz84BLF3bavFTdf8y4rJtMPTe2J+rxYmnDOIeH8le++VFI/pRJU+rQhjqiXxE4LMaIau28Tv1Q==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz", - "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.44" + "@babel/types": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "@babel/template": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", - "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0.tgz", + "integrity": "sha512-VLQZik/G5mjYJ6u19U3W2u7eM+rA/NGzH+GtHDFFkLTKLW66OasFrxZ/yK7hkyQcswrmvugFyZpDFRW0DjcjCw==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "lodash": "^4.2.0" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/types": "^7.0.0" } }, "@babel/traverse": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", - "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0.tgz", + "integrity": "sha512-ka/lwaonJZTlJyn97C4g5FYjPOx+Oxd3ab05hbDr1Mx9aP1FclJ+SUHyLx3Tx40sGmOVJApDxE6puJhd3ld2kw==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/helper-function-name": "^7.0.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/types": "^7.0.0", "debug": "^3.1.0", "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" + "lodash": "^4.17.10" } }, "@babel/types": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", - "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0.tgz", + "integrity": "sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.2.0", + "lodash": "^4.17.10", "to-fast-properties": "^2.0.0" } }, - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ms": "2.0.0" + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" } }, "globals": { @@ -2439,12 +3130,33 @@ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "jsesc": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", "dev": true }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -2472,6 +3184,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, "requires": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2513,12 +3226,14 @@ "babel-helper-evaluate-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz", - "integrity": "sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw==" + "integrity": "sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw==", + "dev": true }, "babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", @@ -2528,7 +3243,8 @@ "babel-helper-flip-expressions": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz", - "integrity": "sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw==" + "integrity": "sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw==", + "dev": true }, "babel-helper-function-name": { "version": "6.24.1", @@ -2562,18 +3278,21 @@ }, "babel-helper-is-nodes-equiv": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=" + "resolved": "http://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true }, "babel-helper-is-void-0": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz", - "integrity": "sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ==" + "integrity": "sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ==", + "dev": true }, "babel-helper-mark-eval-scopes": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz", - "integrity": "sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ==" + "integrity": "sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ==", + "dev": true }, "babel-helper-optimise-call-expression": { "version": "6.24.1", @@ -2588,6 +3307,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", @@ -2598,6 +3318,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2609,7 +3330,8 @@ "babel-helper-remove-or-void": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz", - "integrity": "sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ==" + "integrity": "sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ==", + "dev": true }, "babel-helper-replace-supers": { "version": "6.24.1", @@ -2627,7 +3349,8 @@ "babel-helper-to-multiple-sequence-expressions": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", - "integrity": "sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw==" + "integrity": "sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw==", + "dev": true }, "babel-helpers": { "version": "6.24.1", @@ -2639,9 +3362,9 @@ } }, "babel-jest": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.4.2.tgz", - "integrity": "sha512-wg1LJ2tzsafXqPFVgAsYsMCVD5U7kwJZAvbZIxVm27iOewsQw1BR7VZifDlMTEWVo3wasoPPyMdKXWCsfFPr3Q==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", "dev": true, "requires": { "babel-plugin-istanbul": "^4.1.6", @@ -2649,9 +3372,10 @@ } }, "babel-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", - "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, "requires": { "find-cache-dir": "^1.0.0", "loader-utils": "^1.0.2", @@ -2674,14 +3398,6 @@ "babel-runtime": "^6.22.0" } }, - "babel-plugin-external-helpers": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz", - "integrity": "sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, "babel-plugin-istanbul": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", @@ -2701,17 +3417,19 @@ "dev": true }, "babel-plugin-macros": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.0.tgz", - "integrity": "sha512-flIBfrqAdHWn+4l2cS/4jZEyl+m5EaBHVzTb0aOF+eu/zR7E41/MoCFHPhDNL8Wzq1nyelnXeT+vcL2byFLSZw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.1.tgz", + "integrity": "sha512-pUdm8I6LAcKIzh6H2JZ1QUJByg7Im5/llcUHD/T9mTtlaBl/4YkHzvd6oUpT0cjIFgkCadVSHuJNVoNkLqvM1w==", + "dev": true, "requires": { "cosmiconfig": "^5.0.5" }, "dependencies": { "cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", + "dev": true, "requires": { "is-directory": "^0.3.1", "js-yaml": "^3.9.0", @@ -2721,12 +3439,14 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "js-yaml": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2736,6 +3456,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -2747,6 +3468,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz", "integrity": "sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg==", + "dev": true, "requires": { "babel-helper-evaluate-path": "^0.3.0" } @@ -2755,6 +3477,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz", "integrity": "sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A==", + "dev": true, "requires": { "babel-helper-evaluate-path": "^0.3.0" } @@ -2763,6 +3486,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", "integrity": "sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw==", + "dev": true, "requires": { "babel-helper-evaluate-path": "^0.3.0", "babel-helper-mark-eval-scopes": "^0.3.0", @@ -2774,6 +3498,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz", "integrity": "sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw==", + "dev": true, "requires": { "babel-helper-is-void-0": "^0.3.0" } @@ -2782,6 +3507,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz", "integrity": "sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA==", + "dev": true, "requires": { "babel-helper-flip-expressions": "^0.3.0" } @@ -2789,12 +3515,14 @@ "babel-plugin-minify-infinity": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz", - "integrity": "sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ==" + "integrity": "sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ==", + "dev": true }, "babel-plugin-minify-mangle-names": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz", "integrity": "sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q==", + "dev": true, "requires": { "babel-helper-mark-eval-scopes": "^0.3.0" } @@ -2802,17 +3530,20 @@ "babel-plugin-minify-numeric-literals": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz", - "integrity": "sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg==" + "integrity": "sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg==", + "dev": true }, "babel-plugin-minify-replace": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz", - "integrity": "sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg==" + "integrity": "sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg==", + "dev": true }, "babel-plugin-minify-simplify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz", "integrity": "sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q==", + "dev": true, "requires": { "babel-helper-flip-expressions": "^0.3.0", "babel-helper-is-nodes-equiv": "^0.0.1", @@ -2823,14 +3554,16 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz", "integrity": "sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q==", + "dev": true, "requires": { "babel-helper-is-void-0": "^0.3.0" } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", @@ -2839,8 +3572,9 @@ }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true }, "babel-plugin-syntax-flow": { "version": "6.18.0", @@ -2866,6 +3600,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, "requires": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", @@ -2948,6 +3683,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -2983,6 +3719,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", @@ -3004,6 +3741,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -3014,6 +3752,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", @@ -3063,6 +3802,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -3081,6 +3821,7 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -3089,10 +3830,24 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "regexpu-core": "^2.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } } }, "babel-plugin-transform-es3-member-expression-literals": { @@ -3115,6 +3870,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", "babel-plugin-syntax-exponentiation-operator": "^6.8.0", @@ -3133,22 +3889,26 @@ "babel-plugin-transform-inline-consecutive-adds": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", - "integrity": "sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA==" + "integrity": "sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA==", + "dev": true }, "babel-plugin-transform-member-expression-literals": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", - "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=" + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true }, "babel-plugin-transform-merge-sibling-variables": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", - "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=" + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", + "dev": true }, "babel-plugin-transform-minify-booleans": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", - "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=" + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", @@ -3163,6 +3923,7 @@ "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, "requires": { "esutils": "^2.0.2" } @@ -3189,6 +3950,7 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, "requires": { "babel-plugin-syntax-jsx": "^6.8.0", "babel-runtime": "^6.22.0" @@ -3198,6 +3960,7 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, "requires": { "babel-plugin-syntax-jsx": "^6.8.0", "babel-runtime": "^6.22.0" @@ -3207,6 +3970,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, "requires": { "regenerator-transform": "^0.10.0" } @@ -3214,22 +3978,26 @@ "babel-plugin-transform-regexp-constructors": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz", - "integrity": "sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw==" + "integrity": "sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw==", + "dev": true }, "babel-plugin-transform-remove-console": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", - "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=" + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true }, "babel-plugin-transform-remove-debugger": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", - "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=" + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true }, "babel-plugin-transform-remove-undefined": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz", "integrity": "sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw==", + "dev": true, "requires": { "babel-helper-evaluate-path": "^0.3.0" } @@ -3238,6 +4006,7 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -3245,7 +4014,8 @@ "babel-plugin-transform-simplify-comparison-operators": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", - "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=" + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", @@ -3259,31 +4029,14 @@ "babel-plugin-transform-undefined-to-void": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", - "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true }, "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", @@ -3312,31 +4065,27 @@ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", "babel-plugin-transform-exponentiation-operator": "^6.22.0", "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^2.1.2", + "browserslist": "^3.2.6", "invariant": "^2.2.2", "semver": "^5.3.0" - } - }, - "babel-preset-es2015-node": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz", - "integrity": "sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=", - "requires": { - "babel-plugin-transform-es2015-destructuring": "6.x", - "babel-plugin-transform-es2015-function-name": "6.x", - "babel-plugin-transform-es2015-modules-commonjs": "6.x", - "babel-plugin-transform-es2015-parameters": "6.x", - "babel-plugin-transform-es2015-shorthand-properties": "6.x", - "babel-plugin-transform-es2015-spread": "6.x", - "babel-plugin-transform-es2015-sticky-regex": "6.x", - "babel-plugin-transform-es2015-unicode-regex": "6.x", - "semver": "5.x" + }, + "dependencies": { + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + } } }, "babel-preset-fbjs": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-2.1.4.tgz", - "integrity": "sha512-6XVQwlO26V5/0P9s2Eje8Epqkv/ihaMJ798+W98ktOA8fCn2IFM6wEi7CDW3fTbKFZ/8fDGvGZH01B6GSuNiWA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-2.3.0.tgz", + "integrity": "sha512-ZOpAI1/bN0Y3J1ZAK9gRsFkHy9gGgJoDRUjtUCla/129LC7uViq9nIK22YdHfey8szohYoZY3f9L2lGOv0Edqw==", "requires": { "babel-plugin-check-es2015-constants": "^6.8.0", "babel-plugin-syntax-class-properties": "^6.8.0", @@ -3372,6 +4121,7 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, "requires": { "babel-plugin-transform-flow-strip-types": "^6.22.0" } @@ -3390,6 +4140,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz", "integrity": "sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ==", + "dev": true, "requires": { "babel-plugin-minify-builtins": "^0.3.0", "babel-plugin-minify-constant-folding": "^0.3.0", @@ -3420,6 +4171,7 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, "requires": { "babel-plugin-syntax-jsx": "^6.3.13", "babel-plugin-transform-react-display-name": "^6.23.0", @@ -3429,53 +4181,6 @@ "babel-preset-flow": "^6.23.0" } }, - "babel-preset-react-native": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-5.0.2.tgz", - "integrity": "sha512-Ua5JeQ1yGK8UoydMPzE2Ghq5raOKxXzpyApYDuHi4etIbXi5+GnCin19Nu+1obLQCf2Dxy9Y/GZwI0rnNOjggA==", - "dev": true, - "requires": { - "@babel/plugin-proposal-class-properties": "7.0.0-beta.47", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.47", - "@babel/plugin-proposal-optional-chaining": "7.0.0-beta.47", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.47", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.47", - "@babel/plugin-transform-classes": "7.0.0-beta.47", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.47", - "@babel/plugin-transform-destructuring": "7.0.0-beta.47", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.47", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.47", - "@babel/plugin-transform-for-of": "7.0.0-beta.47", - "@babel/plugin-transform-function-name": "7.0.0-beta.47", - "@babel/plugin-transform-literals": "7.0.0-beta.47", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.47", - "@babel/plugin-transform-object-assign": "7.0.0-beta.47", - "@babel/plugin-transform-parameters": "7.0.0-beta.47", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.47", - "@babel/plugin-transform-regenerator": "7.0.0-beta.47", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.47", - "@babel/plugin-transform-spread": "7.0.0-beta.47", - "@babel/plugin-transform-sticky-regex": "7.0.0-beta.47", - "@babel/plugin-transform-template-literals": "7.0.0-beta.47", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "metro-babel7-plugin-react-transform": "^0.39.1" - }, - "dependencies": { - "metro-babel7-plugin-react-transform": { - "version": "0.39.1", - "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.39.1.tgz", - "integrity": "sha512-7atigK+8EZ1DAWhpcw2a60OhCPihe9TsRHGOKUUwJjXmXDxmYxoxejh1kK5vJSaW38P45PkUBwnfNwISWFv4mQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0-beta.47", - "lodash": "^4.17.5" - } - } - } - }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -3622,23 +4327,24 @@ "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" }, - "base62": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.8.tgz", - "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==", - "dev": true - }, "base64-js": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" }, "basic-auth": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", - "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "bcrypt-pbkdf": { @@ -3651,19 +4357,21 @@ } }, "big-integer": { - "version": "1.6.32", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.32.tgz", - "integrity": "sha512-ljKJdR3wk9thHfLj4DtrNiOSTxvGFaMjWrG4pW75juXC4j7+XuKJVFdg4kgFMYp85PVkO05dFMj2dk2xVsH4xw==" + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true }, "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "dev": true }, "bl": { "version": "1.2.2", @@ -3674,28 +4382,23 @@ "safe-buffer": "^5.1.1" } }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "~2.0.0" - } - }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true }, "body-parser": { "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, "requires": { "bytes": "3.0.0", "content-type": "~1.0.4", @@ -3712,36 +4415,14 @@ "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.x.x" - } - }, - "bops": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.1.1.tgz", - "integrity": "sha1-Bi4CqNqoAfoQ8uXb5nQM/4Af4X4=", - "requires": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - }, - "dependencies": { - "base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=" - } - } + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true }, "bowser": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "dev": true }, "bplist-creator": { "version": "0.0.7", @@ -3781,12 +4462,14 @@ "brcast": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", - "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" + "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==", + "dev": true }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, "browser-process-hrtime": { "version": "0.1.2", @@ -3819,8 +4502,9 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -3831,9 +4515,10 @@ } }, "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -3841,19 +4526,30 @@ } }, "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } } }, "browserify-rsa": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" @@ -3863,6 +4559,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, "requires": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", @@ -3877,6 +4574,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, "requires": { "pako": "~1.0.5" } @@ -3885,6 +4583,7 @@ "version": "2.11.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, "requires": { "caniuse-lite": "^1.0.30000792", "electron-to-chromium": "^1.3.30" @@ -3900,8 +4599,9 @@ }, "buffer": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -3911,7 +4611,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true } } }, @@ -3942,13 +4643,13 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, "builtin-modules": { "version": "1.1.1", @@ -3958,7 +4659,8 @@ "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true }, "bunyan": { "version": "1.8.12", @@ -3973,9 +4675,9 @@ } }, "bunyan-debug-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bunyan-debug-stream/-/bunyan-debug-stream-1.1.0.tgz", - "integrity": "sha512-Yu3mVHHMyfnBkC5uKNpMSXKoiY+wF7vnoRdY7n+mNtH0bJMKcf0FmdAGtkBk0LuQmieMryY8yqdot9IP9kqI0A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bunyan-debug-stream/-/bunyan-debug-stream-1.1.1.tgz", + "integrity": "sha512-jJbQ1gXUL6vMmZVdbaTFK1v1sGa7axLrSQQwkB6HU9HCPTzsw2HsKcPHm1vgXZlEck/4IvEuRwg/9+083YelCg==", "dev": true, "requires": { "colors": "^1.0.3", @@ -3991,6 +4693,7 @@ "version": "10.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, "requires": { "bluebird": "^3.5.1", "chownr": "^1.0.1", @@ -4010,7 +4713,8 @@ "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true } } }, @@ -4056,6 +4760,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, "requires": { "no-case": "^2.2.0", "upper-case": "^1.1.1" @@ -4066,21 +4771,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, "caniuse-api": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, "requires": { "browserslist": "^1.3.6", "caniuse-db": "^1.0.30000529", @@ -4092,6 +4787,7 @@ "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, "requires": { "caniuse-db": "^1.0.30000639", "electron-to-chromium": "^1.2.7" @@ -4100,19 +4796,22 @@ } }, "caniuse-db": { - "version": "1.0.30000875", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000875.tgz", - "integrity": "sha512-L1YQcIv8YPymJpbQyO8uM2KEkEVsuFcQRO2vNp0n4GNGAmq0f8GWQKUCTqZHvsyX2EeOO4aLWgc3qCH6zMWFag==" + "version": "1.0.30000886", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000886.tgz", + "integrity": "sha512-Vi/lcz+7gkMEa4ENyZumPENL9Ww3tg01Tc5g8s66zURUFV9weGw9QHvkAYVuZOJdqxjWYmaJXvVx3J2x6ldKeg==", + "dev": true }, "caniuse-lite": { - "version": "1.0.30000823", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000823.tgz", - "integrity": "sha512-3rrhqUxwBgrwNlWVUEwIJfqdZNwLPX18eTo7MGXb3gueDpbOFW6w5OXyHscdBd6IJcu9wnKmKVd7nSl+r7fmgw==" + "version": "1.0.30000886", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000886.tgz", + "integrity": "sha512-xpYuY7rqc5+4q1n/l1BfSgIndaNqvXWKZ0Vk0ZXzVncCAkn0+huvIIPwcSL5YRJoW4MSRsgyNbjnKuh45GmknA==", + "dev": true }, "case-sensitive-paths-webpack-plugin": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", - "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==" + "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==", + "dev": true }, "caseless": { "version": "0.12.0", @@ -4123,6 +4822,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, "requires": { "align-text": "^0.1.3", "lazy-cache": "^1.0.3" @@ -4179,178 +4879,597 @@ } }, "chokidar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", - "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.0", "braces": "^2.3.0", - "fsevents": "^1.1.2", + "fsevents": "^1.2.2", "glob-parent": "^3.1.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", "normalize-path": "^2.1.1", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0", - "upath": "^1.0.0" + "upath": "^1.0.5" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", - "define-property": "^1.0.0", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", - "kind-of": "^6.0.2", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-extendable": "^0.1.0" } }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, "requires": { - "is-extendable": "^0.1.0" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, @@ -4358,6 +5477,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -4367,57 +5487,24 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -4426,49 +5513,16 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -4477,25 +5531,17 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz", + "integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==", "dev": true }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4511,6 +5557,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, "requires": { "chalk": "^1.1.3" } @@ -4595,22 +5642,26 @@ "classnames": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true }, "clean-css": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", - "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, "requires": { - "source-map": "0.5.x" + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, - "clear": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clear/-/clear-0.0.1.tgz", - "integrity": "sha1-5RhuIp2ZRIF5wTAxG2+dML/2sLo=", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -4619,12 +5670,6 @@ "restore-cursor": "^2.0.0" } }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true - }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -4671,7 +5716,8 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true }, "clone-deep": { "version": "0.3.0", @@ -4703,6 +5749,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, "requires": { "q": "^1.1.2" } @@ -4713,43 +5760,32 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codecov": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", - "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.1.0.tgz", + "integrity": "sha512-aWQc/rtHbcWEQLka6WmBAOpV58J2TwyXqlpAQGhQaSiEUoigTTUk6lLd2vB3kXkhnDyzyH74RXfmV4dq2txmdA==", "dev": true, "requires": { "argv": "^0.0.2", "ignore-walk": "^3.0.1", + "js-yaml": "^3.12.0", "request": "^2.87.0", "urlgrey": "^0.4.4" }, "dependencies": { - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } @@ -4767,6 +5803,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, "requires": { "clone": "^1.0.2", "color-convert": "^1.3.0", @@ -4790,6 +5827,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, "requires": { "color-name": "^1.0.0" } @@ -4803,6 +5841,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, "requires": { "color": "^0.11.0", "css-color-names": "0.0.4", @@ -4812,15 +5851,8 @@ "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "~1.0.0" - } + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true }, "command-line-args": { "version": "4.0.7", @@ -4842,62 +5874,17 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, - "commoner": { - "version": "0.10.8", - "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", - "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", - "dev": true, - "requires": { - "commander": "^2.5.0", - "detective": "^4.3.1", - "glob": "^5.0.15", - "graceful-fs": "^4.1.2", - "iconv-lite": "^0.4.5", - "mkdirp": "^0.5.0", - "private": "^0.1.6", - "q": "^1.1.2", - "recast": "^0.11.17" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "compare-versions": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz", - "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==", - "dev": true - }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, "compressible": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", - "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", "requires": { - "mime-db": ">= 1.34.0 < 2" - }, - "dependencies": { - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" - } + "mime-db": ">= 1.36.0 < 2" } }, "compression": { @@ -5031,6 +6018,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, "requires": { "date-now": "^0.1.4" } @@ -5043,7 +6031,8 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true }, "contains-path": { "version": "0.1.0", @@ -5054,12 +6043,14 @@ "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true }, "convert-source-map": { "version": "1.5.0", @@ -5069,17 +6060,20 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -5108,6 +6102,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, "requires": { "is-directory": "^0.3.1", "js-yaml": "^3.9.0", @@ -5118,12 +6113,14 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "js-yaml": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5133,6 +6130,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -5141,29 +6139,33 @@ } }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", - "ripemd160": "^2.0.0", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", "sha.js": "^2.4.0" } }, "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -5193,28 +6195,11 @@ "which": "^1.2.9" } }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.x.x" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.x.x" - } - } - } - }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -5242,12 +6227,14 @@ "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true }, "css-in-js-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "dev": true, "requires": { "hyphenate-style-name": "^1.0.2", "isobject": "^3.0.1" @@ -5256,7 +6243,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -5264,6 +6252,7 @@ "version": "0.28.11", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, "requires": { "babel-code-frame": "^6.26.0", "css-selector-tokenizer": "^0.7.0", @@ -5284,12 +6273,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -5301,6 +6292,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -5311,6 +6303,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, "requires": { "boolbase": "~1.0.0", "css-what": "2.1", @@ -5322,38 +6315,30 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, "requires": { "cssesc": "^0.1.0", "fastparse": "^1.1.1", "regexpu-core": "^1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - } } }, "css-what": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true }, "cssesc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true }, "cssnano": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, "requires": { "autoprefixer": "^6.3.1", "decamelize": "^1.1.2", @@ -5393,6 +6378,7 @@ "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, "requires": { "browserslist": "^1.7.6", "caniuse-db": "^1.0.30000634", @@ -5406,6 +6392,7 @@ "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, "requires": { "caniuse-db": "^1.0.30000639", "electron-to-chromium": "^1.2.7" @@ -5414,12 +6401,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -5431,6 +6420,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -5441,6 +6431,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, "requires": { "clap": "^1.0.9", "source-map": "^0.5.3" @@ -5453,9 +6444,9 @@ "dev": true }, "cssstyle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.0.0.tgz", - "integrity": "sha512-Bpuh47j2mRMY60X90mXaJAEtJwxvA2roZzbgwAXYhMbmwmakdRr4Cq9L5SkleKJNLOKqHIa2YWyOXDX3VgggSQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", + "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", "dev": true, "requires": { "cssom": "0.3.x" @@ -5469,22 +6460,18 @@ "cyclist": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, "requires": { "es5-ext": "^0.10.9" } }, - "d3": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", - "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=", - "dev": true - }, "damerau-levenshtein": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", @@ -5505,28 +6492,34 @@ "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" }, "data-urls": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", - "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.1.tgz", + "integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==", "dev": true, "requires": { - "abab": "^1.0.4", - "whatwg-mimetype": "^2.0.0", - "whatwg-url": "^6.4.0" + "abab": "^2.0.0", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^7.0.0" }, "dependencies": { - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } } } }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true }, "debug": { "version": "2.6.9", @@ -5627,12 +6620,6 @@ } } }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", @@ -5654,12 +6641,23 @@ "integrity": "sha512-Q89Z26KAfA3lpPGhbF6XMfYAm3jIV3avViy6KOJ2JLzFbeWHOvPQUu5aSJIWXap3gDZC2y1eF5HXEPI2wGqgvw==" }, "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } } }, "define-properties": { @@ -5691,7 +6689,8 @@ "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true }, "degenerator": { "version": "1.0.4", @@ -5749,6 +6748,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -5781,25 +6781,16 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dev": true, "requires": { "address": "^1.0.1", "debug": "^2.6.0" } }, - "detective": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", - "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", - "dev": true, - "requires": { - "acorn": "^5.2.1", - "defined": "^1.0.0" - } - }, "detox": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/detox/-/detox-8.1.4.tgz", - "integrity": "sha512-giozyXJPVywS8XsHUbyHe/1EMDsxR2A8I+3om3apE7NFqv+ArJYYaYmVu12yCETN44F/ons5CA47Tz7ij2gFUg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/detox/-/detox-9.0.1.tgz", + "integrity": "sha512-KT0Sptt4JvWHTXP1dxMzqXc/LCJxZIB9bKGtjDjg6hdLwOmLAxY3Zfz22ASKGC33rLT6dw/uvyODjgwfVzlYfw==", "dev": true, "requires": { "bunyan": "^1.8.12", @@ -5848,9 +6839,10 @@ "dev": true }, "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -5868,8 +6860,9 @@ }, "dom-converter": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "resolved": "http://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, "requires": { "utila": "~0.3" }, @@ -5877,19 +6870,22 @@ "utila": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true } } }, "dom-helpers": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", - "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" + "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==", + "dev": true }, "dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, "requires": { "domelementtype": "~1.1.1", "entities": "~1.1.1" @@ -5898,7 +6894,8 @@ "domelementtype": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true } } }, @@ -5910,12 +6907,14 @@ "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true }, "domelementtype": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true }, "domexception": { "version": "1.0.1", @@ -5930,6 +6929,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, "requires": { "domelementtype": "1" } @@ -5938,6 +6938,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, "requires": { "dom-serializer": "0", "domelementtype": "1" @@ -5953,8 +6954,9 @@ }, "dotenv": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", - "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==" + "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "dev": true }, "dtrace-provider": { "version": "0.8.7", @@ -5968,13 +6970,15 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true }, "duplexify": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -6005,14 +7009,16 @@ } }, "electron-to-chromium": { - "version": "1.3.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.41.tgz", - "integrity": "sha1-fjNkPgDNhe39F+BBlPbQDnNzcjU=" + "version": "1.3.70", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz", + "integrity": "sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==", + "dev": true }, "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -6037,7 +7043,8 @@ "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -6064,6 +7071,7 @@ "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.4.0", @@ -6076,16 +7084,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" }, - "envify": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", - "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=", - "dev": true, - "requires": { - "jstransform": "^11.0.3", - "through": "~2.3.4" - } - }, "envinfo": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-5.10.0.tgz", @@ -6095,6 +7093,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, "requires": { "prr": "~1.0.1" } @@ -6107,15 +7106,6 @@ "is-arrayish": "^0.2.1" } }, - "error-stack-parser": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz", - "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", - "dev": true, - "requires": { - "stackframe": "^0.3.1" - } - }, "errorhandler": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.0.tgz", @@ -6150,9 +7140,10 @@ } }, "es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "version": "0.10.46", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", + "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "dev": true, "requires": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.1", @@ -6163,6 +7154,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.35", @@ -6173,6 +7165,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, "requires": { "d": "1", "es5-ext": "~0.10.14", @@ -6183,9 +7176,9 @@ } }, "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" + "version": "3.0.2", + "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" }, "es6-promisify": { "version": "5.0.0", @@ -6206,6 +7199,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, "requires": { "d": "1", "es5-ext": "~0.10.14", @@ -6218,6 +7212,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, "requires": { "d": "1", "es5-ext": "~0.10.14" @@ -6227,6 +7222,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, "requires": { "recast": "~0.11.12", "through": "~2.3.6" @@ -6236,6 +7232,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.14", @@ -6282,6 +7279,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, "requires": { "es6-map": "^0.1.3", "es6-weak-map": "^2.0.1", @@ -6290,51 +7288,72 @@ } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", + "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", + "cross-spawn": "^6.0.5", "debug": "^3.1.0", "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^2.0.0", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", + "globals": "^11.7.0", + "ignore": "^4.0.6", "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^1.0.1", + "regexpp": "^2.0.0", "require-uncached": "^1.0.3", - "semver": "^5.3.0", + "semver": "^5.5.1", "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "ajv": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -6355,13 +7374,42 @@ "supports-color": "^5.3.0" } }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "esprima": { @@ -6370,17 +7418,58 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inquirer": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", + "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } }, "js-yaml": { "version": "3.12.0", @@ -6392,10 +7481,28 @@ "esprima": "^4.0.0" } }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -6404,21 +7511,25 @@ } }, "eslint-config-airbnb": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz", - "integrity": "sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz", + "integrity": "sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==", "dev": true, "requires": { - "eslint-config-airbnb-base": "^12.1.0" + "eslint-config-airbnb-base": "^13.1.0", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" } }, "eslint-config-airbnb-base": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", - "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", + "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", "dev": true, "requires": { - "eslint-restricted-globals": "^0.1.1" + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" } }, "eslint-import-resolver-node": { @@ -6472,9 +7583,9 @@ } }, "eslint-plugin-import": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz", - "integrity": "sha512-t6hGKQDMIt9N8R7vLepsYXgDfeuhp6ZJSgtrLEDxonpSubyxUZHjhm6LsAaZX8q6GYVxkbT3kTsV9G5mBCFR6A==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", "dev": true, "requires": { "contains-path": "^0.1.0", @@ -6544,11 +7655,12 @@ } }, "eslint-plugin-react": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.10.0.tgz", - "integrity": "sha512-18rzWn4AtbSUxFKKM7aCVcj5LXOhOKdwBino3KKWy4psxfPW0YtIbE8WNRDUdyHFL50BeLb6qFd4vpvNYyp7hw==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", + "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", "dev": true, "requires": { + "array-includes": "^3.0.3", "doctrine": "^2.1.0", "has": "^1.0.3", "jsx-ast-utils": "^2.0.1", @@ -6567,9 +7679,9 @@ } }, "eslint-plugin-react-native": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.2.1.tgz", - "integrity": "sha512-1AnJO3JUCAoLpyOEsWCwN9hPJ0aQ72OT+JvLMuHjEWYb6QWxiNOszp24CEwegMzbREtJKI9OoRqYYDYxMxmjgQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.3.0.tgz", + "integrity": "sha512-+Td4JX9POuhNDQdIxlzgcD0RDBmA1kB6dTnOCORtN/cDa2vUyIpGLuVkVvgrnUOizsgD7uhniomTpynRcjIvFQ==", "dev": true, "requires": { "eslint-plugin-react-native-globals": "^0.1.1" @@ -6597,6 +7709,12 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -6604,19 +7722,19 @@ "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" }, "dependencies": { "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true } } @@ -6639,6 +7757,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, "requires": { "estraverse": "^4.1.0", "object-assign": "^4.0.1" @@ -6663,6 +7782,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, "requires": { "d": "1", "es5-ext": "~0.10.14" @@ -6679,14 +7799,16 @@ "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", + "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", + "dev": true }, "eventsource": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, "requires": { "original": ">=0.0.5" } @@ -6695,6 +7817,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -6734,7 +7857,8 @@ "exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=", + "dev": true }, "exit": { "version": "0.1.2", @@ -6762,24 +7886,31 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } }, "expect": { - "version": "23.4.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-23.4.0.tgz", - "integrity": "sha1-baTsyZwUcSU+cogziYOtHrrbYMM=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz", + "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==", "dev": true, "requires": { "ansi-styles": "^3.2.0", - "jest-diff": "^23.2.0", + "jest-diff": "^23.6.0", "jest-get-type": "^22.1.0", - "jest-matcher-utils": "^23.2.0", + "jest-matcher-utils": "^23.6.0", "jest-message-util": "^23.4.0", "jest-regex-util": "^23.3.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -6788,13 +7919,67 @@ "requires": { "color-convert": "^1.9.0" } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "express": { "version": "4.16.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, "requires": { "accepts": "~1.3.5", "array-flatten": "1.1.1", @@ -6829,9 +8014,9 @@ } }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -6945,17 +8130,20 @@ "fast-memoize": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.1.tgz", - "integrity": "sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g==" + "integrity": "sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g==", + "dev": true }, "fastparse": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true }, "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, "requires": { "websocket-driver": ">=0.5.1" } @@ -7004,39 +8192,6 @@ "plugin-error": "^0.1.2", "semver": "^5.1.0", "through2": "^2.0.0" - }, - "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" - } } }, "fd-slicer": { @@ -7070,6 +8225,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, "requires": { "loader-utils": "^1.0.2", "schema-utils": "^0.4.5" @@ -7103,7 +8259,8 @@ "filesize": { "version": "3.5.11", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" + "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==", + "dev": true }, "fill-range": { "version": "2.2.4", @@ -7121,6 +8278,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -7183,12 +8341,14 @@ "flatten": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true }, "flush-write-stream": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.4" @@ -7218,20 +8378,11 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, - "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true }, "fragment-cache": { "version": "0.2.1", @@ -7250,6 +8401,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -7270,10 +8422,19 @@ "klaw": "^1.0.0" } }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "requires": { + "minipass": "^2.2.1" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -8189,27 +9350,6 @@ } } }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, "ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", @@ -8240,7 +9380,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -8251,7 +9392,8 @@ "fuse.js": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.2.1.tgz", - "integrity": "sha1-YyDLlM5W7JdVyJred1vNuwNY1CU=" + "integrity": "sha1-YyDLlM5W7JdVyJred1vNuwNY1CU=", + "dev": true }, "gauge": { "version": "2.7.4", @@ -8351,6 +9493,7 @@ "version": "2.20.40", "resolved": "https://registry.npmjs.org/glamor/-/glamor-2.20.40.tgz", "integrity": "sha512-DNXCd+c14N9QF8aAKrfl4xakPk5FdcFwmH7sD0qnC0Pr7xoZ5W9yovhUrY/dJc3psfGGXC58vqQyRtuskyUJxA==", + "dev": true, "requires": { "fbjs": "^0.8.12", "inline-style-prefixer": "^3.0.6", @@ -8363,6 +9506,7 @@ "version": "4.13.1", "resolved": "https://registry.npmjs.org/glamorous/-/glamorous-4.13.1.tgz", "integrity": "sha512-x9yCGlRrPEkHF63m+WoZXHnpSet5ipS/fxczx5ic0ZKPPd2mMDyCZ0iEhse49OFlag0yxbJTc7k/L0g1GCmCYQ==", + "dev": true, "requires": { "brcast": "^3.0.0", "csstype": "^2.2.0", @@ -8417,6 +9561,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -8427,6 +9572,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -8487,35 +9633,45 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "dev": true, "requires": { "duplexer": "^0.1.1" } }, "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", "dev": true, "requires": { - "async": "^1.4.0", + "async": "^2.5.0", "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true, + "optional": true }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, + "optional": true, "requires": { - "amdefine": ">=0.0.4" + "commander": "~2.17.1", + "source-map": "~0.6.1" } } } @@ -8525,15 +9681,6 @@ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, "harmony-reflect": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.5.1.tgz", @@ -8544,6 +9691,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, "requires": { "function-bind": "^1.0.2" } @@ -8561,6 +9709,12 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -8636,595 +9790,42 @@ } }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, "requires": { - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "dev": true, "requires": { "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "haul": { - "version": "1.0.0-rc.4", - "resolved": "https://registry.npmjs.org/haul/-/haul-1.0.0-rc.4.tgz", - "integrity": "sha1-hegKOd86w/AYHeYFdBPTN0m4uIM=", - "dev": true, - "requires": { - "@zamotany/react-proxy": "3.0.0-alpha.4", - "babel-core": "^6.24.0", - "babel-loader": "^7.1.4", - "babel-plugin-transform-flow-strip-types": "^6.22.0", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "^1.2.2", - "babel-register": "^6.24.0", - "camelcase-keys": "^4.0.0", - "case-sensitive-paths-webpack-plugin": "^2.1.2", - "chalk": "1.1.3", - "clear": "^0.0.1", - "cliui": "^3.2.0", - "clone": "^2.1.1", - "core-js": "^2.5.3", - "decamelize": "^1.2.0", - "dedent": "^0.7.0", - "escape-string-regexp": "^1.0.5", - "express": "^4.15.2", - "hasha": "^2.2.0", - "hoist-non-react-statics": "^2.2.1", - "image-size": "^0.5.1", - "inquirer": "^3.0.6", - "loader-utils": "^1.1.0", - "memory-fs": "^0.4.1", - "mime-types": "^2.1.18", - "minimist": "^1.2.0", - "morgan": "^1.8.1", - "multi-progress": "^2.0.0", - "node-emoji": "^1.8.1", - "node-fetch": "^2.0.0", - "open-in-editor": "^2.2.0", - "opn": "^5.3.0", - "ora": "^1.2.0", - "platform-select": "^1.1.0", - "react": "^16.2.0", - "react-deep-force-update": "^2.0.1", - "react-hot-loader": "3.0.0-beta.7", - "react-slate": "^0.5.1", - "react-slate-utils": "^0.2.0", - "resolve": "^1.3.3", - "resolve-from": "^4.0.0", - "rxjs": "^5.4.2", - "semver": "^5.5.0", - "source-map": "^0.5.6", - "strip-ansi": "^3.0.1", - "thread-loader": "^1.1.5", - "webpack": "^4.12.0", - "webpack-hot-middleware": "^2.22.1", - "ws": "^2.2.2", - "xpipe": "^1.0.5" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - }, - "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", - "dev": true - }, - "opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "react-deep-force-update": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz", - "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk=", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "webpack": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.14.0.tgz", - "integrity": "sha512-CgZPUwobJbQlZqpylDNtEazZLfNnGuyFmpk1dHIP2kFchtyMWB+W2wBKPImSnSQ2rbX/WZMKiQax+SZmlUXuQQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.12", - "@webassemblyjs/helper-module-context": "1.5.12", - "@webassemblyjs/wasm-edit": "1.5.12", - "@webassemblyjs/wasm-opt": "1.5.12", - "@webassemblyjs/wasm-parser": "1.5.12", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^3.7.1", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.0.0", - "uglifyjs-webpack-plugin": "^1.2.4", - "watchpack": "^1.5.0", - "webpack-sources": "^1.0.1" - } - }, - "ws": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", - "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", - "dev": true, - "requires": { - "safe-buffer": "~5.0.1", - "ultron": "~1.1.0" - } - } - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.x.x", - "cryptiles": "3.x.x", - "hoek": "4.x.x", - "sntp": "2.x.x" + "minimalistic-assert": "^1.0.1" } }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" - }, "hoist-non-react-statics": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", @@ -9243,6 +9844,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -9255,12 +9857,14 @@ "html-comment-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true }, "html-element-attributes": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz", - "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==" + "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==", + "dev": true }, "html-encoding-sniffer": { "version": "1.0.2", @@ -9274,12 +9878,14 @@ "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true }, "html-loader": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", + "dev": true, "requires": { "es6-templates": "^0.2.3", "fastparse": "^1.1.1", @@ -9289,13 +9895,14 @@ } }, "html-minifier": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.19.tgz", - "integrity": "sha512-Qr2JC9nsjK8oCrEmuB430ZIA8YWbF3D5LSjywD75FTuXmeqacwHgIM8wp3vHYzzPbklSjp53RdmDuzR4ub2HzA==", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", + "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", + "dev": true, "requires": { "camel-case": "3.0.x", - "clean-css": "4.1.x", - "commander": "2.16.x", + "clean-css": "4.2.x", + "commander": "2.17.x", "he": "1.1.x", "param-case": "2.1.x", "relateurl": "0.2.x", @@ -9303,21 +9910,24 @@ }, "dependencies": { "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==" + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "uglify-js": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.6.tgz", - "integrity": "sha512-O1D7L6WcOzS1qW2ehopEm4cWm5yA6bQBozlks8jO8ODxYCy4zv+bR/la4Lwp01tpkYGNonnpXvUpYtrvSu8Yzg==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, "requires": { - "commander": "~2.16.0", + "commander": "~2.17.1", "source-map": "~0.6.1" } } @@ -9326,12 +9936,14 @@ "html-tag-names": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/html-tag-names/-/html-tag-names-1.1.3.tgz", - "integrity": "sha512-kY/ck6Q0lGLxGocn86BM8Q4vCTUCY78VN43h0uMGeZ8p9LU3XdSNQR4Rs3JEjrKZSS5iXI1YgzY0g8U1AFDQzA==" + "integrity": "sha512-kY/ck6Q0lGLxGocn86BM8Q4vCTUCY78VN43h0uMGeZ8p9LU3XdSNQR4Rs3JEjrKZSS5iXI1YgzY0g8U1AFDQzA==", + "dev": true }, "html-webpack-plugin": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", + "dev": true, "requires": { "bluebird": "^3.4.7", "html-minifier": "^3.2.3", @@ -9345,6 +9957,7 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -9358,6 +9971,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, "requires": { "domelementtype": "1", "domhandler": "2.1", @@ -9369,14 +9983,16 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, "requires": { "domelementtype": "1" } }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -9387,7 +10003,8 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -9422,7 +10039,8 @@ "http-parser-js": { "version": "0.4.13", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true }, "http-proxy-agent": { "version": "2.1.0", @@ -9461,7 +10079,8 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true }, "https-proxy-agent": { "version": "2.2.1", @@ -9485,7 +10104,8 @@ "hyphenate-style-name": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", - "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" + "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=", + "dev": true }, "i18n-js": { "version": "3.0.11", @@ -9500,12 +10120,14 @@ "icss-replace-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true }, "icss-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, "requires": { "postcss": "^6.0.1" } @@ -9527,19 +10149,19 @@ "iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true }, "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "ignore-walk": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, "requires": { "minimatch": "^3.0.4" } @@ -9549,15 +10171,22 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true }, "import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, "requires": { "import-from": "^2.1.0" } @@ -9566,15 +10195,9 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, "requires": { "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } } }, "import-local": { @@ -9595,12 +10218,14 @@ "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true }, "inflight": { "version": "1.0.6", @@ -9625,6 +10250,7 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", + "dev": true, "requires": { "bowser": "^1.7.3", "css-in-js-utils": "^2.0.0" @@ -9687,7 +10313,8 @@ "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true }, "invariant": { "version": "2.2.2", @@ -9708,14 +10335,16 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true }, "is-accessor-descriptor": { "version": "1.0.0", @@ -9741,6 +10370,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { "binary-extensions": "^1.0.0" } @@ -9765,12 +10395,12 @@ "dev": true }, "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "^1.5.0" } }, "is-data-descriptor": { @@ -9819,7 +10449,8 @@ "is-dom": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz", - "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=" + "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=", + "dev": true }, "is-dotfile": { "version": "1.0.3", @@ -9860,7 +10491,8 @@ "is-function": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", + "dev": true }, "is-generator-fn": { "version": "1.0.0", @@ -9936,7 +10568,8 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -9986,7 +10619,8 @@ "is-root": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=", + "dev": true }, "is-stream": { "version": "1.1.0", @@ -9997,6 +10631,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, "requires": { "html-comment-regex": "^1.1.0" } @@ -10068,44 +10703,43 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", - "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", "dev": true, "requires": { "async": "^2.1.4", - "compare-versions": "^3.1.0", "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.2.0", - "istanbul-lib-instrument": "^1.10.1", - "istanbul-lib-report": "^1.1.4", - "istanbul-lib-source-maps": "^1.2.4", - "istanbul-reports": "^1.3.0", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", "js-yaml": "^3.7.0", "mkdirp": "^0.5.1", "once": "^1.4.0" } }, "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", "dev": true }, "istanbul-lib-hook": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", - "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", "dev": true, "requires": { - "append-transform": "^1.0.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { "babel-generator": "^6.18.0", @@ -10113,17 +10747,17 @@ "babel-traverse": "^6.18.0", "babel-types": "^6.18.0", "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-coverage": "^1.2.1", "semver": "^5.3.0" } }, "istanbul-lib-report": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", - "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-coverage": "^1.2.1", "mkdirp": "^0.5.1", "path-parse": "^1.0.5", "supports-color": "^3.1.2" @@ -10147,46 +10781,52 @@ } }, "istanbul-lib-source-maps": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", - "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", "dev": true, "requires": { "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-coverage": "^1.2.1", "mkdirp": "^0.5.1", "rimraf": "^2.6.1", "source-map": "^0.5.3" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, "istanbul-reports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", - "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", "dev": true, "requires": { "handlebars": "^4.0.3" } }, "jest": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-23.4.2.tgz", - "integrity": "sha512-w10HGpVFWT1oN8B2coxeiMEsZoggkDaw3i26xHGLU+rsR+LYkBk8qpZCgi+1cD1S6ttPjZDL8E8M99lmNhgTeA==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz", + "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==", "dev": true, "requires": { "import-local": "^1.0.0", - "jest-cli": "^23.4.2" + "jest-cli": "^23.6.0" } }, "jest-changed-files": { @@ -10199,9 +10839,9 @@ } }, "jest-cli": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.4.2.tgz", - "integrity": "sha512-vaDzy0wRWrgSfz4ZImCqD2gtZqCSoEWp60y3USvGDxA2b4K0rGj2voru6a5scJFjDx5GCiNWKpz2E8IdWDVjdw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz", + "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", @@ -10216,18 +10856,18 @@ "istanbul-lib-instrument": "^1.10.1", "istanbul-lib-source-maps": "^1.2.4", "jest-changed-files": "^23.4.2", - "jest-config": "^23.4.2", + "jest-config": "^23.6.0", "jest-environment-jsdom": "^23.4.0", "jest-get-type": "^22.1.0", - "jest-haste-map": "^23.4.1", + "jest-haste-map": "^23.6.0", "jest-message-util": "^23.4.0", "jest-regex-util": "^23.3.0", - "jest-resolve-dependencies": "^23.4.2", - "jest-runner": "^23.4.2", - "jest-runtime": "^23.4.2", - "jest-snapshot": "^23.4.2", + "jest-resolve-dependencies": "^23.6.0", + "jest-runner": "^23.6.0", + "jest-runtime": "^23.6.0", + "jest-snapshot": "^23.6.0", "jest-util": "^23.4.0", - "jest-validate": "^23.4.0", + "jest-validate": "^23.6.0", "jest-watcher": "^23.4.0", "jest-worker": "^23.2.0", "micromatch": "^2.3.11", @@ -10242,6 +10882,12 @@ "yargs": "^11.0.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -10273,23 +10919,36 @@ "wrap-ansi": "^2.0.0" } }, - "jest-docblock": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", - "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "loose-envify": "^1.0.0" + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" } }, "jest-haste-map": { - "version": "23.4.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.4.1.tgz", - "integrity": "sha512-PGQxOEGAfRbTyJkmZeOKkVSs+KVeWgG625p89KUuq+sIIchY5P8iPIIc+Hw2tJJPBzahU3qopw1kF/qyhDdNBw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", "dev": true, "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", "jest-docblock": "^23.2.0", "jest-serializer": "^23.0.1", "jest-worker": "^23.2.0", @@ -10297,19 +10956,66 @@ "sane": "^2.0.0" } }, - "jest-worker": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", - "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", "dev": true, "requires": { - "merge-stream": "^1.0.1" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" } }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10347,24 +11053,25 @@ } }, "jest-config": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.4.2.tgz", - "integrity": "sha512-CDJGO4H+7P+T6khaSHEjTxqVaIlmQMEFAyJFOVrAQeM+Xn12iZ+YY8Pluk1RDxi8Jqj9DoE09PHQzASCGePGtg==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz", + "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==", "dev": true, "requires": { "babel-core": "^6.0.0", - "babel-jest": "^23.4.2", + "babel-jest": "^23.6.0", "chalk": "^2.0.1", "glob": "^7.1.1", "jest-environment-jsdom": "^23.4.0", "jest-environment-node": "^23.4.0", "jest-get-type": "^22.1.0", - "jest-jasmine2": "^23.4.2", + "jest-jasmine2": "^23.6.0", "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.4.1", + "jest-resolve": "^23.6.0", "jest-util": "^23.4.0", - "jest-validate": "^23.4.0", - "pretty-format": "^23.2.0" + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10421,15 +11128,29 @@ } }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -10437,9 +11158,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10448,15 +11169,15 @@ } }, "jest-diff": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.2.0.tgz", - "integrity": "sha1-nyz0tR4Sx5FVAgCrwWtHEwrxBio=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", "dev": true, "requires": { "chalk": "^2.0.1", "diff": "^3.2.0", "jest-get-type": "^22.1.0", - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10486,9 +11207,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -10496,9 +11217,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10507,21 +11228,21 @@ } }, "jest-docblock": { - "version": "23.0.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.0.1.tgz", - "integrity": "sha1-3t3RgzO+XcJBUmCgTvP86SdrVyU=", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", + "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", "requires": { "detect-newline": "^2.1.0" } }, "jest-each": { - "version": "23.4.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.4.0.tgz", - "integrity": "sha1-L6nt2J2qGk7cn/m/YGKja3E0UUM=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz", + "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==", "dev": true, "requires": { "chalk": "^2.0.1", - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10551,9 +11272,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -10561,9 +11282,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10599,23 +11320,34 @@ "dev": true }, "jest-haste-map": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.1.0.tgz", - "integrity": "sha1-GObH1ajScTb5G32YUvhd4McHTEk=", + "version": "23.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.5.0.tgz", + "integrity": "sha512-bt9Swigb6KZ6ZQq/fQDUwdUeHenVvZ6G/lKwJjwRGp+Fap8D4B3bND3FaeJg7vXVsLX8hXshRArbVxLop/5wLw==", "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", - "jest-docblock": "^23.0.1", + "invariant": "^2.2.4", + "jest-docblock": "^23.2.0", "jest-serializer": "^23.0.1", - "jest-worker": "^23.0.1", + "jest-worker": "^23.2.0", "micromatch": "^2.3.11", "sane": "^2.0.0" + }, + "dependencies": { + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + } } }, "jest-image-snapshot": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-2.4.3.tgz", - "integrity": "sha512-3mGa/6xLhjOMTl7pd5Wuf72Juq5hOyhfCiXhlHMm1UYIVVmH/RIqBCB/5KDmkPVjdnZO4aOvaFgd+HdgC3VGMw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-2.5.0.tgz", + "integrity": "sha512-uES6gncVoy4phmIOJEmAeEqA8hawvbyY6/y6Mh0dHt+JcJMJPWFpeP1dQ2JvoFuCpNWICYC8KhDBJ9a5LAcJcA==", "dev": true, "requires": { "chalk": "^1.1.3", @@ -10628,23 +11360,23 @@ } }, "jest-jasmine2": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.4.2.tgz", - "integrity": "sha512-MUoqn41XHMQe5u8QvRTH2HahpBNzImnnjS3pV/T7LvrCM6f2zfGdi1Pm+bRbFMLJROqR8VlK8HmsenL2WjrUIQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz", + "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==", "dev": true, "requires": { "babel-traverse": "^6.0.0", "chalk": "^2.0.1", "co": "^4.6.0", - "expect": "^23.4.0", + "expect": "^23.6.0", "is-generator-fn": "^1.0.0", - "jest-diff": "^23.2.0", - "jest-each": "^23.4.0", - "jest-matcher-utils": "^23.2.0", + "jest-diff": "^23.6.0", + "jest-each": "^23.6.0", + "jest-matcher-utils": "^23.6.0", "jest-message-util": "^23.4.0", - "jest-snapshot": "^23.4.2", + "jest-snapshot": "^23.6.0", "jest-util": "^23.4.0", - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10673,20 +11405,78 @@ "supports-color": "^5.3.0" } }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", "ansi-styles": "^3.2.0" } }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10695,12 +11485,12 @@ } }, "jest-leak-detector": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.2.0.tgz", - "integrity": "sha1-wonZYdxjjxQ1fU75bgQx7MGqN30=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz", + "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==", "dev": true, "requires": { - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10719,9 +11509,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -10731,14 +11521,14 @@ } }, "jest-matcher-utils": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.2.0.tgz", - "integrity": "sha1-TUmB8jIT6Tnjzt8j3DTHR7WuGRM=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", "dev": true, "requires": { "chalk": "^2.0.1", "jest-get-type": "^22.1.0", - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -10768,9 +11558,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -10778,9 +11568,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10845,9 +11635,9 @@ "dev": true }, "jest-resolve": { - "version": "23.4.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.4.1.tgz", - "integrity": "sha512-VNk4YRNR5gsHhNS0Lp46/DzTT11e+ecbUC61ikE593cKbtdrhrMO+zXkOJaE8YDD5sHxH9W6OfssNn4FkZBzZQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", "dev": true, "requires": { "browser-resolve": "^1.11.3", @@ -10876,9 +11666,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -10887,53 +11677,159 @@ } }, "jest-resolve-dependencies": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.4.2.tgz", - "integrity": "sha512-JUrU1/1mQAf0eKwKT4+RRnaqcw0UcRzRE38vyO+YnqoXUVidf646iuaKE+NG7E6Gb0+EVPOJ6TgqkaTPdQz78A==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz", + "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==", "dev": true, "requires": { "jest-regex-util": "^23.3.0", - "jest-snapshot": "^23.4.2" + "jest-snapshot": "^23.6.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "jest-runner": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.4.2.tgz", - "integrity": "sha512-o+aEdDE7/Gyp8fLYEEf5B8aOUguz76AYcAMl5pueucey2Q50O8uUIXJ7zvt8O6OEJDztR3Kb+osMoh8MVIqgTw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz", + "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==", "dev": true, "requires": { "exit": "^0.1.2", "graceful-fs": "^4.1.11", - "jest-config": "^23.4.2", + "jest-config": "^23.6.0", "jest-docblock": "^23.2.0", - "jest-haste-map": "^23.4.1", - "jest-jasmine2": "^23.4.2", - "jest-leak-detector": "^23.2.0", + "jest-haste-map": "^23.6.0", + "jest-jasmine2": "^23.6.0", + "jest-leak-detector": "^23.6.0", "jest-message-util": "^23.4.0", - "jest-runtime": "^23.4.2", + "jest-runtime": "^23.6.0", "jest-util": "^23.4.0", "jest-worker": "^23.2.0", "source-map-support": "^0.5.6", "throat": "^4.0.0" }, "dependencies": { - "jest-docblock": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", - "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "loose-envify": "^1.0.0" } }, "jest-haste-map": { - "version": "23.4.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.4.1.tgz", - "integrity": "sha512-PGQxOEGAfRbTyJkmZeOKkVSs+KVeWgG625p89KUuq+sIIchY5P8iPIIc+Hw2tJJPBzahU3qopw1kF/qyhDdNBw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", "dev": true, "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", "jest-docblock": "^23.2.0", "jest-serializer": "^23.0.1", "jest-worker": "^23.2.0", @@ -10941,15 +11837,6 @@ "sane": "^2.0.0" } }, - "jest-worker": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", - "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", - "dev": true, - "requires": { - "merge-stream": "^1.0.1" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10957,9 +11844,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -10969,9 +11856,9 @@ } }, "jest-runtime": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.4.2.tgz", - "integrity": "sha512-qaUDOi7tcdDe3MH5g5ycEslTpx0voPZvzIYbKjvWxCzCL2JEemLM+7IEe0BeLi2v5wvb/uh3dkb2wQI67uPtCw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz", + "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==", "dev": true, "requires": { "babel-core": "^6.0.0", @@ -10981,14 +11868,14 @@ "exit": "^0.1.2", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.1.11", - "jest-config": "^23.4.2", - "jest-haste-map": "^23.4.1", + "jest-config": "^23.6.0", + "jest-haste-map": "^23.6.0", "jest-message-util": "^23.4.0", "jest-regex-util": "^23.3.0", - "jest-resolve": "^23.4.1", - "jest-snapshot": "^23.4.2", + "jest-resolve": "^23.6.0", + "jest-snapshot": "^23.6.0", "jest-util": "^23.4.0", - "jest-validate": "^23.4.0", + "jest-validate": "^23.6.0", "micromatch": "^2.3.11", "realpath-native": "^1.0.0", "slash": "^1.0.0", @@ -10997,6 +11884,12 @@ "yargs": "^11.0.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -11034,10 +11927,13 @@ }, "dependencies": { "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } } } }, @@ -11063,23 +11959,36 @@ "wrap-ansi": "^2.0.0" } }, - "jest-docblock": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", - "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "loose-envify": "^1.0.0" + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" } }, "jest-haste-map": { - "version": "23.4.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.4.1.tgz", - "integrity": "sha512-PGQxOEGAfRbTyJkmZeOKkVSs+KVeWgG625p89KUuq+sIIchY5P8iPIIc+Hw2tJJPBzahU3qopw1kF/qyhDdNBw==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", "dev": true, "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", "jest-docblock": "^23.2.0", "jest-serializer": "^23.0.1", "jest-worker": "^23.2.0", @@ -11087,19 +11996,66 @@ "sane": "^2.0.0" } }, - "jest-worker": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", - "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", "dev": true, "requires": { - "merge-stream": "^1.0.1" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" } }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dev": true, + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11153,20 +12109,20 @@ "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=" }, "jest-snapshot": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.4.2.tgz", - "integrity": "sha512-rCBxIURDlVEW1gJgJSpo8l2F2gFwp9U7Yb3CmcABUpmQ8NASpb6LJkEvtcQifAYSi22OL44TSuanq1G6x1GJwg==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", "dev": true, "requires": { "babel-types": "^6.0.0", "chalk": "^2.0.1", - "jest-diff": "^23.2.0", - "jest-matcher-utils": "^23.2.0", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", "jest-message-util": "^23.4.0", - "jest-resolve": "^23.4.1", + "jest-resolve": "^23.6.0", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "pretty-format": "^23.2.0", + "pretty-format": "^23.6.0", "semver": "^5.5.0" }, "dependencies": { @@ -11197,9 +12153,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -11207,15 +12163,15 @@ } }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11281,9 +12237,9 @@ "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11292,15 +12248,15 @@ } }, "jest-validate": { - "version": "23.4.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.4.0.tgz", - "integrity": "sha1-2W7t4B7wOskJwAnpyORVGX1IwgE=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz", + "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==", "dev": true, "requires": { "chalk": "^2.0.1", "jest-get-type": "^22.1.0", "leven": "^2.1.0", - "pretty-format": "^23.2.0" + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -11330,9 +12286,9 @@ } }, "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", "dev": true, "requires": { "ansi-regex": "^3.0.0", @@ -11340,9 +12296,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11382,9 +12338,9 @@ } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11393,17 +12349,17 @@ } }, "jest-worker": { - "version": "23.0.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.0.1.tgz", - "integrity": "sha1-nmSd2WP/QEYCb5HEAX8Dmmqkp7w=", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", + "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", "requires": { "merge-stream": "^1.0.1" } }, "js-base64": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", - "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==" + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" }, "js-sha256": { "version": "0.9.0", @@ -11470,66 +12426,11 @@ }, "dependencies": { "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "dependencies": { - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - } - } - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, "ws": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", @@ -11549,7 +12450,8 @@ "json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true }, "json-parse-better-errors": { "version": "1.0.1", @@ -11588,7 +12490,8 @@ "json3": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true }, "json5": { "version": "0.5.1", @@ -11597,7 +12500,7 @@ }, "jsonfile": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" @@ -11619,42 +12522,6 @@ "verror": "1.10.0" } }, - "jstransform": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", - "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=", - "dev": true, - "requires": { - "base62": "^1.1.0", - "commoner": "^0.10.1", - "esprima-fb": "^15001.1.0-dev-harmony-fb", - "object-assign": "^2.0.0", - "source-map": "^0.4.2" - }, - "dependencies": { - "esprima-fb": { - "version": "15001.1.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", - "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=", - "dev": true - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "jsx-ast-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", @@ -11664,10 +12531,53 @@ "array-includes": "^3.0.3" } }, + "jszip": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "requires": { + "core-js": "~2.3.0", + "es6-promise": "~3.0.2", + "lie": "~3.1.0", + "pako": "~1.0.2", + "readable-stream": "~2.0.6" + }, + "dependencies": { + "core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "keycode": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=", + "dev": true }, "keymirror": { "version": "0.1.1", @@ -11691,15 +12601,16 @@ } }, "kleur": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.1.tgz", - "integrity": "sha512-Zq/jyANIJ2uX8UZjWlqLwbyhcxSXJtT/Y89lClyeZd3l++3ztL1I5SSCYrbcbwSunTjC88N3WuMk0kRDQD6gzA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz", + "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==", "dev": true }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true }, "lcid": { "version": "1.0.0", @@ -11709,16 +12620,11 @@ "invert-kv": "^1.0.0" } }, - "leb": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", - "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=", - "dev": true - }, "left-pad": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", - "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true }, "leven": { "version": "2.1.0", @@ -11735,6 +12641,14 @@ "type-check": "~0.3.2" } }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, "linkify-it": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz", @@ -11755,14 +12669,16 @@ } }, "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "dev": true }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -11779,9 +12695,9 @@ } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash-es": { "version": "4.17.10", @@ -11807,7 +12723,8 @@ "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true }, "lodash.clonedeep": { "version": "4.5.0", @@ -11817,7 +12734,8 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true }, "lodash.flatten": { "version": "4.4.0", @@ -11847,7 +12765,8 @@ "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true }, "lodash.keys": { "version": "3.1.2", @@ -11862,7 +12781,8 @@ "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true }, "lodash.pad": { "version": "4.5.1", @@ -11882,7 +12802,8 @@ "lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true }, "lodash.set": { "version": "4.3.2", @@ -11892,85 +12813,31 @@ "lodash.some": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", - "dev": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true }, "loose-envify": { "version": "1.3.1", @@ -11983,7 +12850,8 @@ "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true }, "lru-cache": { "version": "4.1.1", @@ -12015,9 +12883,10 @@ } }, "make-error": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", - "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true }, "makeerror": { "version": "1.0.11", @@ -12027,23 +12896,11 @@ "tmpl": "1.0.x" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -12073,6 +12930,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/markdown-loader/-/markdown-loader-2.0.2.tgz", "integrity": "sha512-v/ej7DflZbb6t//3Yu9vg0T+sun+Q9EoqggifeyABKfvFROqPwwwpv+hd1NKT2QxTRg6VCFk10IIJcMI13yCoQ==", + "dev": true, "requires": { "loader-utils": "^1.1.0", "marked": "^0.3.9" @@ -12081,12 +12939,14 @@ "marked": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "dev": true }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true }, "math-random": { "version": "1.0.1", @@ -12097,20 +12957,10 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } } }, "mdurl": { @@ -12121,7 +12971,8 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true }, "mem": { "version": "1.1.0", @@ -12135,6 +12986,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -12148,7 +13000,8 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true }, "merge-stream": { "version": "1.0.1", @@ -12190,85 +13043,51 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "metro": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.38.3.tgz", - "integrity": "sha512-1oGaZiysRwrpQLYXAZ2pOS5KxzMNz4s7q2xO/62urtSDfmtZm2fF373FBbIyfQ7KLcX5ElAsF+JZGPAvgLX1aA==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.45.6.tgz", + "integrity": "sha512-+RinU6Qcea/zX9xxfrgmeFBwJ3tsdgLyBJm4tQOmusU4kE8YEE4LQ3IGG60qk3wzYloflMB/8ilIGG4Z/gz2Ew==", "requires": { - "@babel/core": "7.0.0-beta.47", - "@babel/generator": "7.0.0-beta.47", - "@babel/helper-remap-async-to-generator": "7.0.0-beta.47", - "@babel/plugin-external-helpers": "7.0.0-beta.47", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.47", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.47", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.47", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.0.0-beta.47", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.47", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.47", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.47", - "@babel/plugin-transform-classes": "7.0.0-beta.47", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.47", - "@babel/plugin-transform-destructuring": "7.0.0-beta.47", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.47", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.47", - "@babel/plugin-transform-for-of": "7.0.0-beta.47", - "@babel/plugin-transform-function-name": "7.0.0-beta.47", - "@babel/plugin-transform-literals": "7.0.0-beta.47", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.47", - "@babel/plugin-transform-object-assign": "7.0.0-beta.47", - "@babel/plugin-transform-parameters": "7.0.0-beta.47", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.47", - "@babel/plugin-transform-regenerator": "7.0.0-beta.47", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.47", - "@babel/plugin-transform-spread": "7.0.0-beta.47", - "@babel/plugin-transform-template-literals": "7.0.0-beta.47", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.47", - "@babel/register": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", + "@babel/core": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "async": "^2.4.0", - "babel-core": "^6.24.1", - "babel-plugin-external-helpers": "^6.22.0", - "babel-plugin-transform-flow-strip-types": "^6.21.0", - "babel-preset-es2015-node": "^6.1.1", - "babel-preset-fbjs": "^2.1.4", - "babel-preset-react-native": "^5.0.0", - "babel-register": "^6.24.1", - "babylon": "7.0.0-beta.47", + "babel-preset-fbjs": "2.3.0", "chalk": "^1.1.1", "concat-stream": "^1.6.0", "connect": "^3.6.5", "debug": "^2.2.0", "denodeify": "^1.2.1", "eventemitter3": "^3.0.0", - "fbjs": "^0.8.14", + "fbjs": "0.8.17", "fs-extra": "^1.0.0", "graceful-fs": "^4.1.3", "image-size": "^0.6.0", - "jest-docblock": "23.0.1", - "jest-haste-map": "23.1.0", - "jest-worker": "23.0.1", + "jest-docblock": "23.2.0", + "jest-haste-map": "23.5.0", + "jest-worker": "23.2.0", "json-stable-stringify": "^1.0.1", - "json5": "^0.4.0", - "left-pad": "^1.1.3", "lodash.throttle": "^4.1.1", "merge-stream": "^1.0.1", - "metro-babel-register": "0.38.3", - "metro-babel7-plugin-react-transform": "0.38.3", - "metro-cache": "0.38.3", - "metro-core": "0.38.3", - "metro-minify-uglify": "0.38.3", - "metro-resolver": "0.38.3", - "metro-source-map": "0.38.3", + "metro-cache": "0.45.6", + "metro-config": "0.45.6", + "metro-core": "0.45.6", + "metro-minify-uglify": "0.45.6", + "metro-react-native-babel-preset": "0.45.6", + "metro-resolver": "0.45.6", + "metro-source-map": "0.45.6", "mime-types": "2.1.11", "mkdirp": "^0.5.1", - "node-fetch": "^1.3.3", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.0", "react-transform-hmr": "^1.0.4", "resolve": "^1.5.0", "rimraf": "^2.5.4", @@ -12283,177 +13102,89 @@ "yargs": "^9.0.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", - "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", - "requires": { - "@babel/highlight": "7.0.0-beta.47" - } - }, - "@babel/core": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.47.tgz", - "integrity": "sha512-7EIuAX0UVnCgZ0E9tz9rFK0gd+aovwMA9bul+dnkmBQYLrJdas2EHMUSmaK67i1cyZpvgVvXhHtXJxC7wo3rlQ==", - "requires": { - "@babel/code-frame": "7.0.0-beta.47", - "@babel/generator": "7.0.0-beta.47", - "@babel/helpers": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47", - "babylon": "7.0.0-beta.47", - "convert-source-map": "^1.1.0", - "debug": "^3.1.0", - "json5": "^0.5.0", - "lodash": "^4.17.5", - "micromatch": "^2.3.11", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - } - } - }, - "@babel/helpers": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.47.tgz", - "integrity": "sha512-uWk7gIua2COEWLwZGxfF5Wq1bgXOt1V6xzWxqeFznrA6F1TUPiAhkK5zORiZEa5RAILp6Mswsn3xFjDyCpp3rQ==", - "requires": { - "@babel/template": "7.0.0-beta.47", - "@babel/traverse": "7.0.0-beta.47", - "@babel/types": "7.0.0-beta.47" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - } - } - }, - "babel-preset-react-native": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-5.0.2.tgz", - "integrity": "sha512-Ua5JeQ1yGK8UoydMPzE2Ghq5raOKxXzpyApYDuHi4etIbXi5+GnCin19Nu+1obLQCf2Dxy9Y/GZwI0rnNOjggA==", - "requires": { - "@babel/plugin-proposal-class-properties": "7.0.0-beta.47", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.47", - "@babel/plugin-proposal-optional-chaining": "7.0.0-beta.47", - "@babel/plugin-transform-arrow-functions": "7.0.0-beta.47", - "@babel/plugin-transform-block-scoping": "7.0.0-beta.47", - "@babel/plugin-transform-classes": "7.0.0-beta.47", - "@babel/plugin-transform-computed-properties": "7.0.0-beta.47", - "@babel/plugin-transform-destructuring": "7.0.0-beta.47", - "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.47", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.47", - "@babel/plugin-transform-for-of": "7.0.0-beta.47", - "@babel/plugin-transform-function-name": "7.0.0-beta.47", - "@babel/plugin-transform-literals": "7.0.0-beta.47", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.47", - "@babel/plugin-transform-object-assign": "7.0.0-beta.47", - "@babel/plugin-transform-parameters": "7.0.0-beta.47", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx": "7.0.0-beta.47", - "@babel/plugin-transform-react-jsx-source": "7.0.0-beta.47", - "@babel/plugin-transform-regenerator": "7.0.0-beta.47", - "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.47", - "@babel/plugin-transform-spread": "7.0.0-beta.47", - "@babel/plugin-transform-sticky-regex": "7.0.0-beta.47", - "@babel/plugin-transform-template-literals": "7.0.0-beta.47", - "@babel/plugin-transform-unicode-regex": "7.0.0-beta.47", - "@babel/template": "7.0.0-beta.47", - "metro-babel7-plugin-react-transform": "^0.39.1" - }, - "dependencies": { - "metro-babel7-plugin-react-transform": { - "version": "0.39.1", - "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.39.1.tgz", - "integrity": "sha512-7atigK+8EZ1DAWhpcw2a60OhCPihe9TsRHGOKUUwJjXmXDxmYxoxejh1kK5vJSaW38P45PkUBwnfNwISWFv4mQ==", - "requires": { - "@babel/helper-module-imports": "7.0.0-beta.47", - "lodash": "^4.17.5" - } - } - } - }, - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==" + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" }, "eventemitter3": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" }, - "json5": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", - "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=" - }, - "mime-db": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", - "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" - }, - "mime-types": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", - "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "mime-db": "~1.23.0" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" } }, + "metro-babel7-plugin-react-transform": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.45.6.tgz", + "integrity": "sha512-NsVKqiBaF+Tm3FXzqiEExl9iJG+EimbpQP5h9ygxBE4AsYRc2S3X/YD/1ds3RTHMgfhinWVaus+DrG5OqK5mTA==", + "requires": { + "@babel/helper-module-imports": "^7.0.0" + } + }, + "metro-react-native-babel-preset": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.45.6.tgz", + "integrity": "sha512-qh+iXlV2tDfvHYbhh1meihxnzXXXB8nF1fi8z2HFxqYDkFBM48XewXO6mLz97PL8lmuTGvX/2dYVuFtriENw1w==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "metro-babel7-plugin-react-transform": "0.45.6", + "react-transform-hmr": "^1.0.4" + } + }, + "node-fetch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", + "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==" + }, + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" + }, "yargs": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", @@ -12477,61 +13208,110 @@ } }, "metro-babel-register": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.38.3.tgz", - "integrity": "sha512-YzvMTpu4o6NXq4LQzPBkp5/FqrIowfqauJfHFzT3zsj9Kd4MFgOtfOVMAx7ymnKHtXlb0ntIDkQ8EnpAwUgTEg==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.45.6.tgz", + "integrity": "sha512-Io8JinYIzGcXiTaO7o0DGw8wFcAiITTb7mLh3lbuJd9PndbPOo+jhrHkTsNtXc9MRHiT4KbEheXJ/QoeLKJK/Q==", "requires": { - "@babel/plugin-proposal-class-properties": "7.0.0-beta.47", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.47", - "@babel/plugin-proposal-optional-chaining": "7.0.0-beta.47", - "@babel/plugin-transform-async-to-generator": "7.0.0-beta.47", - "@babel/plugin-transform-flow-strip-types": "7.0.0-beta.47", - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.47", - "@babel/register": "7.0.0-beta.47", + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", "core-js": "^2.2.2", "escape-string-regexp": "^1.0.5" } }, "metro-babel7-plugin-react-transform": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.38.3.tgz", - "integrity": "sha512-lgIN+nqiPBu/Ltkz2+gcdsVg4UOocj8K1hHzdAx+PvQjsIKmX/Oybh9KG7d04PoxV3aKJHeXG2Z9f+0XIOgMeQ==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.45.6.tgz", + "integrity": "sha512-NsVKqiBaF+Tm3FXzqiEExl9iJG+EimbpQP5h9ygxBE4AsYRc2S3X/YD/1ds3RTHMgfhinWVaus+DrG5OqK5mTA==", + "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0-beta.47", - "lodash": "^4.17.5" + "@babel/helper-module-imports": "^7.0.0" } }, "metro-cache": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.38.3.tgz", - "integrity": "sha512-SAPtI6+EWgPKOKVunhbPN7FsIo/0FCQueisi28WTjuJNbcEbfBaJiMLkxJWEXDWYgexI+9N2CUTb4qyfk4rZ1A==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.45.6.tgz", + "integrity": "sha512-v7q2pLsI7oABEjpwPJwTd7ufwKvpctVOddcffI/2hRhuJC/seLlqkRt7kv+Q/WfaR9X4KLcEoIjZmgNy4cw1ag==", "requires": { "jest-serializer": "23.0.1", - "metro-core": "0.38.3", + "metro-core": "0.45.6", "mkdirp": "^0.5.1", "rimraf": "^2.5.4" } }, - "metro-core": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.38.3.tgz", - "integrity": "sha512-H7jcjjpY/aVqSDQhuwhZ5FM6D8eB4JwcbnDNmbff2h5UAQSQ+EjAcBBhko4d7nx6Qo7LDAQIhV8fGbO3tXDGCw==", + "metro-config": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.45.6.tgz", + "integrity": "sha512-ZhVtkpXhOi+qWi7vdE3HGIhyyBT1wtIukQuxTMwLTUluv2/1DClo/uX9inmf++CmOhOpU7QpqrMzl6vf+AwnOg==", "requires": { - "jest-haste-map": "23.1.0", + "cosmiconfig": "^5.0.5", + "metro": "0.45.6", + "metro-cache": "0.45.6", + "metro-core": "0.45.6" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "metro-core": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.45.6.tgz", + "integrity": "sha512-M0YkGnkjStdCsSNYVW+aVlJ4WjwcqjIhQV+VzEnGZYdyo6cMi9MxUZ69iV2jIxd3LAeaQQaNe8OQtQp8dfIh/g==", + "requires": { + "jest-haste-map": "23.5.0", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.38.3", + "metro-resolver": "0.45.6", "wordwrap": "^1.0.0" } }, "metro-memory-fs": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-memory-fs/-/metro-memory-fs-0.38.3.tgz", - "integrity": "sha512-GnyoyTDjLOruazScpgFsDXeeiMUAe9p1pZ3SkDD1A88f+0+wtICdAwEMsJRs/BQmYxHM3TKehprarQHP4NMxxQ==" + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-memory-fs/-/metro-memory-fs-0.45.6.tgz", + "integrity": "sha512-YAGoNQVTM/vl65jR/ztucAZJIk0ejD3INZT0LiISRULBt6Rxfiqa22v5GG0Enq+95vlgmt26g+auHM2nxTUInQ==" }, "metro-minify-uglify": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.38.3.tgz", - "integrity": "sha512-BWsruxB98WG1iqCqSCqhxmmx6gwtbUaxLHEH6B/BvYC0w/x/qzK8YVHpDvc0a02SxdCby4X2o+n/m3dGUQsrMQ==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.45.6.tgz", + "integrity": "sha512-l+lZ7Gg6CN9XddgmwAbo7zOLT2QB9a6VALXLzmvr6gB1mc6SBZwtAh+hARvdymtcr1CgbaWADZPAA+W3oQZH4g==", "requires": { "uglify-es": "^3.1.9" }, @@ -12557,18 +13337,60 @@ } } }, + "metro-react-native-babel-preset": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.45.6.tgz", + "integrity": "sha512-qh+iXlV2tDfvHYbhh1meihxnzXXXB8nF1fi8z2HFxqYDkFBM48XewXO6mLz97PL8lmuTGvX/2dYVuFtriENw1w==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "metro-babel7-plugin-react-transform": "0.45.6", + "react-transform-hmr": "^1.0.4" + } + }, "metro-resolver": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.38.3.tgz", - "integrity": "sha512-aIBuVBRas34Lo1p16PSx0IeKgjYMDHXRWYmRJMi7IJRe2y0+vkLQfpy8cpVnYhmP6HBwFxOyuLmzatdTl+7FLA==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.45.6.tgz", + "integrity": "sha512-RY4tqKxSEz4ahLPaJlx30x6vG8HVyLT3w5aUDcyB5B2eQH3ckLnyUYUpd0sT7HFoJ1T5U5DFtWvS3P4yJcRB7A==", "requires": { "absolute-path": "^0.0.0" } }, "metro-source-map": { - "version": "0.38.3", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.38.3.tgz", - "integrity": "sha512-At8dogx2/BsC/5+dqIpdBP9vb0U0QKF93Aw9J9zAtwLgXoDrWDDDpJ560MtFCR9kHGY4hjU/OnS9SUXrFajtGg==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.45.6.tgz", + "integrity": "sha512-FBubSEEitGrvUeuCPVwXTJX7Y1WjFhsUHickqQE+mXplOgREyeZ7o80ffqEWitfsMUQN9385LxIPmAdPzQXLsQ==", "requires": { "source-map": "^0.5.6" } @@ -12607,6 +13429,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -12618,16 +13441,23 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", "requires": { - "mime-db": "~1.30.0" + "mime-db": "~1.23.0" + }, + "dependencies": { + "mime-db": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + } } }, "mimic-fn": { @@ -12644,14 +13474,16 @@ } }, "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true }, "minimatch": { "version": "3.0.4", @@ -12683,10 +13515,40 @@ } } }, + "minipass": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz", + "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } + } + }, + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "requires": { + "minipass": "^2.2.1" + } + }, "mississippi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -12812,13 +13674,13 @@ "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" }, "morgan": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz", - "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", "requires": { "basic-auth": "~2.0.0", "debug": "2.6.9", - "depd": "~1.1.1", + "depd": "~1.1.2", "on-finished": "~2.3.0", "on-headers": "~1.0.1" } @@ -12827,6 +13689,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -12841,23 +13704,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "multi-progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-2.0.0.tgz", - "integrity": "sha1-Kcy0LPJIdLHGOE8DEnzl3/eyLyw=", - "dev": true, - "requires": { - "progress": "^1.1.8" - }, - "dependencies": { - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true - } - } - }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -13033,9 +13879,9 @@ "optional": true }, "needle": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.1.tgz", - "integrity": "sha512-t/ZswCM9JTWjAdXS9VpvqhI2Ct2sL2MdY4fUXqGJaGBk13ge99ObqRksRTbBE56K+wxUXwwfZYOuZHifFW9q+Q==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.3.tgz", + "integrity": "sha512-GPL22d/U9cai87FcCPO6e+MT3vyHS2j+zwotakDc7kE2DtUAqFKMXLJCTtRp+5S75vXIwQPvIxkvlctxf9q4gQ==", "requires": { "debug": "^2.1.2", "iconv-lite": "^0.4.4", @@ -13048,9 +13894,10 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "neo-async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz", - "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", + "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", + "dev": true }, "netmask": { "version": "1.0.6", @@ -13060,23 +13907,22 @@ "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", "dev": true, "requires": { - "lodash.toarray": "^4.4.0" + "lower-case": "^1.1.1" } }, "node-fetch": { @@ -13097,6 +13943,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -13123,10 +13970,17 @@ "vm-browserify": "0.0.4" }, "dependencies": { + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true } } }, @@ -13147,155 +14001,20 @@ } }, "node-pre-gyp": { - "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", "requires": { "detect-libc": "^1.0.2", - "hawk": "3.1.3", "mkdirp": "^0.5.1", + "needle": "^2.2.1", "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.x.x" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.x.x" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.x.x" - } - } + "tar": "^4" } }, "node-version": { @@ -13335,12 +14054,14 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true }, "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, "requires": { "object-assign": "^4.0.1", "prepend-http": "^1.0.0", @@ -13348,6 +14069,20 @@ "sort-keys": "^1.0.0" } }, + "npm-bundled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz", + "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==" + }, + "npm-packlist": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz", + "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -13371,14 +14106,21 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, "requires": { "boolbase": "~1.0.0" } }, + "nullthrows": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.0.tgz", + "integrity": "sha512-YoigDq49JRqVCUlb4XlwZirXQiNCoXdwoyfklXJAEYHN+XKHWgDkrcWxNgxEtP7N+XF9Akp7Lr6wLq8HZxLttw==" + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true }, "number-is-nan": { "version": "1.0.1", @@ -13386,16 +14128,11 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "nwsapi": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.8.tgz", - "integrity": "sha512-7RZ+qbFGiVc6v14Y8DSZjPN1wZPOaMbiiP4tzf5eNuyOITAeOIA3cMhjuKUypVIqBgCSg1KaSyAv8Ocq/0ZJ1A==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", + "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==", "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -13475,6 +14212,30 @@ } } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, "object.getownpropertydescriptors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", @@ -13538,16 +14299,6 @@ "mimic-fn": "^1.0.0" } }, - "open-in-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/open-in-editor/-/open-in-editor-2.2.0.tgz", - "integrity": "sha1-xbIap29qzUy708Oy533MtLdaICA=", - "dev": true, - "requires": { - "clap": "^1.1.3", - "os-homedir": "~1.0.2" - } - }, "opn": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", @@ -13595,59 +14346,11 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, - "ora": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", - "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", - "dev": true, - "requires": { - "chalk": "^2.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.1", - "log-symbols": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, "requires": { "url-parse": "^1.4.3" } @@ -13655,7 +14358,8 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true }, "os-homedir": { "version": "1.0.2", @@ -13729,12 +14433,17 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -13759,6 +14468,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, "requires": { "cyclist": "~0.2.2", "inherits": "^2.0.3", @@ -13769,14 +14479,16 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, "requires": { "no-case": "^2.2.0" } }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -13807,7 +14519,8 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true }, "parse5": { "version": "4.0.0", @@ -13844,12 +14557,14 @@ "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, "path-exists": { "version": "3.0.0", @@ -13880,7 +14595,8 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true }, "path-type": { "version": "2.0.0", @@ -13891,9 +14607,10 @@ } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -13904,7 +14621,7 @@ }, "pegjs": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "resolved": "http://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" }, "pend": { @@ -13936,9 +14653,9 @@ } }, "pirates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-3.0.2.tgz", - "integrity": "sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz", + "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==", "requires": { "node-modules-regexp": "^1.0.0" } @@ -13960,17 +14677,6 @@ "find-up": "^2.1.0" } }, - "pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" - }, - "platform-select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/platform-select/-/platform-select-1.1.2.tgz", - "integrity": "sha1-1bXWf3t6TSX3DHKrd+Ic+qY/cgw=", - "dev": true - }, "plist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", @@ -14040,6 +14746,7 @@ "version": "6.0.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, "requires": { "chalk": "^2.4.1", "source-map": "^0.6.1", @@ -14050,6 +14757,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -14058,6 +14766,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -14067,12 +14776,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -14083,6 +14794,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, "requires": { "postcss": "^5.0.2", "postcss-message-helpers": "^2.0.0", @@ -14092,12 +14804,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14109,6 +14823,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14119,6 +14834,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, "requires": { "colormin": "^1.0.5", "postcss": "^5.0.13", @@ -14128,12 +14844,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14145,6 +14863,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14155,6 +14874,7 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, "requires": { "postcss": "^5.0.11", "postcss-value-parser": "^3.1.2" @@ -14163,12 +14883,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14180,6 +14902,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14190,6 +14913,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, "requires": { "postcss": "^5.0.14" }, @@ -14197,12 +14921,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14214,6 +14940,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14224,6 +14951,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, "requires": { "postcss": "^5.0.4" }, @@ -14231,12 +14959,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14248,6 +14978,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14258,6 +14989,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, "requires": { "postcss": "^5.0.14" }, @@ -14265,12 +14997,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14282,6 +15016,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14292,6 +15027,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, "requires": { "postcss": "^5.0.16" }, @@ -14299,12 +15035,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14316,6 +15054,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14326,6 +15065,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, "requires": { "postcss": "^5.0.14", "uniqs": "^2.0.0" @@ -14334,12 +15074,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14351,6 +15093,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14361,6 +15104,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, "requires": { "postcss": "^5.0.4" }, @@ -14368,12 +15112,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14385,6 +15131,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14395,6 +15142,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz", "integrity": "sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w==", + "dev": true, "requires": { "postcss": "^6.0.1" } @@ -14403,6 +15151,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, "requires": { "cosmiconfig": "^4.0.0", "import-cwd": "^2.0.0" @@ -14412,6 +15161,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, "requires": { "loader-utils": "^1.1.0", "postcss": "^6.0.0", @@ -14423,6 +15173,7 @@ "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, "requires": { "has": "^1.0.1", "postcss": "^5.0.10", @@ -14432,12 +15183,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14449,6 +15202,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14459,6 +15213,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, "requires": { "postcss": "^5.0.4" }, @@ -14466,12 +15221,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14483,6 +15240,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14493,6 +15251,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, "requires": { "browserslist": "^1.5.2", "caniuse-api": "^1.5.2", @@ -14505,6 +15264,7 @@ "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, "requires": { "caniuse-db": "^1.0.30000639", "electron-to-chromium": "^1.2.7" @@ -14513,12 +15273,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14530,6 +15292,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14539,12 +15302,14 @@ "postcss-message-helpers": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true }, "postcss-minify-font-values": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, "requires": { "object-assign": "^4.0.1", "postcss": "^5.0.4", @@ -14554,12 +15319,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14571,6 +15338,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14581,6 +15349,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, "requires": { "postcss": "^5.0.12", "postcss-value-parser": "^3.3.0" @@ -14589,12 +15358,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14606,6 +15377,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14616,6 +15388,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, "requires": { "alphanum-sort": "^1.0.1", "postcss": "^5.0.2", @@ -14626,12 +15399,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14643,6 +15418,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14653,6 +15429,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, "requires": { "alphanum-sort": "^1.0.2", "has": "^1.0.1", @@ -14663,12 +15440,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14680,6 +15459,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14690,6 +15470,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "dev": true, "requires": { "postcss": "^6.0.1" } @@ -14698,6 +15479,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, "requires": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" @@ -14707,6 +15489,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, "requires": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" @@ -14716,6 +15499,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, "requires": { "icss-replace-symbols": "^1.1.0", "postcss": "^6.0.1" @@ -14725,6 +15509,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, "requires": { "postcss": "^5.0.5" }, @@ -14732,12 +15517,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14749,6 +15536,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14759,6 +15547,7 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, "requires": { "is-absolute-url": "^2.0.0", "normalize-url": "^1.4.0", @@ -14769,12 +15558,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14786,6 +15577,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14796,6 +15588,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, "requires": { "postcss": "^5.0.4", "postcss-value-parser": "^3.0.1" @@ -14804,12 +15597,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14821,6 +15616,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14831,6 +15627,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, "requires": { "postcss": "^5.0.4", "postcss-value-parser": "^3.0.2" @@ -14839,12 +15636,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14856,6 +15655,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14866,6 +15666,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, "requires": { "postcss": "^5.0.4" }, @@ -14873,12 +15674,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14890,6 +15693,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14900,6 +15704,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, "requires": { "has": "^1.0.1", "postcss": "^5.0.8", @@ -14909,12 +15714,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14926,6 +15733,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14936,6 +15744,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, "requires": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", @@ -14946,6 +15755,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, "requires": { "is-svg": "^2.0.0", "postcss": "^5.0.14", @@ -14956,12 +15766,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -14973,6 +15785,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -14983,6 +15796,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, "requires": { "alphanum-sort": "^1.0.1", "postcss": "^5.0.4", @@ -14992,12 +15806,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -15009,6 +15825,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -15018,12 +15835,14 @@ "postcss-value-parser": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true }, "postcss-zindex": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, "requires": { "has": "^1.0.1", "postcss": "^5.0.4", @@ -15033,12 +15852,14 @@ "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, "requires": { "chalk": "^1.1.3", "js-base64": "^2.1.9", @@ -15050,6 +15871,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -15064,7 +15886,8 @@ "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true }, "preserve": { "version": "0.2.0", @@ -15075,6 +15898,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, "requires": { "renderkid": "^2.0.1", "utila": "~0.4" @@ -15082,7 +15906,7 @@ }, "pretty-format": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-4.3.1.tgz", + "resolved": "http://registry.npmjs.org/pretty-format/-/pretty-format-4.3.1.tgz", "integrity": "sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=" }, "private": { @@ -15116,7 +15940,8 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true }, "promise-polyfill": { "version": "6.1.0", @@ -15154,12 +15979,13 @@ } }, "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.6.0" + "ipaddr.js": "1.8.0" } }, "proxy-agent": { @@ -15178,11 +16004,11 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "lru-cache": { @@ -15193,6 +16019,11 @@ "pseudomap": "^1.0.2", "yallist": "^2.1.2" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -15204,7 +16035,8 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, "pseudomap": { "version": "1.0.2", @@ -15214,13 +16046,13 @@ "psl": { "version": "1.1.29", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "version": "4.0.2", + "resolved": "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -15233,6 +16065,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -15242,6 +16075,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -15254,9 +16088,9 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "puppeteer": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.2.tgz", - "integrity": "sha512-KBgMr/ZdwIwDQWTqcAlGhnQ2Vd6p+o5B89H60XUfdmCpia2KViSZsdRjvrf2wYOxXSrpYx6OuCBzV7ppLuNjNg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.8.0.tgz", + "integrity": "sha512-wJ7Fxs03l4dy/ZXQACUKBBobIuJaS4NHq44q7/QinpAXFMwJMJFEIPjzoksVzUhZxQe+RXnjXH69mg13yMh0BA==", "dev": true, "requires": { "debug": "^3.1.0", @@ -15270,12 +16104,12 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "mime": { @@ -15284,6 +16118,12 @@ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", "dev": true }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, "ws": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", @@ -15298,7 +16138,8 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true }, "qs": { "version": "6.5.1", @@ -15309,6 +16150,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, "requires": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" @@ -15317,28 +16159,25 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, "querystringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==" }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, "radium": { "version": "0.19.6", "resolved": "https://registry.npmjs.org/radium/-/radium-0.19.6.tgz", "integrity": "sha512-IABYntqCwYelUUIwA52maSCgJbqtJjHKIoD21wgpw3dGhIUbJ5chDShDGdaFiEzdF03hN9jfQqlmn0bF4YhfrQ==", + "dev": true, "requires": { "array-find": "^1.0.0", "exenv": "^1.2.1", @@ -15348,8 +16187,9 @@ "dependencies": { "inline-style-prefixer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz", + "resolved": "http://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz", "integrity": "sha1-wVPH6I/YT+9cYC6VqBaLJ3BnH+c=", + "dev": true, "requires": { "bowser": "^1.0.0", "hyphenate-style-name": "^1.0.1" @@ -15413,6 +16253,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -15421,6 +16262,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -15477,30 +16319,41 @@ } }, "react": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/react/-/react-16.4.2.tgz", - "integrity": "sha512-dMv7YrbxO4y2aqnvA7f/ik9ibeLSHQJTI6TrYAenPSaQ6OXfb+Oti+oJiy8WBxgRzlKatYqtCjphTgDSCEiWFg==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.5.2.tgz", + "integrity": "sha512-FDCSVd3DjVTmbEAjUNX6FgfAmQ+ypJfHUsqUJOYNCBUp1h8lqmtC+0mXJ+JjsWx4KAVTkk1vKd1hLQPvEviSuw==", "requires": { - "fbjs": "^0.8.16", "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "prop-types": "^15.6.2", + "schedule": "^0.5.0" + }, + "dependencies": { + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", + "requires": { + "object-assign": "^4.1.1" + } + } } }, "react-clone-referenced-element": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-clone-referenced-element/-/react-clone-referenced-element-1.0.1.tgz", - "integrity": "sha1-K7qMaUBMXkqUQ5hgC8xMlB+GBoI=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-clone-referenced-element/-/react-clone-referenced-element-1.1.0.tgz", + "integrity": "sha512-FKOsfKbBkPxYE8576EM6uAfHC4rnMpLyH6/TJUL4WcHUEB3EUn8AxPjnnV/IiwSSzsClvHYK+sDELKN/EJ0WYg==" }, "react-deep-force-update": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz", - "integrity": "sha1-vNMUeAJ7ZLMznxCJIatSC0MT3Cw=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz", + "integrity": "sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==" }, "react-dev-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.1.tgz", - "integrity": "sha512-+y92rG6pmXt3cpcg/NGmG4w/W309tWNSmyyPL8hCMxuCSg2UP/hUg3npACj2UZc8UKVSXexyLrCnxowizGoAsw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.2.tgz", + "integrity": "sha512-d2FbKvYe4XAQx5gjHBoWG+ADqC3fGZzjb7i9vxd/Y5xfLkBGtQyX7aOb8lBRQPYUhjngiD3d49LevjY1stUR0Q==", + "dev": true, "requires": { "address": "1.0.3", "babel-code-frame": "6.26.0", @@ -15514,10 +16367,10 @@ "inquirer": "3.3.0", "is-root": "1.0.0", "opn": "5.2.0", - "react-error-overlay": "^4.0.0", + "react-error-overlay": "^4.0.1", "recursive-readdir": "2.2.1", "shell-quote": "1.6.1", - "sockjs-client": "1.1.4", + "sockjs-client": "1.1.5", "strip-ansi": "3.0.1", "text-table": "0.2.0" }, @@ -15526,6 +16379,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -15533,9 +16387,9 @@ } }, "react-devtools-core": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.2.3.tgz", - "integrity": "sha1-o34ZnZSGXiy7YWuXvo9YIGdOar0=", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.3.4.tgz", + "integrity": "sha512-6lsBDRInT9jU8Ya8bnKWJSsnaGg/xk1ZSfvhc/dHc3n2CUTMfGlqm2tGeZQ9WEoe0Y2K7Lg90Kvb1E8anLePaQ==", "requires": { "shell-quote": "^1.6.1", "ws": "^3.3.1" @@ -15554,15 +16408,26 @@ } }, "react-dom": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.2.tgz", - "integrity": "sha512-Usl73nQqzvmJN+89r97zmeUpQDKDlh58eX6Hbs/ERdDHzeBzWy+ENk7fsGQ+5KxArV1iOFPT46/VneklK9zoWw==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.5.2.tgz", + "integrity": "sha512-RC8LDw8feuZOHVgzEf7f+cxBr/DnKdqp56VU0lAs1f4UfKc4cU8wU4fTq/mgnvynLQo8OtlPC19NUFh/zjZPuA==", "dev": true, "requires": { - "fbjs": "^0.8.16", "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "prop-types": "^15.6.2", + "schedule": "^0.5.0" + }, + "dependencies": { + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", + "dev": true, + "requires": { + "object-assign": "^4.1.1" + } + } } }, "react-emojione": { @@ -15571,14 +16436,16 @@ "integrity": "sha512-+OsHCKgcGdtQVGBYWWFPO7JhS2cevX2S6L3/pR0sah4hJGBM7qU0d2m64p9NYpwu6awH8t+yKArhNc/WHSb8Lg==" }, "react-error-overlay": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.0.tgz", - "integrity": "sha512-FlsPxavEyMuR6TjVbSSywovXSEyOg6ZDj5+Z8nbsRl9EkOzAhEIcS+GLoQDC5fz/t9suhUXWmUrOBrgeUvrMxw==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz", + "integrity": "sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw==", + "dev": true }, "react-fuzzy": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/react-fuzzy/-/react-fuzzy-0.5.2.tgz", "integrity": "sha512-qIZZxaCheb/HhcBi5fABbiCFg85+K5r1TCps1D4uaL0LAMMD/1zm/x1/kNR130Tx7nnY9V7mbFyY0DquPYeLAw==", + "dev": true, "requires": { "babel-runtime": "^6.23.0", "classnames": "^2.2.5", @@ -15586,50 +16453,11 @@ "prop-types": "^15.5.9" } }, - "react-hot-loader": { - "version": "3.0.0-beta.7", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz", - "integrity": "sha1-1YR7gWXXMcTVsw2G1dRxYieg+oM=", - "dev": true, - "requires": { - "babel-template": "^6.7.0", - "global": "^4.3.0", - "react-deep-force-update": "^2.0.1", - "react-proxy": "^3.0.0-alpha.0", - "redbox-react": "^1.3.6", - "source-map": "^0.4.4" - }, - "dependencies": { - "react-deep-force-update": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz", - "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk=", - "dev": true - }, - "react-proxy": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz", - "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=", - "dev": true, - "requires": { - "lodash": "^4.6.1" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "react-html-attributes": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/react-html-attributes/-/react-html-attributes-1.4.3.tgz", "integrity": "sha1-jDbDX85rdQk40oavQo7R2nYlGG4=", + "dev": true, "requires": { "html-element-attributes": "^1.0.0" } @@ -15637,12 +16465,14 @@ "react-icon-base": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/react-icon-base/-/react-icon-base-2.1.0.tgz", - "integrity": "sha1-oZbjP98eeqof2jrvu2i9rZ6Cp50=" + "integrity": "sha1-oZbjP98eeqof2jrvu2i9rZ6Cp50=", + "dev": true }, "react-icons": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-2.2.7.tgz", "integrity": "sha512-0n4lcGqzJFcIQLoQytLdJCE0DKSA9dkwEZRYoGrIDJZFvIT6Hbajx5mv9geqhqFiNjUgtxg8kPyDfjlhymbGFg==", + "dev": true, "requires": { "react-icon-base": "2.1.0" } @@ -15651,15 +16481,16 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.0.tgz", "integrity": "sha512-aIcbWb0fKFhEMB+RadoOYawlr1JoMMfrQ1oRgPUG/f/e4zERVJ6nYcIaQmrQmdHCZ63BOqe2cEkoeY0kyLBzNg==", + "dev": true, "requires": { "babel-runtime": "^6.26.0", "is-dom": "^1.0.9" } }, "react-is": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.2.tgz", - "integrity": "sha512-rI3cGFj/obHbBz156PvErrS5xc6f1eWyTwyV4mo0vF2lGgXgS+mm7EKD5buLJq6jNgIagQescGSVG2YzgXt8Yg==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.5.2.tgz", + "integrity": "sha512-hSl7E6l25GTjNEZATqZIuWOgSnpXb3kD0DVCujmg46K5zLxsbiKaaT6VO9slkSBDPZfYs30lwfJwbOFOnoEnKQ==", "dev": true }, "react-komposer": { @@ -15677,7 +16508,8 @@ "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "dev": true }, "react-mixin": { "version": "3.1.1", @@ -15692,6 +16524,7 @@ "version": "3.5.1", "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.5.1.tgz", "integrity": "sha512-GxL7ycOgKC+p641cR+V1bw5dC1faL2N86/AJlzbMVmvt1totoylgkJmn9zvLuHeuarGbB7CLfHMGpeRowaj2jQ==", + "dev": true, "requires": { "exenv": "^1.2.0", "prop-types": "^15.5.10", @@ -15700,9 +16533,9 @@ } }, "react-native": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.56.0.tgz", - "integrity": "sha512-JGKPG77HwrgMdiCkmZmjuczJrwCnq7E28+My+OS3OnmN78uphmtaMqYnv3lJjfb5hKS4kCqYCfFYFMUnmpmxMw==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.57.1.tgz", + "integrity": "sha512-d+bRxIFjCrvXVbvPhuyLvE8NSiYKzldBzL+sJjSGxNqOOb2UIjLfB1BGUkI3n3X7KAYEUp4KUhT7YfA2qsRi/w==", "requires": { "absolute-path": "^0.0.0", "art": "^0.10.0", @@ -15718,22 +16551,22 @@ "errorhandler": "^1.5.0", "escape-string-regexp": "^1.0.5", "event-target-shim": "^1.0.5", - "fbjs": "0.8.16", + "fbjs": "0.8.17", "fbjs-scripts": "^0.8.1", "fs-extra": "^1.0.0", "glob": "^7.1.1", "graceful-fs": "^4.1.3", "inquirer": "^3.0.6", "lodash": "^4.17.5", - "metro": "^0.38.1", - "metro-babel-register": "^0.38.1", - "metro-core": "^0.38.1", - "metro-memory-fs": "^0.38.1", + "metro": "^0.45.6", + "metro-babel-register": "^0.45.6", + "metro-core": "^0.45.6", + "metro-memory-fs": "^0.45.6", "mime": "^1.3.4", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "morgan": "^1.9.0", - "node-fetch": "^1.3.3", + "node-fetch": "^2.2.0", "node-notifier": "^5.2.1", "npmlog": "^2.0.4", "opn": "^3.0.2", @@ -15743,7 +16576,7 @@ "promise": "^7.1.1", "prop-types": "^15.5.8", "react-clone-referenced-element": "^1.0.1", - "react-devtools-core": "^3.2.2", + "react-devtools-core": "3.3.4", "react-timer-mixin": "^0.13.2", "regenerator-runtime": "^0.11.0", "rimraf": "^2.5.4", @@ -15757,6 +16590,11 @@ "yargs": "^9.0.0" }, "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, "create-react-class": { "version": "15.6.3", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", @@ -15767,6 +16605,20 @@ "object-assign": "^4.1.1" } }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, "gauge": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", @@ -15779,6 +16631,11 @@ "lodash.padstart": "^4.1.0" } }, + "node-fetch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", + "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==" + }, "npmlog": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz", @@ -15797,10 +16654,10 @@ "object-assign": "^4.0.1" } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" }, "yargs": { "version": "9.0.1", @@ -15838,25 +16695,15 @@ } }, "react-native-audio": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/react-native-audio/-/react-native-audio-4.1.3.tgz", - "integrity": "sha512-u8JqLQZ4875wxtuzKUMIDMyDZTlq3df5/+jxg6xhLYYGpTVDV+YlDMouoW5KZVGVJDj7G1FYa1nsFI5t4qidGQ==" - }, - "react-native-bundle-visualizer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-native-bundle-visualizer/-/react-native-bundle-visualizer-1.3.0.tgz", - "integrity": "sha512-0ynCTowQ/3ylDpWm/E1vjWAqx94i2XOKy0y5VEgXYkoXHWH+qHA/FbiAistavgyPIs6LAQYsrGJTVpWq9PxVog==", - "dev": true, - "requires": { - "babel-loader": "^7.1.4", - "haul": "^1.0.0-rc.4", - "webpack-visualizer-plugin": "^0.1.11" - } + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/react-native-audio/-/react-native-audio-4.2.0.tgz", + "integrity": "sha512-K9vTlq9KuPBULSS+6O8ybjfkmzRmqXiaqMXCwPwaY37o81d3NOyac28oiq+9tGNUzHbsyG7YEp7DjtzSC1mP3Q==" }, "react-native-compat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/react-native-compat/-/react-native-compat-1.0.0.tgz", "integrity": "sha1-SR29igEFrAYbjQ2SZGPOaj3/M7w=", + "dev": true, "requires": { "prop-types": "^15.5.10" } @@ -15881,12 +16728,9 @@ "integrity": "sha512-NKYXiH8w/DjNXoozko1twjAd5F8shL/UiTVx/PQ8QNaasWpbxlXgeJ5exhDSIcDXao0AUdcPWJunYdSCjq208g==" }, "react-native-fast-image": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-4.0.14.tgz", - "integrity": "sha512-MeRgL70JxoY/hn8ZRGBsDED9SGvTEeznneL//fWZyLaG0CM+w2CH4QXAMvADnIvu2RFd8WQWNii6c6VOpVe4Tg==", - "requires": { - "prop-types": "^15.5.10" - } + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-5.0.3.tgz", + "integrity": "sha512-70XlQPt8b7yQSMwUEEIN5jTx7KOx1EBD2XhIRIEHChfNv5Gwn8dh28RSo/Dq9qezf4CWJXO3CAb4lq+Hu9d0vw==" }, "react-native-fit-image": { "version": "1.5.4", @@ -15926,16 +16770,16 @@ "from": "git+https://github.com/RocketChat/react-native-image-crop-picker.git" }, "react-native-image-pan-zoom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/react-native-image-pan-zoom/-/react-native-image-pan-zoom-2.1.7.tgz", - "integrity": "sha512-UwoHcn5cp/NgU8pjzod3GiIV/U1OKOp9/7G/xPaAbwsMm7AJ6aogn7vFaVdPFUc5Qor6fCsFjeNICcxiDOcPqw==" + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/react-native-image-pan-zoom/-/react-native-image-pan-zoom-2.1.9.tgz", + "integrity": "sha512-DOt/eeeMXUlIfC+slisSToGPQ34+aprXDdv/iJl++e2fGXL0+jMZZTgVraeg0bDwvhA78GEXJYndYfX0sSPV1A==" }, "react-native-image-zoom-viewer": { - "version": "2.2.14", - "resolved": "https://registry.npmjs.org/react-native-image-zoom-viewer/-/react-native-image-zoom-viewer-2.2.14.tgz", - "integrity": "sha512-ZgVXnlTftQRxbd3YU4k8jvOO94GXWHvW3ITWXoxRupUsztaE4lWdLZizG/M2hxqdNOhHzZfPu60nU0+g0dZqzA==", + "version": "2.2.18", + "resolved": "https://registry.npmjs.org/react-native-image-zoom-viewer/-/react-native-image-zoom-viewer-2.2.18.tgz", + "integrity": "sha512-QqHsYvi83JZaX9LIq7AoPEmUdc7whKH2/1eUe8NkJhMLPPv+yUerMCvoRR9q1b8J1fNgeQ/xad2IR50/ivGwaA==", "requires": { - "react-native-image-pan-zoom": "^2.1.7" + "react-native-image-pan-zoom": "^2.1.9" } }, "react-native-iphone-x-helper": { @@ -15944,12 +16788,12 @@ "integrity": "sha512-QHzpx4fv9u30VVU1DMgotiZsUB+m4BRjypca2rOczyj3cZBny5I+QDplrpFIBhzsa1iADNkziWa7kInzmKs00Q==" }, "react-native-keyboard-aware-scroll-view": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.6.0.tgz", - "integrity": "sha512-ok1Qy/4ENfBB2ehcZcs9l84i7i5+EvFWnajuWppmCi2pnQuQpaEPdciDoovR7EZfjFl1ivLYvRrB7TgbBtcrSA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.7.2.tgz", + "integrity": "sha512-FCVKAmM5jHwbWZFW/zUOhid18OoSGcbyx2jGk+q6eVjjtj+RPomeqX0aAHf2ALXYJ1BuC5+OtXhFA/hp8ombcQ==", "requires": { - "prop-types": "^15.6.0", - "react-native-iphone-x-helper": "^1.0.1" + "prop-types": "^15.6.2", + "react-native-iphone-x-helper": "^1.0.3" } }, "react-native-keyboard-input": { @@ -16012,8 +16856,9 @@ } }, "react-native-notifications": { - "version": "git+https://github.com/RocketChat/react-native-notifications.git#cb77df5a4d3b5d2e48f6abaeb9acb60c8cfd2149", - "from": "git+https://github.com/RocketChat/react-native-notifications.git", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-1.1.20.tgz", + "integrity": "sha512-55DvP6/W13Hum7fZE7U4o3Ge07zA3FxqOFtLBLMYvMHzGhEe7czDe7/9zd8aoo9lJPI1TWVWdwhXhKrT4GalYA==", "requires": { "core-js": "^1.0.0", "uuid": "^2.0.3" @@ -16040,9 +16885,9 @@ } }, "react-native-picker-select": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/react-native-picker-select/-/react-native-picker-select-4.2.0.tgz", - "integrity": "sha512-e9sjqZQHfv9ab+shYYZcdVSk/woFdfh7kufdVa6wQTXAeamHavX0x9LrDvzlytM/GOvr5YxmO0O3X1OaTNPTTg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/react-native-picker-select/-/react-native-picker-select-4.4.0.tgz", + "integrity": "sha512-5T1UXEFbQWj+vChIbMNHO9kepfSEMLR1wSQ6m934a6Drgk/8gQONdTbtpJNN3+qLSmcnioJslGYp7F4Y+yn6WQ==", "requires": { "lodash.isequal": "^4.5.0" } @@ -16077,44 +16922,6 @@ "prop-types": "^15.5.6" } }, - "react-native-svg": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-6.5.2.tgz", - "integrity": "sha512-r9SXx/AOzlo/jkahAo9WjNTRJ+A2lDHE3yS3WtgZ4Gzqqyxb3L6LpuAG02x1TaKEowdTEG3r6u7vhnCZON8N/A==", - "requires": { - "color": "^2.0.1", - "lodash": "^4.16.6", - "pegjs": "^0.10.0" - }, - "dependencies": { - "color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", - "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - } - } - }, - "react-native-svg-image": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/react-native-svg-image/-/react-native-svg-image-2.0.1.tgz", - "integrity": "sha1-RzesoRFcMBGEfuF45ySeEv5+7FU=", - "requires": { - "prop-types": "^15.6.0" - } - }, "react-native-vector-icons": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-5.0.0.tgz", @@ -16126,9 +16933,9 @@ } }, "react-native-video": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-native-video/-/react-native-video-3.2.0.tgz", - "integrity": "sha512-LLqyV9xK67FQTcQDpYruyRODlkQdE59uLExGoXjBngBHrf0q/R13yYaLk3G4CU2Bz+bi3cVzzI6E+q03eNeVYQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-native-video/-/react-native-video-3.2.1.tgz", + "integrity": "sha512-Xansfoo/to80FwhM1HKlf7pCxDZ5RtV+kG3piCVvsNAhPY4GGwiOGUH9y3Y+mFQIDEWcY8I9j16lsFYAbnue3g==", "requires": { "keymirror": "0.1.1", "prop-types": "^15.5.10" @@ -16142,14 +16949,6 @@ "lodash": "^4.16.4" } }, - "react-native-zeroconf": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/react-native-zeroconf/-/react-native-zeroconf-0.9.0.tgz", - "integrity": "sha512-iThWRspTVIDfI77Rc4iai2uW5LZJN6gX5FgV6DpkYb/aB/xE8UfrLRhVlTqqVQfHypW1KQS0zbH5RX8eg+TreQ==", - "requires": { - "events": "^1.1.0" - } - }, "react-proxy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz", @@ -16159,18 +16958,6 @@ "react-deep-force-update": "^1.0.0" } }, - "react-reconciler": { - "version": "0.3.0-beta.1", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.3.0-beta.1.tgz", - "integrity": "sha512-MxE331werzn8DrqGca4hGk/M2nn6E0zNhlPYdWgZE5JfJ/gkNbpHEC9tOJ65PJFtvQCSvUlH9MLFvI11p2dD7w==", - "dev": true, - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" - } - }, "react-redux": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", @@ -16196,76 +16983,11 @@ } } }, - "react-slate": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/react-slate/-/react-slate-0.5.1.tgz", - "integrity": "sha1-oOm4VYaQppuo9XRNAdDr97y33EQ=", - "dev": true, - "requires": { - "ansi-parser": "^3.2.8", - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "chalk": "^2.1.0", - "cli-spinners": "^1.1.0", - "fast-memoize": "^2.2.8", - "fbjs": "^0.8.16", - "is-fullwidth-code-point": "^2.0.0", - "mkdirp": "^0.5.1", - "prop-types": "^15.6.0", - "react-reconciler": "0.3.0-beta.1", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "react-slate-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/react-slate-utils/-/react-slate-utils-0.2.0.tgz", - "integrity": "sha1-lRdH+ZKYSBLpHEt3QThr4LbIs0U=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "react-split-pane": { - "version": "0.1.82", - "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.82.tgz", - "integrity": "sha1-Qvu5/Ugj8F4DfeDas81s+b8M9Oo=", + "version": "0.1.84", + "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.84.tgz", + "integrity": "sha512-rso1dRAXX/WETyqF5C0fomIYzpF71Nothfr1R7pFkrJCPVJ20ok2e6wqF+JvUTyE/meiBvsbNPT1loZjyU+53w==", + "dev": true, "requires": { "inline-style-prefixer": "^3.0.6", "prop-types": "^15.5.10", @@ -16274,23 +16996,35 @@ } }, "react-style-proptype": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", - "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "dev": true, "requires": { "prop-types": "^15.5.4" } }, "react-test-renderer": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.4.2.tgz", - "integrity": "sha512-vdTPnRMDbxfv4wL4lzN4EkVGXyYs7LE2uImOsqh1FKiP6L5o1oJl8nore5sFi9vxrP9PK3l4rgb/fZ4PVUaWSA==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.5.2.tgz", + "integrity": "sha512-AGbJYbCVx1J6jdUgI4s0hNp+9LxlgzKvXl0ROA3DHTrtjAr00Po1RhDZ/eAq2VC/ww8AHgpDXULh5V2rhEqqJg==", "dev": true, "requires": { - "fbjs": "^0.8.16", "object-assign": "^4.1.1", - "prop-types": "^15.6.0", - "react-is": "^16.4.2" + "prop-types": "^15.6.2", + "react-is": "^16.5.2", + "schedule": "^0.5.0" + }, + "dependencies": { + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", + "dev": true, + "requires": { + "object-assign": "^4.1.1" + } + } } }, "react-timer-mixin": { @@ -16311,6 +17045,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.4.0.tgz", "integrity": "sha512-Xv5d55NkJUxUzLCImGSanK8Cl/30sgpOEMGc5m86t8+kZwrPxPCPcFqyx83kkr+5Lz5gs6djuvE5By+gce+VjA==", + "dev": true, "requires": { "dom-helpers": "^3.3.1", "loose-envify": "^1.3.1", @@ -16322,6 +17057,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/react-treebeard/-/react-treebeard-2.1.0.tgz", "integrity": "sha512-unoy8IJL1NR5jgTtK+CqOCZKZylh/Tlid0oYajW9bLZCbFelxzmCsF8Y2hyS6pvHqM4W501oOm5O/jvg3VZCrg==", + "dev": true, "requires": { "babel-runtime": "^6.23.0", "deep-equal": "^1.0.1", @@ -16332,31 +17068,31 @@ } }, "reactotron-core-client": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reactotron-core-client/-/reactotron-core-client-2.0.0.tgz", - "integrity": "sha512-9t10M/48VXShmU2yqDeSPhJHaNWLNVrKE08b2YFXBHcyCaGtrrxrJzg+Gk/lGgpRCQEayQ47WA0r5T09JN/bPg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/reactotron-core-client/-/reactotron-core-client-2.1.0.tgz", + "integrity": "sha512-YnTWbnpuo6Jy3kgBLUqzjbkgdyWlrosQvt1Q2LRPlo39o3n/lfncN/bmO9JQh9hD8A3L7DEQ7XCPpVPek1BJPA==", "dev": true }, "reactotron-react-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reactotron-react-native/-/reactotron-react-native-2.0.0.tgz", - "integrity": "sha512-VlLd1vapIR6QXCv53Bn0oHmVIN8uLufHIVTKRH/OtRZa2cGA4z1KRpbZQuryuZ8mVfptZV3rjHAv/1cjzTrwpg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/reactotron-react-native/-/reactotron-react-native-2.1.0.tgz", + "integrity": "sha512-dx0r6w81K1EHns13Oq3LblaXeWsZ8/0vjX4dgR5W2Jp4l7XpEBirpE+g8J1g+rWhiZObn7Jp3jmCJJoheRAncA==", "dev": true, "requires": { "mitt": "^1.1.2", "prop-types": "^15.5.10", - "reactotron-core-client": "^2.0.0" + "reactotron-core-client": "^2.1.0" } }, "reactotron-redux": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reactotron-redux/-/reactotron-redux-2.0.0.tgz", - "integrity": "sha512-ZpxfBVHfCzbF50sCAJWAUz4BCRNH8BNLqLOwIyfRlcF9noQ2dbBo8TqRB6WXxN7pdToi7GhIYBlZ8saaQ+IGtQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/reactotron-redux/-/reactotron-redux-2.1.0.tgz", + "integrity": "sha512-HWfDIZN5stZJrdQXp5AWgH12rgGLpXoSV2rC3va0BP9XxwgG+SKA1f2DQ8W2MrDz5wZ47PGLfhHPjqJQUM20dQ==", "dev": true, "requires": { "ramda": "^0.24.1", "ramdasauce": "^2.0.0", - "reactotron-core-client": "^2.0.0", + "reactotron-core-client": "^2.1.0", "redux": "^3.7.1" }, "dependencies": { @@ -16375,14 +17111,14 @@ } }, "reactotron-redux-saga": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reactotron-redux-saga/-/reactotron-redux-saga-2.0.0.tgz", - "integrity": "sha512-pHOTdql7BgyRHxPWt9fSY+SfDt4E01iXFV/FXEjM59wlhh8j0qt9+mfUQlQehvaWcUbNQdIcdN7c5KKODIRVSQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/reactotron-redux-saga/-/reactotron-redux-saga-2.1.0.tgz", + "integrity": "sha512-DlFJMfff9wwlUSvHscP0NNHILQlccr+/egjoQay0czYCk5NM98virA04KaCv0DGQn9vc3/pUdwtxEeqPnklX+Q==", "dev": true, "requires": { "ramda": "^0.24.1", "ramdasauce": "^2.0.0", - "reactotron-core-client": "^2.0.0", + "reactotron-core-client": "^2.1.0", "redux": "^3.7.1", "redux-saga": "^0.15.3" }, @@ -16453,20 +17189,267 @@ } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } } }, "realm": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/realm/-/realm-2.14.2.tgz", - "integrity": "sha512-57P839VbThGTjbF4xQ17ojX2Dp2tp6FxZK1umfCFZEXmqB4JFR9eAWWYwPOqOki25v5UsVB3BLqUQG7ABe9/Zw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/realm/-/realm-2.16.1.tgz", + "integrity": "sha512-OoN1SVu0BtiKkU6svEEr9/twfCIdVjq98lWXASccGL8Qm4DLhu0NUTP0W5Iv5Rb5jjgiwYGWghPD6yoQu2143A==", "requires": { "command-line-args": "^4.0.6", "decompress": "^4.2.0", @@ -16475,10 +17458,10 @@ "ini": "^1.3.4", "nan": "2.8.0", "node-fetch": "^1.6.3", - "node-pre-gyp": "^0.6.36", + "node-pre-gyp": "^0.11.0", "progress": "^2.0.0", "prop-types": "^15.5.10", - "request": "^2.78.0", + "request": "^2.88.0", "stream-counter": "^1.0.0", "sync-request": "^3.0.1", "url-parse": "^1.2.0" @@ -16522,6 +17505,7 @@ "version": "0.11.23", "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, "requires": { "ast-types": "0.9.6", "esprima": "~3.1.0", @@ -16532,7 +17516,8 @@ "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true } } }, @@ -16540,6 +17525,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, "requires": { "resolve": "^1.1.6" } @@ -16548,6 +17534,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "dev": true, "requires": { "minimatch": "3.0.3" }, @@ -16556,28 +17543,18 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, "requires": { "brace-expansion": "^1.0.0" } } } }, - "redbox-react": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.6.0.tgz", - "integrity": "sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg==", - "dev": true, - "requires": { - "error-stack-parser": "^1.3.6", - "object-assign": "^4.0.1", - "prop-types": "^15.5.4", - "sourcemapped-stacktrace": "^1.1.6" - } - }, "reduce-css-calc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "resolved": "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, "requires": { "balanced-match": "^0.4.2", "math-expression-evaluator": "^1.2.14", @@ -16587,7 +17564,8 @@ "balanced-match": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true } } }, @@ -16595,6 +17573,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, "requires": { "balanced-match": "^0.4.2" }, @@ -16602,7 +17581,8 @@ "balanced-match": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true } } }, @@ -16635,9 +17615,10 @@ "integrity": "sha1-CiMdsKFIkwHdmA9vL4jYztQY9yQ=" }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true }, "regenerate-unicode-properties": { "version": "7.0.0", @@ -16654,10 +17635,16 @@ } } }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, "requires": { "babel-runtime": "^6.18.0", "babel-types": "^6.19.0", @@ -16682,15 +17669,16 @@ } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", + "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", "dev": true }, "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, "requires": { "regenerate": "^1.2.1", "regjsgen": "^0.2.0", @@ -16700,12 +17688,14 @@ "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, "requires": { "jsesc": "~0.5.0" }, @@ -16713,14 +17703,16 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true } } }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true }, "remove-trailing-separator": { "version": "1.1.0", @@ -16731,6 +17723,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, "requires": { "css-select": "^1.1.0", "dom-converter": "~0.1", @@ -16743,6 +17736,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -16750,7 +17744,8 @@ "utila": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=" + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true } } }, @@ -16773,38 +17768,110 @@ } }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "hawk": "~6.0.2", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "stringstream": "~0.0.5", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" }, "dependencies": { + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" } } }, @@ -16836,7 +17903,8 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true }, "require-main-filename": { "version": "1.0.1", @@ -16851,6 +17919,14 @@ "requires": { "caller-path": "^0.1.0", "resolve-from": "^1.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } } }, "requires-port": { @@ -16887,15 +17963,16 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, "resolve-url": { @@ -16927,6 +18004,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, "requires": { "align-text": "^0.1.1" } @@ -16940,18 +18018,19 @@ } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "requires": { - "hash-base": "^2.0.0", + "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, "rn-fetch-blob": { - "version": "0.10.12", - "resolved": "https://registry.npmjs.org/rn-fetch-blob/-/rn-fetch-blob-0.10.12.tgz", - "integrity": "sha512-MWxD3gV5Hy4AvtZA2HtAtBSne4YwcsE6HKLhXyPonWf6Rpi4C3sw7fO4wAPnKVkcgOKQQfGMPs1jLH6Ugw9Ecw==", + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/rn-fetch-blob/-/rn-fetch-blob-0.10.13.tgz", + "integrity": "sha512-CEz7coPlMMUpX5RB+k7Mqzq+eYYfZuFbpuNkFYhvEFnT5DnZyqdNF50Xk6BuZyqZwAjNvsQ1CUMz7XDvuN10DA==", "requires": { "base-64": "0.1.0", "glob": "7.0.6" @@ -16984,6 +18063,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, "requires": { "aproba": "^1.1.1" } @@ -17002,20 +18082,12 @@ } }, "rxjs": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", - "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", + "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", "dev": true, "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -17038,6 +18110,12 @@ "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sane": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.0.tgz", @@ -17292,35 +18370,48 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, + "schedule": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.4.0.tgz", + "integrity": "sha512-hYjmoaEMojiMkWCxKr6ue+LYcZ29u29+AamWYmzwT2VOO9ws5UJp/wNhsVUPiUeNh+EdRfZm7nDeB40ffTfMhA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1" + } + }, "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, "requires": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, "dependencies": { "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "uri-js": "^4.2.2" } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -17380,12 +18471,14 @@ "serialize-javascript": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==" + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true }, "serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dev": true, "requires": { "etag": "~1.8.1", "fresh": "0.5.2", @@ -17397,7 +18490,8 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -17417,11 +18511,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", @@ -17455,8 +18544,9 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -17533,6 +18623,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "dev": true, "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -17581,21 +18672,6 @@ } } }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, "sisteransi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", @@ -17748,18 +18824,10 @@ "kind-of": "^3.2.0" } }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.x.x" - } - }, "snyk": { - "version": "1.90.0", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.90.0.tgz", - "integrity": "sha1-ujf2ZIThilb8mPZNVlpRelP8hWI=", + "version": "1.97.0", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.97.0.tgz", + "integrity": "sha512-G8MyGfmc6Wr3w2qm9Noz2G5Le5s0Shetx2fvAUJgmOfZCjnX+24KCYG8spGPz0DXcoL9T87dsEfZccUJ9uByzA==", "requires": { "abbrev": "^1.1.1", "ansi-escapes": "^3.1.0", @@ -17776,21 +18844,23 @@ "proxy-from-env": "^1.0.0", "recursive-readdir": "^2.2.2", "semver": "^5.5.0", - "snyk-config": "2.1.0", - "snyk-docker-plugin": "1.10.3", - "snyk-go-plugin": "1.5.1", - "snyk-gradle-plugin": "1.3.0", + "snyk-config": "2.2.0", + "snyk-docker-plugin": "1.11.0", + "snyk-go-plugin": "1.5.2", + "snyk-gradle-plugin": "1.3.1", "snyk-module": "1.8.2", - "snyk-mvn-plugin": "1.2.0", - "snyk-nuget-plugin": "1.6.3", + "snyk-mvn-plugin": "1.2.2", + "snyk-nodejs-lockfile-parser": "1.4.1", + "snyk-nuget-plugin": "1.6.5", "snyk-php-plugin": "1.5.1", "snyk-policy": "1.12.0", - "snyk-python-plugin": "1.8.0", + "snyk-python-plugin": "1.8.1", "snyk-resolve": "1.0.1", "snyk-resolve-deps": "3.1.0", - "snyk-sbt-plugin": "1.3.0", + "snyk-sbt-plugin": "1.3.2", "snyk-tree": "^1.0.0", "snyk-try-require": "1.3.1", + "source-map-support": "^0.5.9", "tempfile": "^2.0.0", "then-fs": "^2.0.0", "undefsafe": "^2.0.0", @@ -17821,13 +18891,18 @@ } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -17837,14 +18912,28 @@ } }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -17857,95 +18946,58 @@ } }, "snyk-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snyk-config/-/snyk-config-2.1.0.tgz", - "integrity": "sha512-D1Xz1pZa9lwA9AHogmAigyJGo/iuEGH+rcPB77mFsneVfnuiK9c6IjnsHbEBUf1cePtZvWdGBjs6e75Cvc2AMg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/snyk-config/-/snyk-config-2.2.0.tgz", + "integrity": "sha512-mq0wbP/AgjcmRq5i5jg2akVVV3iSYUPTowZwKn7DChRLDL8ySOzWAwan+ImXiyNbrWo87FNI/15O6MpOnTxOIg==", "requires": { "debug": "^3.1.0", + "lodash": "^4.17.5", "nconf": "^0.10.0" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "snyk-docker-plugin": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-1.10.3.tgz", - "integrity": "sha512-nIw6zS705SiQLEhBwoO2qsJ3lVN1DZ48tyMgqhlr5f5GuOrwUJ0ivUK5HQUI79xA6pF7tU18495OlbsKuEHUOw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-1.11.0.tgz", + "integrity": "sha512-rJrSj4FfGtaFGNybWTb0bULEqoQEeZfZBpGoDumiXsGqoSWf61Tr1V/Ck9NGcmHWNEVsLZLcE9CXp6Y6Kbo8qA==", "requires": { - "debug": "^3.1.0", - "fs-extra": "^5.0.0", - "pkginfo": "^0.4.1", - "request": "^2.87.0", - "temp-dir": "^1.0.0" + "debug": "^3", + "tslib": "^1" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "snyk-go-plugin": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.5.1.tgz", - "integrity": "sha512-8OPJOT05Z/UL5fFSXV6b/A6KjlS1Ahr2gpup1bhXtAGXlUUPyWidqkCIER9fexDXqYWgAoDAdn9YHIvmL/5bfw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.5.2.tgz", + "integrity": "sha512-XWajcSh6Ld+I+WdcyU3DGDuE2ydThQd8ORkESy0nQ2LwekygLYVYN66OBy0uxpqYfd4qoqeg+J8lb4oGzCmyGA==", "requires": { "graphlib": "^2.1.1", "tmp": "0.0.33", @@ -17953,9 +19005,9 @@ } }, "snyk-gradle-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-1.3.0.tgz", - "integrity": "sha512-rKZcPwbDM9zk3pFcO0w77MIKOZTkk5ZBVBkBlTlUiFg+eNOKqPTmw2hBGF5NB4ASQmMnx3uB1C8+hrQ405CthA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-1.3.1.tgz", + "integrity": "sha512-WJQuJFihqvnOqtV8Psl8W2/XxluSxB/tffHmGXy5b2C2VO56WmEvn1JHTcmvkRBP1KjPtwccMc1e7WeOVT3saQ==", "requires": { "clone-deep": "^0.3.0" } @@ -17970,39 +19022,79 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "snyk-mvn-plugin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-1.2.0.tgz", - "integrity": "sha512-ieTWhn1MB88gEQ6nUtGCeUKQ6Xoxm+u+QmD9u3zfP1QS5ep9fWt3YYDUQjgUiDTJJy7QyVQdZ/fsz3RECnOA7w==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-1.2.2.tgz", + "integrity": "sha512-KfT7JZWIxYbLkqhidUyOMNeK/iTwNeHYwqNtycMS3S4i9NfbfrMl73IesxNyJQeGgZ79ms5sg7psqAQj29uZIA==" + }, + "snyk-nodejs-lockfile-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.4.1.tgz", + "integrity": "sha512-xjkf1BHk7HQlp4ABIWPtEvAOAvWhwMtJ7ElQVUvKBHPVHjMEz3mucBRfrtpuyDBJ3DaBlN8Wiw+kcEinX6f09w==", + "requires": { + "lodash": "4.17.10", + "path": "0.12.7", + "source-map-support": "^0.5.7" + }, + "dependencies": { + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } }, "snyk-nuget-plugin": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.6.3.tgz", - "integrity": "sha512-sC590aveQb0ns7HuDheIZ7FhN/HZzWgzXKUnBGfia/SXIFBpQz/6tognraMJ4+877uLLSdsB2jkyDeHYeWICrg==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.6.5.tgz", + "integrity": "sha512-3qIndzkxCxiaGvAwMkqChbChGdwhNePPyfi0WjhC/nJGwecqU3Fb/NeTW7lgyT+xoq/dFnzW0DgBJ4+AyNA2gA==", "requires": { "debug": "^3.1.0", - "es6-promise": "^4.1.1", + "jszip": "^3.1.5", "lodash": "^4.17.10", - "xml2js": "^0.4.17", - "zip": "^1.2.0" + "xml2js": "^0.4.17" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -18017,12 +19109,17 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -18043,24 +19140,29 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" } } }, "snyk-python-plugin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.8.0.tgz", - "integrity": "sha512-44oDdNjCaNEy+uSmLB3iqtGJa6TAmB7bcG7j9+KkHH6WNxjrwCDHAZQXncIeliYXohb0FFTNMAnbAK4PosqN2Q==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.8.1.tgz", + "integrity": "sha512-DsUBkQZiPlXGkwzhxxEo2Tvfq6XhygWQThWM0yRBythi9M5n8UimZEwdkBHPj7xKC1clsB8boM3+sT/E1x6XGA==", "requires": { "tmp": "0.0.33" } @@ -18075,12 +19177,17 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -18106,22 +19213,24 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "snyk-sbt-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/snyk-sbt-plugin/-/snyk-sbt-plugin-1.3.0.tgz", - "integrity": "sha512-SRxPB16392dvN3Qv2RfUcHe0XETLWx2kNIOuoNXvc2Gl6DuPW+X+meDJY7xC/yQhU7bSPPKoM2B7awYaj9i2Bg==", - "requires": { - "debug": "^2.2.0" - } + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/snyk-sbt-plugin/-/snyk-sbt-plugin-1.3.2.tgz", + "integrity": "sha512-Pm6G8emW4mDg9hflY0gsdFV5JgR8pHa8D1vCZGJMVSRuGrc64CEg8I1D6977lGoKDwJGePwi4CTcluwj7cNsxQ==" }, "snyk-tree": { "version": "1.0.0", @@ -18143,19 +19252,25 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", + "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "dev": true, "requires": { "debug": "^2.6.6", "eventsource": "0.1.6", @@ -18187,6 +19302,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, "requires": { "is-plain-obj": "^1.0.0" } @@ -18194,7 +19310,8 @@ "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true }, "source-map": { "version": "0.5.7", @@ -18226,23 +19343,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, - "sourcemapped-stacktrace": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.8.tgz", - "integrity": "sha512-OkVoI7GQOLl/laR1qsSo1c87tS8kF2VXhQq2SrQCDdXufBAcm8FgXogWso96ciMYoDtTw1Dn70CVdwYzoYs6Pg==", - "dev": true, - "requires": { - "source-map": "0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -18293,6 +19393,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, "requires": { "safe-buffer": "^5.1.1" } @@ -18303,12 +19404,6 @@ "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", "dev": true }, - "stackframe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", - "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", - "dev": true - }, "stacktrace-parser": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz", @@ -18399,6 +19494,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -18415,35 +19511,77 @@ "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" }, "stream-each": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", - "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" } }, "stream-http": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz", - "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", - "readable-stream": "^2.3.3", + "readable-stream": "^2.3.6", "to-arraybuffer": "^1.0.0", "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true }, "string-length": { "version": "2.0.0", @@ -18472,11 +19610,6 @@ "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -18519,6 +19652,7 @@ "version": "0.20.3", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.20.3.tgz", "integrity": "sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg==", + "dev": true, "requires": { "loader-utils": "^1.1.0", "schema-utils": "^0.4.5" @@ -18532,12 +19666,14 @@ "svg-tag-names": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/svg-tag-names/-/svg-tag-names-1.1.1.tgz", - "integrity": "sha1-lkGynvcQJe4JTHBD983efZn71Qo=" + "integrity": "sha1-lkGynvcQJe4JTHBD983efZn71Qo=", + "dev": true }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, "requires": { "coa": "~1.0.1", "colors": "~1.1.2", @@ -18570,24 +19706,30 @@ } }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "4.0.3", + "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", "chalk": "^2.1.0", "lodash": "^4.17.4", "slice-ansi": "1.0.0", "string-width": "^2.1.1" }, "dependencies": { - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true + "ajv": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } }, "ansi-styles": { "version": "3.2.1", @@ -18609,16 +19751,22 @@ "supports-color": "^5.3.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -18635,31 +19783,33 @@ "tapable": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", + "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-pack": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", - "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", - "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } } }, "tar-stream": { @@ -18696,7 +19846,7 @@ "dependencies": { "rimraf": { "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" } } @@ -18716,170 +19866,18 @@ } }, "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", "dev": true, "requires": { "arrify": "^1.0.1", - "micromatch": "^3.1.8", + "micromatch": "^2.3.11", "object-assign": "^4.1.0", "read-pkg-up": "^1.0.1", "require-main-filename": "^1.0.1" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -18890,78 +19888,6 @@ "pinkie-promise": "^2.0.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -18975,27 +19901,6 @@ "strip-bom": "^2.0.0" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -19070,7 +19975,8 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, "then-fs": { "version": "2.0.0", @@ -19100,17 +20006,6 @@ } } }, - "thread-loader": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-1.1.5.tgz", - "integrity": "sha512-BklxWyBW9EsRC6neZPuwwV6L1iRkGwe8sFWUcI1g+3DS3JajW/zJKo2t6j2a72bXngv9a4xyDHpn1EpXM9VWDw==", - "dev": true, - "requires": { - "async": "^2.3.0", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0" - } - }, "throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", @@ -19136,14 +20031,16 @@ "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "time-stamp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.1.tgz", - "integrity": "sha512-KUnkvOWC3C+pEbwE/0u3CcmNpGCDqkYGYZOphe1QFxApYQkJ5g195TDBjgZch/zG6chU1NcabLwnM7BCpWAzTQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.1.0.tgz", + "integrity": "sha512-lJbq6KsFhZJtN3fPUVje1tq/hHsJOKUUcUj/MGCiQR6qWBDcyi5kxL9J7/RnaEChCn0+L/DUN2WvemDrkk4i3Q==", + "dev": true }, "timers-browserify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", - "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, "requires": { "setimmediate": "^1.0.4" } @@ -19164,7 +20061,8 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true }, "to-buffer": { "version": "1.1.1", @@ -19214,11 +20112,6 @@ } } }, - "to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=" - }, "toml": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.3.tgz", @@ -19227,13 +20120,16 @@ "toposort": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" } }, @@ -19270,13 +20166,13 @@ "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true }, "tunnel-agent": { "version": "0.6.0", @@ -19304,22 +20200,19 @@ "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.18" }, "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "dev": true, "requires": { - "mime-db": "~1.33.0" + "mime-db": "~1.36.0" } } } @@ -19348,6 +20241,7 @@ "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, "requires": { "source-map": "~0.5.1", "uglify-to-browserify": "~1.0.0", @@ -19357,12 +20251,14 @@ "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, "requires": { "center-align": "^0.1.1", "right-align": "^0.1.1", @@ -19372,12 +20268,14 @@ "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true }, "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, "requires": { "camelcase": "^1.0.2", "cliui": "^2.1.0", @@ -19391,12 +20289,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", - "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, "requires": { "cacache": "^10.0.4", "find-cache-dir": "^1.0.0", @@ -19411,17 +20311,20 @@ "commander": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "uglify-es": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, "requires": { "commander": "~2.13.0", "source-map": "~0.6.1" @@ -19429,20 +20332,15 @@ } } }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" - }, "ultron": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz", - "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unbzip2-stream": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", - "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.0.tgz", + "integrity": "sha512-kE2WkurNnPUMcryNioS68DDbhoPB8Qxsd8btHSj+sd5Pjh2GsjmeHLzMSqV9HHziAo8FzVxVCJl9ZYhk7yY1pA==", "requires": { "buffer": "^3.0.1", "through": "^2.3.6" @@ -19542,25 +20440,29 @@ "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true }, "uniqs": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true }, "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, "requires": { "imurmurhash": "^0.1.4" } @@ -19630,19 +20532,22 @@ } }, "upath": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", - "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, "requires": { "punycode": "^2.1.0" }, @@ -19650,7 +20555,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true } } }, @@ -19663,6 +20569,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -19671,7 +20578,8 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, @@ -19679,6 +20587,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "dev": true, "requires": { "loader-utils": "^1.0.2", "mime": "^1.4.1", @@ -19689,6 +20598,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, "requires": { "ajv": "^5.0.0" } @@ -19758,7 +20668,8 @@ "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true }, "utils-merge": { "version": "1.0.1", @@ -19787,12 +20698,14 @@ "velocity-animate": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.2.tgz", - "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==" + "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==", + "dev": true }, "velocity-react": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.4.1.tgz", "integrity": "sha512-ZyXBm+9C/6kNUNyc+aeNKEhtTu/Mn+OfpsNBGuTxU8S2DUcis/KQL0rTN6jWL+7ygdOrun18qhheNZTA7YERmg==", + "dev": true, "requires": { "lodash": "^4.17.5", "prop-types": "^15.5.8", @@ -19803,7 +20716,8 @@ "vendors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true }, "verror": { "version": "1.10.0", @@ -19819,6 +20733,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, "requires": { "indexof": "0.0.1" } @@ -19844,6 +20759,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -19858,9 +20774,10 @@ } }, "watchpack": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", - "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, "requires": { "chokidar": "^2.0.2", "graceful-fs": "^4.1.2", @@ -19877,6 +20794,7 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, "requires": { "acorn": "^5.0.0", "acorn-dynamic-import": "^2.0.0", @@ -19903,35 +20821,40 @@ }, "dependencies": { "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "uri-js": "^4.2.2" } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true }, "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, "requires": { "has-flag": "^2.0.0" } @@ -19940,6 +20863,7 @@ "version": "0.4.6", "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, "requires": { "source-map": "^0.5.6", "uglify-js": "^2.8.29", @@ -19952,6 +20876,7 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, "requires": { "memory-fs": "~0.4.1", "mime": "^1.5.0", @@ -19963,14 +20888,16 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true } } }, "webpack-hot-middleware": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.22.2.tgz", - "integrity": "sha512-uccPS6b/UlXJoNCS+3fuc40z2KZgO0qQhnu+Ne1iZiHTy9s5fMCJAV+Vc8VTVkN203UphsxQmkumxYeHLiQ5jg==", + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.24.2.tgz", + "integrity": "sha512-VsBGNMC5JDnab5hbReMjmIYtnvDMT+odLSP49EbLZHwuAoJJDNOi0YLhTe40vvP7u7Be+Ww1mYHjwwelqdnaKA==", + "dev": true, "requires": { "ansi-html": "0.0.7", "html-entities": "^1.2.0", @@ -19982,6 +20909,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -19989,9 +20917,10 @@ } }, "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -20000,61 +20929,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "webpack-visualizer-plugin": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/webpack-visualizer-plugin/-/webpack-visualizer-plugin-0.1.11.tgz", - "integrity": "sha1-uHcK2GtPZSYSxosbeCJT+vn4o04=", - "dev": true, - "requires": { - "d3": "^3.5.6", - "mkdirp": "^0.5.1", - "react": "^0.14.0", - "react-dom": "^0.14.0" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - }, - "fbjs": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", - "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "loose-envify": "^1.0.0", - "promise": "^7.0.3", - "ua-parser-js": "^0.7.9", - "whatwg-fetch": "^0.9.0" - } - }, - "react": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", - "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", - "dev": true, - "requires": { - "envify": "^3.0.0", - "fbjs": "^0.6.1" - } - }, - "react-dom": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", - "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=", - "dev": true - }, - "whatwg-fetch": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz", - "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA=", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } @@ -20063,6 +20938,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, "requires": { "http-parser-js": ">=0.4.0", "websocket-extensions": ">=0.1.1" @@ -20071,15 +20947,27 @@ "websocket-extensions": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true }, "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz", + "integrity": "sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==", "dev": true, "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "0.4.23" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "whatwg-fetch": { @@ -20107,7 +20995,8 @@ "whet.extend": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true }, "which": { "version": "1.3.0", @@ -20169,7 +21058,8 @@ "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true }, "wolfy87-eventemitter": { "version": "4.3.0", @@ -20185,6 +21075,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, "requires": { "errno": "~0.1.7" } @@ -20318,7 +21209,7 @@ "dependencies": { "sax": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", + "resolved": "http://registry.npmjs.org/sax/-/sax-1.1.6.tgz", "integrity": "sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=" } } @@ -20399,14 +21290,6 @@ } } } - }, - "zip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip/-/zip-1.2.0.tgz", - "integrity": "sha1-rQrUImUwm+QutW/IYZThfCTmapw=", - "requires": { - "bops": "~0.1.1" - } } } } diff --git a/package.json b/package.json index a9f9470c8..4ed31eeb7 100644 --- a/package.json +++ b/package.json @@ -24,93 +24,87 @@ }, "dependencies": { "@remobile/react-native-toast": "^1.0.7", - "@storybook/addons": "^3.4.10", - "@storybook/react-native": "^3.4.10", "deep-equal": "^1.0.1", "ejson": "^2.1.2", - "js-base64": "^2.4.8", + "js-base64": "^2.4.9", "js-sha256": "^0.9.0", "jsc-android": "^224109.1.0", - "lodash": "^4.17.10", + "lodash": "^4.17.11", "markdown-it-flowdock": "^0.3.7", "moment": "^2.22.2", "prop-types": "^15.6.2", - "react": "^16.4.2", - "react-clone-referenced-element": "^1.0.1", + "react": "^16.5.2", "react-emojione": "^5.0.0", - "react-native": "^0.56.0", + "react-native": "^0.57.1", "react-native-actionsheet": "^2.4.2", - "react-native-audio": "^4.1.3", + "react-native-audio": "^4.2.0", "react-native-device-info": "^0.22.5", "react-native-dialog": "^5.1.0", "react-native-fabric": "^0.5.1", - "react-native-fast-image": "^4.0.14", + "react-native-fast-image": "^5.0.3", "react-native-gesture-handler": "^1.0.7", "react-native-i18n": "^2.0.15", "react-native-image-crop-picker": "git+https://github.com/RocketChat/react-native-image-crop-picker.git", - "react-native-image-zoom-viewer": "^2.2.14", - "react-native-keyboard-aware-scroll-view": "^0.6.0", + "react-native-image-zoom-viewer": "^2.2.18", + "react-native-keyboard-aware-scroll-view": "^0.7.2", "react-native-keyboard-input": "^5.2.3", "react-native-keyboard-tracking-view": "^5.4.4", "react-native-markdown-renderer": "^3.2.8", "react-native-meteor": "^1.4.0", "react-native-modal": "^6.5.0", "react-native-navigation": "git+https://github.com/RocketChat/react-native-navigation.git", - "react-native-notifications": "git+https://github.com/RocketChat/react-native-notifications.git", + "react-native-notifications": "^1.1.20", "react-native-optimized-flatlist": "^1.0.4", - "react-native-picker-select": "^4.2.0", + "react-native-picker-select": "^4.4.0", "react-native-responsive-ui": "^1.1.1", "react-native-safari-view": "^2.1.0", "react-native-scrollable-tab-view": "git+https://github.com/skv-headless/react-native-scrollable-tab-view.git", "react-native-slider": "^0.11.0", - "react-native-svg": "^6.5.2", - "react-native-svg-image": "^2.0.1", "react-native-vector-icons": "^5.0.0", - "react-native-video": "^3.2.0", + "react-native-video": "^3.2.1", "react-native-video-controls": "^2.2.3", - "react-native-zeroconf": "^0.9.0", "react-redux": "^5.0.6", - "realm": "^2.14.2", + "realm": "^2.16.1", "redux": "^4.0.0", "redux-enhancer-react-native-appstate": "^0.3.1", "redux-immutable-state-invariant": "^2.1.0", "redux-saga": "^0.16.0", - "rn-fetch-blob": "^0.10.12", - "snyk": "^1.90.0", + "rn-fetch-blob": "^0.10.13", + "snyk": "^1.97.0", "strip-ansi": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.0.0-beta.47", - "@babel/plugin-proposal-decorators": "7.0.0-beta.47", - "@storybook/addon-storyshots": "^3.4.10", - "babel-core": "^7.0.0-beta.47", - "babel-eslint": "^8.2.6", - "babel-jest": "^23.4.2", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@storybook/addon-actions": "^3.4.11", + "@storybook/addon-links": "^3.4.11", + "@storybook/addon-storyshots": "^3.4.11", + "@storybook/addons": "^3.4.11", + "@storybook/react-native": "^3.4.11", + "babel-core": "^6.26.3", + "babel-eslint": "^9.0.0", + "babel-jest": "^23.6.0", "babel-plugin-transform-remove-console": "^6.9.4", - "babel-preset-react-native": "^5.0.2", - "codecov": "^3.0.4", - "detox": "^8.1.4", - "eslint": "^4.19.1", - "eslint-config-airbnb": "^16.1.0", - "eslint-plugin-import": "^2.13.0", + "babel-runtime": "^6.26.0", + "codecov": "^3.1.0", + "detox": "^9.0.1", + "eslint": "^5.6.0", + "eslint-config-airbnb": "^17.1.0", + "eslint-plugin-import": "^2.14.0", "eslint-plugin-jsx-a11y": "^6.1.1", - "eslint-plugin-react": "^7.10.0", - "eslint-plugin-react-native": "^3.2.0", + "eslint-plugin-react": "^7.11.1", + "eslint-plugin-react-native": "^3.3.0", "identity-obj-proxy": "^3.0.0", - "jest": "^23.4.2", - "jest-cli": "^23.4.2", + "jest": "^23.6.0", + "jest-cli": "^23.6.0", + "metro-react-native-babel-preset": "^0.45.6", "mocha": "^5.2.0", - "react-dom": "^16.4.2", - "react-native-bundle-visualizer": "^1.3.0", - "react-test-renderer": "^16.4.2", - "reactotron-react-native": "^2.0.0", - "reactotron-redux": "^2.0.0", - "reactotron-redux-saga": "^2.0.0", - "@storybook/react-native": "^3.4.10", - "@storybook/addon-actions": "^3.4.10", - "@storybook/addon-links": "^3.4.10", - "@storybook/addons": "^3.4.10", - "babel-runtime": "^6.26.0" + "react-dom": "^16.5.2", + "react-test-renderer": "^16.5.2", + "reactotron-react-native": "^2.1.0", + "reactotron-redux": "^2.1.0", + "reactotron-redux-saga": "^2.1.0", + "schedule": "^0.4.0" }, "jest": { "testPathIgnorePatterns": [ diff --git a/storybook/storybook.js b/storybook/storybook.js index fc8fdc828..23c572107 100644 --- a/storybook/storybook.js +++ b/storybook/storybook.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import { Navigation } from 'react-native-navigation'; -import { getStorybookUI, configure } from '@storybook/react-native'; +import { getStorybookUI, configure } from '@storybook/react-native'; // eslint-disable-line // import stories configure(() => {