diff --git a/App.js b/App.js index da6d0d9..327bf53 100644 --- a/App.js +++ b/App.js @@ -1,268 +1,99 @@ -// import React from "react"; -// import { StyleSheet, Text, View } from "react-native"; -// import { GiftedChat } from "react-native-gifted-chat"; -// export default class App extends React.Component { -// state = { -// messages: [ -// { -// _id: 1, -// text: "heyo team puddin", -// createdAt: new Date() -// } -// ] -// }; -// render() { -// return ( -// -// -// -// ); -// } -// } -// const styles = StyleSheet.create({ -// container: { -// flex: 1 -// } -// }); - - import React from 'react'; -import { - Platform, - StyleSheet, - Text, - View, -} from 'react-native'; - +import ReactNative from "react-native"; +import { Platform, StatusBar, StyleSheet, View } from 'react-native'; +import { AppLoading, Asset, Font, Icon } from 'expo'; +import AppNavigator from './navigation/AppNavigator'; +import Login from './screens/Login'; +import ChooseTutor from './screens/ChooseTutor'; import {GiftedChat, Actions, Bubble, SystemMessage} from 'react-native-gifted-chat'; import CustomActions from './CustomActions'; import CustomView from './CustomView'; -export default class Example extends React.Component { - constructor(props) { - super(props); - this.state = { - messages: [], - loadEarlier: true, - typingText: null, - isLoadingEarlier: false, - }; - - this._isMounted = false; - this.onSend = this.onSend.bind(this); - this.onReceive = this.onReceive.bind(this); - this.renderCustomActions = this.renderCustomActions.bind(this); - this.renderBubble = this.renderBubble.bind(this); - this.renderSystemMessage = this.renderSystemMessage.bind(this); - this.renderFooter = this.renderFooter.bind(this); - this.onLoadEarlier = this.onLoadEarlier.bind(this); - - this._isAlright = null; - } - - componentWillMount() { - this._isMounted = true; - this.setState(() => { - return { - messages: require('./data/messages.js'), - }; - }); - } - - componentWillUnmount() { - this._isMounted = false; - } - - onLoadEarlier() { - this.setState((previousState) => { - return { - isLoadingEarlier: true, - }; - }); - - setTimeout(() => { - if (this._isMounted === true) { - this.setState((previousState) => { - return { - messages: GiftedChat.prepend(previousState.messages, require('./data/old_messages.js')), - loadEarlier: false, - isLoadingEarlier: false, - }; - }); - } - }, 1000); // simulating network - } - - onSend(messages = []) { - this.setState((previousState) => { - return { - messages: GiftedChat.append(previousState.messages, messages), - }; - }); - - // for demo purpose - this.answerDemo(messages); - } - - answerDemo(messages) { - if (messages.length > 0) { - if ((messages[0].image || messages[0].location) || !this._isAlright) { - this.setState((previousState) => { - return { - typingText: 'Tutor is typing...' - }; - }); - } +export default class App extends React.Component { + + constructor(props){ + super(props) + this.state={ + isLoadingComplete: false, + hasChosen: false, + isMentor:false } - - setTimeout(() => { - if (this._isMounted === true) { - if (messages.length > 0) { - if (messages[0].image) { - this.onReceive('Nice picture!'); - } else if (messages[0].location) { - this.onReceive('My favorite place'); - } else { - if (!this._isAlright) { - this.onReceive('¿Hola, como estás?'); - this._isAlright = true; - } - } - } - } - - this.setState((previousState) => { - return { - typingText: null, - }; - }); - }, 1000); + this.hasChosenChange = this.hasChosenChange.bind(this); + this.goBack = this.goBack.bind(this); } - - onReceive(text) { - this.setState((previousState) => { - return { - messages: GiftedChat.append(previousState.messages, { - _id: Math.round(Math.random() * 1000000), - text: text, - createdAt: new Date(), - user: { - _id: 2, - name: 'React Native', - // avatar: 'https://facebook.github.io/react/img/logo_og.png', - }, - }), - }; + + hasChosenChange = (isMentor)=>{ + this.setState({ + hasChosen:true, + isMentor:isMentor }); } + goBack = ()=>{ + this.setState({ + hasChosen:false + }) + } - renderCustomActions(props) { - if (Platform.OS === 'ios') { + render() { + if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) { return ( - ); + } else { + if(!this.state.hasChosen){ + return ( + + {Platform.OS === 'ios' && } + + + ); + }else{ + return( + + ) + } } - const options = { - 'Action 1': (props) => { - alert('option 1'); - }, - 'Action 2': (props) => { - alert('option 2'); - }, - 'Cancel': () => {}, - }; - return ( - - ); } - //other person messages - renderBubble(props) { - return ( - - ); - } - renderSystemMessage(props) { - return ( - - ); - } - renderCustomView(props) { - return ( - - ); - } - renderFooter(props) { - if (this.state.typingText) { - return ( - - - {this.state.typingText} - - - ); - } - return null; - } - - render() { - return ( - - ); - } + _loadResourcesAsync = async () => { + return Promise.all([ + Asset.loadAsync([ + require('./assets/images/robot-dev.png'), + require('./assets/images/robot-prod.png'), + ]), + Font.loadAsync({ + // This is the font that we are using for our tab bar + ...Icon.Ionicons.font, + // We include SpaceMono because we use it in HomeScreen.js. Feel free + // to remove this if you are not using it in your app + 'space-mono': require('./assets/fonts/SpaceMono-Regular.ttf'), + }), + ]); + }; + + _handleLoadingError = error => { + // In this case, you might want to report the error to your error + // reporting service, for example Sentry + console.warn(error); + }; + + _handleFinishLoading = () => { + this.setState({ isLoadingComplete: true }); + }; } const styles = StyleSheet.create({ - footerContainer: { - marginTop: 5, - marginLeft: 10, - marginRight: 10, - marginBottom: 10, - }, - footerText: { - fontSize: 14, - color: '#aaa', + container: { + flex: 1, + backgroundColor: '#fff', }, }); + diff --git a/app.json b/app.json index cb65052..6a3aaa8 100644 --- a/app.json +++ b/app.json @@ -8,9 +8,9 @@ "ios", "android" ], - "version": "1.0.0", + "version": "1.1.0", "orientation": "portrait", - "icon": "./assets/images/icon.png", + "icon": "./assets/images/english-aide-icon.png", "splash": { "image": "./assets/images/splash.png", "resizeMode": "contain", diff --git a/assets/images/english-aide-icon.png b/assets/images/english-aide-icon.png new file mode 100644 index 0000000..ee5c0c8 Binary files /dev/null and b/assets/images/english-aide-icon.png differ diff --git a/assets/images/icon.png b/assets/images/icon.png deleted file mode 100644 index 3f5bbc0..0000000 Binary files a/assets/images/icon.png and /dev/null differ diff --git a/components/TabBarIcon.js b/components/TabBarIcon.js index 2f1ebed..cb36a89 100644 --- a/components/TabBarIcon.js +++ b/components/TabBarIcon.js @@ -10,7 +10,7 @@ export default class TabBarIcon extends React.Component { name={this.props.name} size={26} style={{ marginBottom: -3 }} - color={this.props.focused ? Colors.tabIconSelected : Colors.tabIconDefault} + color={"#ffff"} /> ); } diff --git a/constants/Colors.js b/constants/Colors.js index d8bd415..dd8c21d 100644 --- a/constants/Colors.js +++ b/constants/Colors.js @@ -4,7 +4,7 @@ export default { tintColor, tabIconDefault: '#ccc', tabIconSelected: tintColor, - tabBar: '#fefefe', + tabBar: '#0076be', errorBackground: 'red', errorText: '#fff', warningBackground: '#EAEB5E', diff --git a/data/messages.js b/data/messages.js index d0a41c9..03a1d2a 100755 --- a/data/messages.js +++ b/data/messages.js @@ -1,28 +1,28 @@ module.exports = [ - { - _id: Math.round(Math.random() * 1000000), - text: 'Yes, and I use Gifted Chat!', - createdAt: new Date(Date.UTC(2016, 7, 30, 17, 20, 0)), - user: { - _id: 1, - name: 'Developer', - }, - sent: true, - received: true, - // location: { - // latitude: 48.864601, - // longitude: 2.398704 - // }, - }, - { - _id: Math.round(Math.random() * 1000000), - text: 'Are you building a chat app?', - createdAt: new Date(Date.UTC(2016, 7, 30, 17, 20, 0)), - user: { - _id: 2, - name: 'React Native', - }, - }, + // { + // _id: Math.round(Math.random() * 1000000), + // text: 'Yes, and I use Gifted Chat!', + // createdAt: new Date(Date.UTC(2016, 7, 30, 17, 20, 0)), + // user: { + // _id: 1, + // name: 'Developer', + // }, + // sent: true, + // received: true, + // // location: { + // // latitude: 48.864601, + // // longitude: 2.398704 + // // }, + // }, + // { + // _id: Math.round(Math.random() * 1000000), + // text: 'Hello!', + // createdAt: new Date(Date.UTC(2016, 7, 30, 17, 20, 0)), + // user: { + // _id: 2, + // name: 'React Native', + // }, + // }, { _id: Math.round(Math.random() * 1000000), text: "You are now talking to your Tutor", diff --git a/navigation/MainTabNavigator.js b/navigation/MainTabNavigator.js index ce7efd1..ac35b6e 100644 --- a/navigation/MainTabNavigator.js +++ b/navigation/MainTabNavigator.js @@ -1,5 +1,5 @@ import React from 'react'; -import { Platform } from 'react-native'; +import { Platform, Dimensions } from 'react-native'; import { createStackNavigator, createBottomTabNavigator } from 'react-navigation'; import TabBarIcon from '../components/TabBarIcon'; @@ -7,10 +7,13 @@ import HomeScreen from '../screens/HomeScreen'; import LinksScreen from '../screens/LinksScreen'; import SettingsScreen from '../screens/SettingsScreen'; +var {height, width} = Dimensions.get('window'); + const HomeStack = createStackNavigator({ Home: HomeScreen, }); +// Home Icon HomeStack.navigationOptions = { tabBarLabel: 'Home', tabBarIcon: ({ focused }) => ( @@ -18,23 +21,24 @@ HomeStack.navigationOptions = { focused={focused} name={ Platform.OS === 'ios' - ? `ios-information-circle${focused ? '' : '-outline'}` - : 'md-information-circle' + ? `ios-home` + : 'md-home' } /> ), }; +// Message Icon const LinksStack = createStackNavigator({ Links: LinksScreen, }); LinksStack.navigationOptions = { - tabBarLabel: 'Links', + tabBarLabel: 'Messages', tabBarIcon: ({ focused }) => ( ), }; @@ -48,7 +52,7 @@ SettingsStack.navigationOptions = { tabBarIcon: ({ focused }) => ( ), }; @@ -57,4 +61,31 @@ export default createBottomTabNavigator({ HomeStack, LinksStack, SettingsStack, +}, +{ + tabBarOptions: { + + activeTintColor: "#ffff" , + inactiveTintColor: "#0076be", + + + + showIcon: true, + + labelStyle: { + fontSize: 12, + + }, + tabStyle: { + width: (1/3)*width, + + + }, + style: { + backgroundColor: "#4db4d7", + + } + + } + }); diff --git a/package-lock.json b/package-lock.json index 498ea22..c8d16fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,8 @@ { - "requires": true, + "name": "englishaide", + "version": "1.0.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "@babel/code-frame": { "version": "7.0.0", @@ -774,6 +776,165 @@ "tiny-queue": "^0.2.1" } }, + "@firebase/app": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.3.7.tgz", + "integrity": "sha512-MrMNsmJHncSl6BENNQWGg5ggWHyEbRccQr5bbOOzvDJuPW1OvK1LwSLE9SRPV4W66pk4RH0B5eMwjDTWJemKeg==", + "requires": { + "@firebase/app-types": "0.3.2", + "@firebase/util": "0.2.5", + "dom-storage": "2.1.0", + "tslib": "1.9.0", + "xmlhttprequest": "1.8.0" + } + }, + "@firebase/app-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.3.2.tgz", + "integrity": "sha512-ZD8lTgW07NGgo75bTyBJA8Lt9+NweNzot7lrsBtIvfciwUzaFJLsv2EShqjBeuhF7RpG6YFucJ6m67w5buCtzw==" + }, + "@firebase/auth": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.9.1.tgz", + "integrity": "sha512-kiJtKXzM7DD1UNTdWcMmmRoU4LBX95JPWgCUN6nzumO1Ed+1izsgE4OwYVbZo+inSlOp6au0JTJrecsHHBemug==", + "requires": { + "@firebase/auth-types": "0.5.0" + } + }, + "@firebase/auth-types": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.5.0.tgz", + "integrity": "sha512-DSjtsIjTy5RSiWyGHqiGkLcDgEgFEf2aD2O0t/0+lHmAzxUGrJFO5+IkPNV6i0ffmtiJaXQDJ7z7q4OdypDBCg==" + }, + "@firebase/database": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.3.10.tgz", + "integrity": "sha512-ejG/EBxb8/Xe/HLEHL2wb6ONSvmmkDOtxQ1GShqZwzOvTJLbRSLre0PbtMA7XuwC3KBy3tqMQgaL7USNCCfzHw==", + "requires": { + "@firebase/database-types": "0.3.3", + "@firebase/logger": "0.1.4", + "@firebase/util": "0.2.5", + "faye-websocket": "0.11.1", + "tslib": "1.9.0" + } + }, + "@firebase/database-types": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.3.3.tgz", + "integrity": "sha512-HNFO+YFyqaoiZ+J5blIHuXDveJ+S/jMA2gPRCE54jZcjdtAnTCOp6Iy2sMLkHOy/y96e/BqmowNQ0HPoj0Uunw==" + }, + "@firebase/firestore": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-1.0.0.tgz", + "integrity": "sha512-6MWExihw16C+/JHbjjr/QxeFDXJxG9RKAEhUqbbCHpQDd30haqDJIjY1BoANOU3YwSxdOlY0bDNMp1JJqmRmqA==", + "requires": { + "@firebase/firestore-types": "1.0.0", + "@firebase/logger": "0.1.4", + "@firebase/webchannel-wrapper": "0.2.11", + "grpc": "1.17.0", + "tslib": "1.9.0" + } + }, + "@firebase/firestore-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-1.0.0.tgz", + "integrity": "sha512-l9T2zobNoRJtAwvSzDkGZq279fSXQrdKXJ+KleKIKvKsWkbEBBSlGXgVWinlKDQY+wDlBGlSffpQl2zn72H3JQ==" + }, + "@firebase/functions": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.3.5.tgz", + "integrity": "sha512-sbqPm+rQ5Zz1OD14q3CrYdN6ZT60tp8haDaqE5wUcr5L0b9pQz1iN3OygylExWbPI9OfRGWCixF6VzCgd7hoBw==", + "requires": { + "@firebase/functions-types": "0.2.1", + "@firebase/messaging-types": "0.2.3", + "isomorphic-fetch": "2.2.1", + "tslib": "1.9.0" + } + }, + "@firebase/functions-types": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.2.1.tgz", + "integrity": "sha512-hH78lgDoa5E1peBSXnfQyshENmh/5a8aia+S4Ocjc53OUWRJ4VqYwWUV5gE4b2mqVKTpN4akJccLq2pCnNGZcA==" + }, + "@firebase/logger": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.1.4.tgz", + "integrity": "sha512-MbjM/wtqxDZ8Dx1Qg6gkqianaAbnQy2//6HP8/e2Cqy1UsuTha+AWzqRxe/bdHQEm/PcFaji0wmZjSgqZxBqwA==" + }, + "@firebase/messaging": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.3.9.tgz", + "integrity": "sha512-0AXbN3tBSsjeM3kLVFlr+95QSwdjbx9ksTtYI0W1L6MoSt06s6u1hkA75/VrZ708Me3eDclMVvPz9jkjNZUiFg==", + "requires": { + "@firebase/messaging-types": "0.2.3", + "@firebase/util": "0.2.5", + "tslib": "1.9.0" + } + }, + "@firebase/messaging-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.2.3.tgz", + "integrity": "sha512-avwCgZzcx2uxIW/wT3p3G/EyHftIrvMyiTS7AA7dxDlzfx+8dpAeTsb1+jsHJT4F6foSh5HG17Nw8sDzYuxH1Q==" + }, + "@firebase/polyfill": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.4.tgz", + "integrity": "sha512-XvHewHdBdR6frMJszgM1dKo9giH1BoliX2iMssot9W89yItxhbjjwzuv7NY49uT/TKg9dYZV+mwQiwC7YNF76w==", + "requires": { + "core-js": "2.5.5", + "promise-polyfill": "7.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=" + } + } + }, + "@firebase/storage": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.2.6.tgz", + "integrity": "sha512-kiQdn14l20+CxBSuc2fxaRU54XOtRHGM7hizp2RQ68gdUIEE/EQiixET0oY9LCmT3ucnIrGL7ABSD9sVhOWLsA==", + "requires": { + "@firebase/storage-types": "0.2.3", + "tslib": "1.9.0" + } + }, + "@firebase/storage-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.2.3.tgz", + "integrity": "sha512-RaZeam2LgsB7xwAtOQr4G0Geoyf7D5TnLF3a12By6Rh0Z9PqBSlWn0SVYGW3SkmxIdqvWZMZvCyamUlqQvQzWw==" + }, + "@firebase/util": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.2.5.tgz", + "integrity": "sha512-469I6TJyPaApPpKja9D3MiAq8uU7USMWhSowV6G5aJJ7vxENz3+lS2Eaj5PuxCAJPqvEvrXZy1xevwcb+z9Vsg==", + "requires": { + "tslib": "1.9.0" + } + }, + "@firebase/webchannel-wrapper": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.11.tgz", + "integrity": "sha512-WyMXDxk/WZ+f2lOCeEvDWUce2f5Kk2sNfvArK8f+PlUnzFdy/MBzLXrmbMgyZXP7GP4ooUxYV8Sdmoh1hGk1Uw==" + }, + + "@pusher/chatkit-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pusher/chatkit-client/-/chatkit-client-1.3.0.tgz", + "integrity": "sha512-TGfi1GTD0JotRLnISx/Vrn6XbUsbmLRhGEaZM2UvmURV2oGGKoIm/JoYQw/cN6YOFrB2ASZPbm0m4RgT8ogfqg==", + "requires": { + "@pusher/platform": "^0.16.1", + "ramda": "^0.25.0" + } + }, + "@pusher/platform": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@pusher/platform/-/platform-0.16.1.tgz", + "integrity": "sha512-3GCY4oT5TUM83Cm6REz5ILpm9ZaQ8rg/kbYxf27VK3ErJGGZ4FhQKfaPkQRQZ1/+qImiMwWoDDD8GoqYpGT+vQ==" + }, "@react-navigation/core": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.0.2.tgz", @@ -1344,6 +1505,11 @@ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -1385,6 +1551,15 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", + "requires": { + "colour": "~0.7.1", + "optjs": "~3.2.2" + } + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -2233,6 +2408,51 @@ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, "bplist-creator": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", @@ -2328,6 +2548,14 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "bytebuffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", + "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", + "requires": { + "long": "~3" + } + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -2544,6 +2772,11 @@ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, + "colour": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", + "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" + }, "combined-stream": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", @@ -2657,6 +2890,16 @@ } } }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "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==" + }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -2670,6 +2913,11 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2936,6 +3184,11 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dom-storage": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", + "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" + }, "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", @@ -3343,6 +3596,10 @@ "lodash": "^4.17.4", "react-native-vector-icons": "6.0.0" } + }, + "react-native-maps": { + "version": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2", + "from": "github:expo/react-native-maps#v0.22.1-exp.0" } } }, @@ -3683,6 +3940,87 @@ "expo-core": "~2.0.0" } }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "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=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -3748,6 +4086,14 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "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=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, "fb-watchman": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", @@ -3903,6 +4249,21 @@ "locate-path": "^2.0.0" } }, + "firebase": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-5.8.0.tgz", + "integrity": "sha512-rO9NauWhzmbB0EFh2wOcQ23kfPOPq3VnQnZr2zQTFvLZieLXUkyrj0wydxWCxmR2isZfF5+43nVD6/snMAbFdA==", + "requires": { + "@firebase/app": "0.3.7", + "@firebase/auth": "0.9.1", + "@firebase/database": "0.3.10", + "@firebase/firestore": "1.0.0", + "@firebase/functions": "0.3.5", + "@firebase/messaging": "0.3.9", + "@firebase/polyfill": "0.3.4", + "@firebase/storage": "0.2.6" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3933,6 +4294,11 @@ "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=" + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -4100,7 +4466,552 @@ "iconv-lite": { "version": "0.4.24", "bundled": true, - "optional": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.4", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.3", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.2.0", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": 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 + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": 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.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.6.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": 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, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", + "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", + "requires": { + "ansi": "^0.3.0", + "has-unicode": "^2.0.0", + "lodash.pad": "^4.1.0", + "lodash.padend": "^4.1.0", + "lodash.padstart": "^4.1.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "globals": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", + "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "grpc": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.17.0.tgz", + "integrity": "sha512-5zb5ilwHlsiWfE2Abq/IN5SkHQ2zi4QF/u9Gewcw5DO3y+hGTtzZUiMK52MX3YZHAIRjqxDcO3fx0jLhPjT8Zw==", + "requires": { + "lodash.camelcase": "^4.3.0", + "lodash.clone": "^4.5.0", + "nan": "^2.0.0", + "node-pre-gyp": "^0.12.0", + "protobufjs": "^5.0.3" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": 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.3", + "bundled": 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 + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -4108,7 +5019,6 @@ "ignore-walk": { "version": "3.0.1", "bundled": true, - "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -4116,7 +5026,6 @@ "inflight": { "version": "1.0.6", "bundled": true, - "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4128,8 +5037,7 @@ }, "ini": { "version": "1.3.5", - "bundled": true, - "optional": true + "bundled": true }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -4140,8 +5048,7 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, - "optional": true + "bundled": true }, "minimatch": { "version": "3.0.4", @@ -4151,7 +5058,7 @@ } }, "minimist": { - "version": "0.0.8", + "version": "1.2.0", "bundled": true }, "minipass": { @@ -4165,7 +5072,6 @@ "minizlib": { "version": "1.2.1", "bundled": true, - "optional": true, "requires": { "minipass": "^2.2.1" } @@ -4175,17 +5081,21 @@ "bundled": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } } }, "ms": { "version": "2.0.0", - "bundled": true, - "optional": true + "bundled": true }, "needle": { "version": "2.2.4", "bundled": true, - "optional": true, "requires": { "debug": "^2.1.2", "iconv-lite": "^0.4.4", @@ -4193,9 +5103,8 @@ } }, "node-pre-gyp": { - "version": "0.10.3", + "version": "0.12.0", "bundled": true, - "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -4212,7 +5121,6 @@ "nopt": { "version": "4.0.1", "bundled": true, - "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -4220,13 +5128,11 @@ }, "npm-bundled": { "version": "1.0.5", - "bundled": true, - "optional": true + "bundled": true }, "npm-packlist": { - "version": "1.2.0", + "version": "1.1.12", "bundled": true, - "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -4235,7 +5141,6 @@ "npmlog": { "version": "4.1.2", "bundled": true, - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -4249,8 +5154,7 @@ }, "object-assign": { "version": "4.1.1", - "bundled": true, - "optional": true + "bundled": true }, "once": { "version": "1.4.0", @@ -4261,18 +5165,15 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "osenv": { "version": "0.1.5", "bundled": true, - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -4280,36 +5181,25 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, - "optional": true + "bundled": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, - "optional": true + "bundled": true }, "rc": { "version": "1.2.8", "bundled": true, - "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } } }, "readable-stream": { "version": "2.3.6", "bundled": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4321,11 +5211,10 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.6.2", "bundled": true, - "optional": true, "requires": { - "glob": "^7.1.3" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -4334,28 +5223,23 @@ }, "safer-buffer": { "version": "2.1.2", - "bundled": true, - "optional": true + "bundled": true }, "sax": { "version": "1.2.4", - "bundled": true, - "optional": true + "bundled": true }, "semver": { "version": "5.6.0", - "bundled": true, - "optional": true + "bundled": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, - "optional": true + "bundled": true }, "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true + "version": "3.0.1", + "bundled": true }, "string-width": { "version": "1.0.2", @@ -4369,7 +5253,6 @@ "string_decoder": { "version": "1.1.1", "bundled": true, - "optional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -4383,13 +5266,11 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, - "optional": true + "bundled": true }, "tar": { "version": "4.4.8", "bundled": true, - "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", @@ -4402,13 +5283,11 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, - "optional": true + "bundled": true }, "wide-align": { "version": "1.1.3", "bundled": true, - "optional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -4423,102 +5302,6 @@ } } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", - "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", - "requires": { - "ansi": "^0.3.0", - "has-unicode": "^2.0.0", - "lodash.pad": "^4.1.0", - "lodash.padend": "^4.1.0", - "lodash.padstart": "^4.1.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "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" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "requires": { - "is-glob": "^2.0.0" - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "globals": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz", - "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==" - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, "gud": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", @@ -4731,6 +5514,11 @@ } } }, + "http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==" + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -4852,6 +5640,11 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -6067,6 +6860,16 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" + }, "lodash.filter": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", @@ -6123,6 +6926,11 @@ "resolved": "https://registry.npmjs.org/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz", "integrity": "sha1-s5n1q6j/YqdG9peb8gshT5ZNvvg=" }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -6205,6 +7013,11 @@ "buffer-alloc": "^1.1.0" } }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", @@ -6218,6 +7031,11 @@ "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, "merge-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", @@ -6226,6 +7044,11 @@ "readable-stream": "^2.0.1" } }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, "metro": { "version": "0.45.6", "resolved": "https://registry.npmjs.org/metro/-/metro-0.45.6.tgz", @@ -6713,8 +7536,7 @@ "nan": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", - "optional": true + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" }, "nanomatch": { "version": "1.2.13", @@ -7048,6 +7870,11 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, + "optjs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", + "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -7336,6 +8163,11 @@ "asap": "~2.0.3" } }, + "promise-polyfill": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.2.tgz", + "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==" + }, "prompts": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz", @@ -7355,6 +8187,63 @@ "object-assign": "^4.1.1" } }, + "protobufjs": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz", + "integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==", + "requires": { + "ascli": "~1", + "bytebuffer": "~5", + "glob": "^7.0.5", + "yargs": "^3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + } + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -7385,6 +8274,11 @@ "strict-uri-encode": "^2.0.0" } }, + "ramda": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", + "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -7412,6 +8306,27 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "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==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, "react": { "version": "16.5.0", "resolved": "https://registry.npmjs.org/react/-/react-16.5.0.tgz", @@ -7666,8 +8581,9 @@ } }, "react-native-maps": { - "version": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2", - "from": "github:expo/react-native-maps#v0.22.1-exp.0" + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-0.23.0.tgz", + "integrity": "sha512-qxOIQGsDtQXQlSJdXMW1wg8pvLaVYdbiIolB7tZTTgTGgIA/hDxXwZbQZ08c4KDD6/VTk8krfd1APaHkqvh6og==" }, "react-native-nav": { "version": "2.0.2", @@ -9438,6 +10354,11 @@ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -9462,6 +10383,15 @@ "prelude-ls": "~1.1.2" } }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -9730,6 +10660,20 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -9774,6 +10718,11 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -9865,6 +10814,11 @@ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", diff --git a/package.json b/package.json index 51ce737..a3d5186 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,17 @@ "dependencies": { "@expo/samples": "2.1.1", "@expo/vector-icons": "^9.0.0", + "@pusher/chatkit-client": "^1.3.0", "expo": "^32.0.0", + "firebase": "^5.8.0", + "express": "^4.16.4", "link": "^0.1.5", "react": "16.5.0", "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz", "react-native-camera": "^1.9.0", "react-native-camera-roll-picker": "^1.2.3", "react-native-gifted-chat": "^0.6.0", + "react-native-maps": "^0.23.0", "react-native-nav": "^2.0.2", "react-navigation": "^3.0.9", "react-redux": "^6.0.0", @@ -29,5 +33,19 @@ "babel-preset-expo": "^5.0.0", "jest-expo": "^32.0.0" }, - "private": true + "private": true, + "name": "englishaide", + "version": "1.0.0", + "repository": { + "type": "git", + "url": "git+https://github.com/marcoaustria/EnglishAide.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/marcoaustria/EnglishAide/issues" + }, + "homepage": "https://github.com/marcoaustria/EnglishAide#readme", + "description": "" } diff --git a/screens/.DS_Store b/screens/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/screens/.DS_Store differ diff --git a/screens/ChooseTutor.js b/screens/ChooseTutor.js new file mode 100644 index 0000000..49306d7 --- /dev/null +++ b/screens/ChooseTutor.js @@ -0,0 +1,92 @@ +import React from 'react'; +import { + Image, + Platform, + ScrollView, + StyleSheet, + Text, + TouchableOpacity, + View, + Button, +} from 'react-native'; +import { WebBrowser } from 'expo'; +import { MonoText } from '../components/StyledText'; +import { getReminderAsync } from 'expo/build/Calendar'; +import Profiles from './Profiles' + +export default class ChooseTutor extends React.Component { + + constructor (props){ + super(props) + // e.preventDefault() + this.state={ + isMentor:props.isMentor, + user:null + + } + this.state.user = this.state.isMentor ? "Mentor" : "Student"; + this.state.userSearch = this.state.isMentor ? "Student" : "Mentor"; + } + + render(){ + var count = 0; + goBack = (e)=>{ + e.preventDefault(); + this.props.goBack(); + } + return( + + + + EnglishAide + + {this.state.user} + Please choose from the list + + + + + + + + + + + + + + + ) + } + + + +} + +const styles = StyleSheet.create({ + container:{ + // padding:20, + height:'100%', + alignItems:'center', + marginTop:'10%', + }, + homeContainer:{ + paddingTop:20 + }, + homeText:{ + textAlign:'center', + fontSize:20 + }, + + contentContainer: { + paddingTop: 30, + }, + display:{ + width:'90%', + margin:0 + } + + + + +}) \ No newline at end of file diff --git a/screens/HomeScreen.js b/screens/HomeScreen.js index 0d3548e..a8decfa 100644 --- a/screens/HomeScreen.js +++ b/screens/HomeScreen.js @@ -1,4 +1,7 @@ -import React from 'react'; +import React, { Component } from 'react'; +import { ExpoLinksView } from '@expo/samples'; + + import { Image, Platform, @@ -7,182 +10,229 @@ import { Text, TouchableOpacity, View, + AppRegistry } from 'react-native'; import { WebBrowser } from 'expo'; - import { MonoText } from '../components/StyledText'; +import { getReminderAsync } from 'expo/build/Calendar'; +import Profiles from './Profiles' + export default class HomeScreen extends React.Component { static navigationOptions = { - header: null, + title: 'EnglishAide', }; render() { + var count = 0; return ( - - - - - - - - {this._maybeRenderDevelopmentModeWarning()} - - Get started by opening - - - screens/HomeScreen.js - - - - Change this text and your app will automatically reload. - - - - - - Help, it didn’t automatically reload! - - - - - - This is a tab bar. You can edit it in: - - - navigation/MainTabNavigator.js - - + + + + - ); - } - _maybeRenderDevelopmentModeWarning() { - if (__DEV__) { - const learnMoreButton = ( - - Learn more - - ); - - return ( - - Development mode is enabled, your app will be slower but you can use useful development - tools. {learnMoreButton} - - ); - } else { - return ( - - You are not in development mode, your app will run at full speed. - - ); - } - } + + + {/* Go ahead and delete ExpoLinksView and replace it with your + * content, we just wanted to provide you with some helpful links */} + + + Topic of the Day + + What is your favorite movie and why? + + + Teacher Suggestions + + Miss Frizzle says: {"\n"}{"\n"}"Susie can focus on her listening this week, maybe send her some voice notes and have her try to write them down!" + - _handleLearnMorePress = () => { - WebBrowser.openBrowserAsync('https://docs.expo.io/versions/latest/guides/development-mode'); - }; - _handleHelpPress = () => { - WebBrowser.openBrowserAsync( - 'https://docs.expo.io/versions/latest/guides/up-and-running.html#can-t-see-your-changes' + ); - }; + } } const styles = StyleSheet.create({ + + // imageStyle: { + // width: '150%', + // height: '50%', + // resizeMode: 'center' + + // }, + + + topicText:{ + textAlign: 'left', + fontSize: 40, + paddingTop:20, + marginTop: -20, + paddingLeft: 30, + fontWeight: 'bold', + color: '#0076be' + } +, + topicBody:{ + textAlign: 'left', + paddingTop:10, + paddingLeft: 30, + fontSize: 20 + } +, + container: { flex: 1, - backgroundColor: '#fff', - }, - developmentModeText: { - marginBottom: 20, - color: 'rgba(0,0,0,0.4)', - fontSize: 14, - lineHeight: 19, - textAlign: 'center', - }, - contentContainer: { - paddingTop: 30, - }, - welcomeContainer: { - alignItems: 'center', - marginTop: 10, - marginBottom: 20, - }, - welcomeImage: { - width: 100, - height: 80, - resizeMode: 'contain', - marginTop: 3, - marginLeft: -10, - }, - getStartedContainer: { - alignItems: 'center', - marginHorizontal: 50, - }, - homeScreenFilename: { - marginVertical: 7, - }, - codeHighlightText: { - color: 'rgba(96,100,109, 0.8)', - }, - codeHighlightContainer: { - backgroundColor: 'rgba(0,0,0,0.05)', - borderRadius: 3, - paddingHorizontal: 4, - }, - getStartedText: { - fontSize: 17, - color: 'rgba(96,100,109, 1)', - lineHeight: 24, - textAlign: 'center', - }, - tabBarInfoContainer: { - position: 'absolute', - bottom: 0, - left: 0, - right: 0, - ...Platform.select({ - ios: { - shadowColor: 'black', - shadowOffset: { height: -3 }, - shadowOpacity: 0.1, - shadowRadius: 3, - }, - android: { - elevation: 20, - }, - }), - alignItems: 'center', - backgroundColor: '#fbfbfb', - paddingVertical: 20, - }, - tabBarInfoText: { - fontSize: 17, - color: 'rgba(96,100,109, 1)', - textAlign: 'center', - }, - navigationFilename: { - marginTop: 5, - }, - helpContainer: { - marginTop: 15, - alignItems: 'center', + paddingTop: 15, + backgroundColor: '#ddf7ff' }, - helpLink: { - paddingVertical: 15, - }, - helpLinkText: { - fontSize: 14, - color: '#2e78b7', + + + teacherText: { + textAlign: 'left', + fontSize: 40, + paddingTop:30, + paddingLeft: 30, + fontWeight: 'bold', + color: '#48bf91' }, + + teacherBody: { + textAlign: 'left', + paddingTop: 10, + fontSize: 20, + paddingLeft: 30, + paddingRight: 30 + } + + + + }); + + +// const styles = StyleSheet.create({ + +// homeContainer:{ +// paddingTop: Platform.OS === 'ios' +// ? 43 : 20 + + +// }, +// homeText:{ +// textAlign:'center', +// fontSize:20, +// fontWeight: 'bold', +// fontFamily: 'Times New Roman' + +// }, + +// contentContainer: { +// marginTop: Platform.OS === 'ios' +// ? -20 : 0, + +// paddingTop: 30, +// }, + + + + + + + + + + + + + + + + // container: { + // flex: 1, + // backgroundColor: '#fff', + // }, + // developmentModeText: { + // marginBottom: 20, + // color: 'rgba(0,0,0,0.4)', + // fontSize: 14, + // lineHeight: 19, + // textAlign: 'center', + // }, + + // welcomeContainer: { + // alignItems: 'center', + // marginTop: 10, + // marginBottom: 20, + // }, + + // getStartedContainer: { + // alignItems: 'center', + // marginHorizontal: 50, + // }, + // homeScreenFilename: { + // marginVertical: 7, + // }, + // codeHighlightText: { + // color: 'rgba(96,100,109, 0.8)', + // }, + // codeHighlightContainer: { + // backgroundColor: 'rgba(0,0,0,0.05)', + // borderRadius: 3, + // paddingHorizontal: 4, + // }, + // getStartedText: { + // fontSize: 17, + // color: 'rgba(96,100,109, 1)', + // lineHeight: 24, + // textAlign: 'center', + // }, + // tabBarInfoContainer: { + // position: 'absolute', + // bottom: 0, + // left: 0, + // right: 0, + // ...Platform.select({ + // ios: { + // shadowColor: 'black', + // shadowOffset: { height: -3 }, + // shadowOpacity: 0.1, + // shadowRadius: 3, + // }, + // android: { + // elevation: 20, + // }, + // }), + // alignItems: 'center', + // backgroundColor: '#fbfbfb', + // paddingVertical: 20, + // }, + // tabBarInfoText: { + // fontSize: 17, + // color: 'rgba(96,100,109, 1)', + // textAlign: 'center', + // }, + // navigationFilename: { + // marginTop: 5, + // }, + // helpContainer: { + // marginTop: 15, + // alignItems: 'center', + // }, + // helpLink: { + // paddingVertical: 15, + // }, + // helpLinkText: { + // fontSize: 14, + // color: '#2e78b7', + // }, + + // contentContainer: { + // paddingTop: 30, + // }, + +// }); diff --git a/screens/LinksScreen.js b/screens/LinksScreen.js index 7bb4a62..fafdac5 100644 --- a/screens/LinksScreen.js +++ b/screens/LinksScreen.js @@ -1,27 +1,293 @@ +// import React from "react"; +// import { StyleSheet, Text, View } from "react-native"; +// import { GiftedChat } from "react-native-gifted-chat"; +// export default class App extends React.Component { +// state = { +// messages: [ +// { +// _id: 1, +// text: "heyo team puddin", +// createdAt: new Date() +// } +// ] +// }; +// render() { +// return ( +// +// +// +// ); +// } +// } +// const styles = StyleSheet.create({ +// container: { +// flex: 1 +// } +// }); + + import React from 'react'; -import { ScrollView, StyleSheet } from 'react-native'; -import { ExpoLinksView } from '@expo/samples'; +import { + Platform, + StyleSheet, + Text, + View, +} from 'react-native'; + +import {GiftedChat, Actions, Bubble, SystemMessage} from 'react-native-gifted-chat'; +import CustomActions from '../CustomActions'; +import CustomView from '../CustomView'; +var counter = 0; export default class LinksScreen extends React.Component { + static navigationOptions = { - title: 'Links', + title: 'EnglishAide', }; + + constructor(props) { + super(props); + this.state = { + messages: [], + loadEarlier: true, + typingText: null, + isLoadingEarlier: false, + }; + + this._isMounted = false; + this.onSend = this.onSend.bind(this); + this.onReceive = this.onReceive.bind(this); + this.renderCustomActions = this.renderCustomActions.bind(this); + this.renderBubble = this.renderBubble.bind(this); + this.renderSystemMessage = this.renderSystemMessage.bind(this); + this.renderFooter = this.renderFooter.bind(this); + this.onLoadEarlier = this.onLoadEarlier.bind(this); + + this._isAlright = null; + } + + componentWillMount() { + this._isMounted = true; + this.setState(() => { + return { + messages: require('../data/messages.js'), + }; + }); + } + + componentWillUnmount() { + this._isMounted = false; + } + + onLoadEarlier() { + this.setState((previousState) => { + return { + isLoadingEarlier: true, + }; + }); + + setTimeout(() => { + if (this._isMounted === true) { + this.setState((previousState) => { + return { + messages: GiftedChat.prepend(previousState.messages, require('../data/old_messages.js')), + loadEarlier: false, + isLoadingEarlier: false, + }; + }); + } + }, 1000); // simulating network + } + + onSend(messages = []) { + this.setState((previousState) => { + return { + messages: GiftedChat.append(previousState.messages, messages), + }; + }); + + // for demo purpose + this.answerDemo(messages); + } + + answerDemo(messages) { + if (messages.length > 0) { + if ((messages[0].image || messages[0].location) || !this._isAlright) { + this.setState((previousState) => { + return { + typingText: 'Tutor is typing...' + }; + }); + } + } + + setTimeout(() => { + if (this._isMounted === true) { + if (messages.length > 0) { + if (counter == 0) { + this.onReceive('¿Hola, como estás?'); + counter++; + } + else if(counter ==1){ + this.onReceive('Okay send me your homework!') + counter++; + } + else if (messages[0].image) { + this.onReceive('Okay! I will take a look at it!'); + counter++; + } + else { + if (!this._isAlright) { + this.onReceive('Do you need help'); + this._isAlright = true; + } + } + } + } + + this.setState((previousState) => { + return { + typingText: null, + }; + }); + }, 1000); + } + + onReceive(text) { + this.setState((previousState) => { + return { + messages: GiftedChat.append(previousState.messages, { + _id: Math.round(Math.random() * 1000000), + text: text, + createdAt: new Date(), + user: { + _id: 2, + name: 'React Native', + // avatar: 'https://facebook.github.io/react/img/logo_og.png', + }, + }), + }; + }); + } + + renderCustomActions(props) { + if (Platform.OS === 'ios') { + return ( + + ); + } + const options = { + 'Action 1': (props) => { + alert('option 1'); + }, + 'Action 2': (props) => { + alert('option 2'); + }, + 'Cancel': () => {}, + }; + return ( + + ); + } + + //other person messages + renderBubble(props) { + return ( + + ); + } + + renderSystemMessage(props) { + return ( + + ); + } + + renderCustomView(props) { + return ( + + ); + } + + renderFooter(props) { + if (this.state.typingText) { + return ( + + + {this.state.typingText} + + + ); + } + return null; + } render() { return ( - - {/* Go ahead and delete ExpoLinksView and replace it with your - * content, we just wanted to provide you with some helpful links */} - - + // + // {/* Go ahead and delete ExpoLinksView and replace it with your + // * content, we just wanted to provide you with some helpful links */} + // + + ); } } + const styles = StyleSheet.create({ + footerContainer: { + marginTop: 5, + marginLeft: 10, + marginRight: 10, + marginBottom: 10, + }, + footerText: { + fontSize: 14, + color: '#aaa', + }, container: { flex: 1, paddingTop: 15, - backgroundColor: '#fff', + backgroundColor: '#ddf7ff', }, }); + diff --git a/screens/Login.js b/screens/Login.js new file mode 100644 index 0000000..2fa81b5 --- /dev/null +++ b/screens/Login.js @@ -0,0 +1,64 @@ +import React from 'react'; +import { + Image, + Platform, + ScrollView, + StyleSheet, + Text, + Button, + View, +} from 'react-native'; +import { WebBrowser } from 'expo'; +import { MonoText } from '../components/StyledText'; +import { getReminderAsync } from 'expo/build/Calendar'; +import ChooseTutor from './ChooseTutor'; +import { State } from 'react-native-gesture-handler'; +import App from '../App'; +export default class Login extends React.Component { + + render(){ + isMentor = (e) => { + e.preventDefault(); + this.props.hasChosenChange(true); + } + isStudent = (e) => { + e.preventDefault(); + this.props.hasChosenChange(false); + } + return( + + Login + Are you a mentor or a student? + + + + + + + + ) + } + + +} + + +const styles = StyleSheet.create({ + container:{ + padding:20, + alignItems:'center', + marginTop:'40%' + }, + loginText:{ + fontSize:70, + textAlign: 'center' + }, + buttonContainer:{ + width:100, + marginTop:'10%', + // paddingTop:'10%' + + } + + +}) \ No newline at end of file diff --git a/screens/Profiles.js b/screens/Profiles.js new file mode 100644 index 0000000..e3cf99a --- /dev/null +++ b/screens/Profiles.js @@ -0,0 +1,64 @@ +import React, {Component} from 'react' +import { + Text, + Image, + View, + StyleSheet + +} from 'react-native' +var count =0; + +class Profiles extends Component{ + + constructor(props){ + super(props) + this.state={ + count:props.count, + userSearch:props.userSearch + } + console.log(this.state.userSearch) + // this.test = this.test.bind(this) + } + render(){ + test = () => { + console.log("test") + } + + return( + + + {this.state.userSearch} {this.state.count} + + ) + } + +} + + +const styles = StyleSheet.create({ + + profileContainer:{ + padding:10, + flexDirection:'row', + borderWidth:1 + }, + profiles:{ + borderStyle: 'solid', + borderColor: '#ffb900', + color:'#ffb900', + fontSize:26 + }, + profileIcon: { + width: 60, + height: 60, + resizeMode: 'contain', + }, + }) +export default Profiles \ No newline at end of file diff --git a/screens/SettingsScreen.js b/screens/SettingsScreen.js index 6957dcb..e575a85 100644 --- a/screens/SettingsScreen.js +++ b/screens/SettingsScreen.js @@ -1,14 +1,26 @@ import React from 'react'; -import { ExpoConfigView } from '@expo/samples'; +import { ScrollView, StyleSheet } from 'react-native'; +import { ExpoLinksView } from '@expo/samples'; export default class SettingsScreen extends React.Component { static navigationOptions = { - title: 'app.json', + title: 'EnglishAide', }; render() { - /* Go ahead and delete ExpoConfigView and replace it with your - * content, we just wanted to give you a quick view of your config */ - return ; + return ( + + {/* Go ahead and delete ExpoLinksView and replace it with your + * content, we just wanted to provide you with some helpful links */} + + ); } } + +const styles = StyleSheet.create({ + container: { + flex: 1, + paddingTop: 15, + backgroundColor: '#ddf7ff', + }, +}); diff --git a/server.js b/server.js index 971a2ac..1f1da5b 100644 --- a/server.js +++ b/server.js @@ -1,3 +1,4 @@ +console.log('hoyo'); var express = require('express'); var http = require('http') var socketio = require('socket.io'); @@ -10,6 +11,7 @@ var server = http.Server(app); var websocket = socketio(server); server.listen(3000, () => console.log('listening on *:3000')); + // Mapping objects to easily map sockets and users. var clients = {}; var users = {};