diff --git a/.gitignore b/.gitignore index 198e457..5740501 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,16 @@ node_modules/**/* .expo/* -.idea npm-debug.* *.jks +*.p8 *.p12 *.key *.mobileprovision -env.js \ No newline at end of file +*.orig.* +web-build/ +web-report/ +env.* +app.json + +# macOS +.DS_Store diff --git a/App.js b/App.js deleted file mode 100644 index 3fc2592..0000000 --- a/App.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from "react"; -import { StyleSheet, View } from "react-native"; - -import Entrance from "./pages/Entrance"; -import Main from "./pages/Main"; -import Auth from "./utils/auth/auth"; -import getSettings from "./config/get-settings"; - -const { - auth0: { passwordlessClient } -} = getSettings(); - -const initialState = { name: null, primaryUserId: null, passwordless: null }; - -export default class App extends React.Component { - state = { - name: null - }; - - logout = async () => { - await Auth.logout(); - this.setState(initialState); - }; - - loginPasswordless = async () => { - const response = await Auth.login(passwordlessClient); - console.log(response, "passwordless result***"); - this.setState({ - name: response.name, - primaryUserId: response.primaryUserId, - passwordless: response, - }); - }; - - render() { - const { primaryUserId, name, passwordless } = this.state; - let render = () => ({}); - if (!primaryUserId) { - render = () => ( - - ); - } else { - render = () =>
; - } - - return {render()}; - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: "#fff", - alignItems: "center", - justifyContent: "center" - }, - title: { - fontSize: 20, - textAlign: "center", - marginTop: 40 - } -}); diff --git a/Components/Background.tsx b/Components/Background.tsx new file mode 100644 index 0000000..e60eb5c --- /dev/null +++ b/Components/Background.tsx @@ -0,0 +1,41 @@ +import React from "react"; +import { StyleSheet, View } from "react-native"; +import { Video } from "expo-av"; + +export default function Background(props) { + let source = require("../assets/back-blur-3.mp4"); + return ( + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + // marginTop: 50, + backgroundColor: "transparent" + // alignItems: "stretch", + // justifyContent: "space-between" + }, + baseText: {}, + backgroundVideo: { + position: "absolute", + top: 0, + left: 0, + bottom: 0, + right: 0, + backgroundColor: "transparent" + } +}); diff --git a/Components/CustomMap.tsx b/Components/CustomMap.tsx new file mode 100644 index 0000000..fd6e82f --- /dev/null +++ b/Components/CustomMap.tsx @@ -0,0 +1,40 @@ +import React from "react"; +import { StyleSheet, Dimensions, Image } from "react-native"; +import MapView, { Marker, PROVIDER_GOOGLE } from "react-native-maps"; + +const BlueFlagImg = require("../assets/navPage/flag-pink.png"); +const { width, height } = Dimensions.get("window"); +const ASPECT_RATIO = width / height; + +const region = { + latitude: 31.99246, + longitude: 34.76881, + latitudeDelta: 0.01, + longitudeDelta: 0.01 * ASPECT_RATIO +}; + +function CustomMap() { + return ( + + + + + + ); +} + +export default CustomMap; diff --git a/Components/KBText.tsx b/Components/KBText.tsx new file mode 100644 index 0000000..f303c58 --- /dev/null +++ b/Components/KBText.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import { Text, StyleSheet } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; + +const KBText = props => ( + + {props.children} + +); + +const styles = StyleSheet.create({ + baseText: { + fontFamily: "heb-open-sans-regular", + fontSize: RFPercentage(2.7), + textAlign: "center" + } +}); + +export default KBText; diff --git a/Components/KBTitle.tsx b/Components/KBTitle.tsx new file mode 100644 index 0000000..e130930 --- /dev/null +++ b/Components/KBTitle.tsx @@ -0,0 +1,20 @@ +import React from "react"; +import { StyleSheet } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; +import KBText from "./KBText"; + +const KBTitle = props => ( + + {props.children} + +); + +const styles = StyleSheet.create({ + baseTitle: { + fontFamily: "heb-open-sans-bold", + fontSize: RFPercentage(3), + textAlign: "center" + } +}); + +export default KBTitle; diff --git a/Components/LoadAssets.tsx b/Components/LoadAssets.tsx new file mode 100644 index 0000000..a287772 --- /dev/null +++ b/Components/LoadAssets.tsx @@ -0,0 +1,79 @@ +import React, { useEffect, useState } from "react"; +import { Image } from "react-native"; +import { AppLoading } from "expo"; +import { Asset } from "expo-asset"; +import * as Font from "expo-font"; +import { FontAwesome, Ionicons } from "@expo/vector-icons"; + +function cacheAssetsAsync({ images = [], fonts = [] }) { + return Promise.all([...cacheImages(images), ...cacheFonts(fonts)]); +} + +function cacheImages(images) { + return images.map(image => { + if (typeof image === "string") { + return Image.prefetch(image); + } else { + return Asset.fromModule(image).downloadAsync(); + } + }); +} + +function cacheFonts(fonts) { + return fonts.map(font => Font.loadAsync(font)); +} + +function LoadAssets(props) { + const [isReady, setReady] = useState(false); + + useEffect(() => { + async function _cache() { + try { + await cacheAssetsAsync({ + images: [ + require("../assets/images/logo-large.png"), + require("../assets/images/user.png"), + require("../assets/back-blur-3.mp4"), + require("../assets/kb-icon.png"), + require("../assets/hamburger.png"), + require("../assets/navPage/flag-blue.png"), + require("../assets/navPage/flag-pink.png"), + require("../assets/navPage/waze.png"), + ], + fonts: [ + FontAwesome.font, + Ionicons.font, + { + "open-sans-bold": require("../assets/Fonts/OpenSans/English/OpenSans-Bold.ttf"), + "open-sans-regular": require("../assets/Fonts/OpenSans/English/OpenSans-Regular.ttf"), + "open-sans-light": require("../assets/Fonts/OpenSans/English/OpenSans-Light.ttf"), + + "heb-open-sans-bold": require("../assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Bold.ttf"), + "heb-open-sans-regular": require("../assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Regular.ttf"), + "heb-open-sans-light": require("../assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Light.ttf"), + + "heb-condense-open-sans-bold": require("../assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Bold.ttf"), + "heb-condense-open-sans-regular": require("../assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Regular.ttf"), + "heb-condense-open-sans-light": require("../assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Light.ttf"), + } + ] + }); + } catch (e) { + console.warn( + "There was an error caching assets (see: main.js), perhaps due to a " + + "network timeout, so we skipped caching. Reload the app to try again." + ); + console.log(e.message); + } finally { + setReady(true); + } + } + + _cache() + return () => {}; + }, []); + + return isReady ? props.children : ; +} + +export default LoadAssets; diff --git a/Components/Logo.tsx b/Components/Logo.tsx new file mode 100644 index 0000000..7d8beb1 --- /dev/null +++ b/Components/Logo.tsx @@ -0,0 +1,24 @@ +import { Image, StyleSheet, TouchableOpacity, Dimensions } from "react-native"; +import React from "react"; + +const Logo = props => ( + + + +); + +const deviceWidth = Dimensions.get("window").width; + +const styles = StyleSheet.create({ + logo: { + height: undefined, + width: deviceWidth / 2.8, + aspectRatio: 1, + } +}); + +export default Logo; diff --git a/Components/Logout.tsx b/Components/Logout.tsx new file mode 100644 index 0000000..82a553d --- /dev/null +++ b/Components/Logout.tsx @@ -0,0 +1,14 @@ +import React, { useEffect } from "react"; + +import { useStateValue } from "../Utils/State"; + +function Logout() { + const [state, dispatch] = useStateValue(); + console.log("*** state", state); + console.log("*** dispatch", dispatch); + + useEffect(() => { + }, []); + return null; +} +export default Logout; diff --git a/components/MaterialButtonDark.js b/Components/MaterialButtonDark.tsx similarity index 54% rename from components/MaterialButtonDark.js rename to Components/MaterialButtonDark.tsx index c8f5b69..917971b 100644 --- a/components/MaterialButtonDark.js +++ b/Components/MaterialButtonDark.tsx @@ -1,17 +1,20 @@ -import React, { Component } from "react"; -import { StyleSheet, TouchableOpacity, Text } from "react-native"; +import React from "react"; +import { StyleSheet} from "react-native"; +import ButtonSpinner from 'react-native-button-spinner'; +import KBTitle from "./KBTitle"; function MaterialButtonDark(props) { return ( - - {props.text1 || "BUTTON"} - + + {props.text1} + ); } const styles = StyleSheet.create({ container: { backgroundColor: "#212121", + maxHeight: 100, flexDirection: "row", alignItems: "center", justifyContent: "center", @@ -19,18 +22,17 @@ const styles = StyleSheet.create({ paddingLeft: 16, elevation: 2, minWidth: 88, - borderRadius: 2, + borderRadius: 20, shadowOffset: { height: 1, width: 0 }, shadowColor: "#000", shadowOpacity: 0.35, - shadowRadius: 5 + shadowRadius: 50, }, caption: { color: "#fff", - fontSize: 30, } }); diff --git a/Components/Top10.tsx b/Components/Top10.tsx new file mode 100644 index 0000000..f6076d3 --- /dev/null +++ b/Components/Top10.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import KBTitle from "./KBTitle"; +import {translated} from "../Utils/Localization"; + +function Top10(props) { + return ( + + {translated("PersonalPage.Top10")} + + ) +} + +export default Top10; \ No newline at end of file diff --git a/Components/WazeLink.tsx b/Components/WazeLink.tsx new file mode 100644 index 0000000..8b50dab --- /dev/null +++ b/Components/WazeLink.tsx @@ -0,0 +1,59 @@ +import React from "react"; +import { + View, + StyleSheet, + TouchableOpacity, + Image +} from "react-native"; +import KBTitle from "./KBTitle"; +import { translated } from "../Utils/Localization"; +import { Linking } from "expo"; + +const region = { + latitude: 31.99246, + longitude: 34.76881 +}; + +function WazeLink(props) { + const onPress = () => + Linking.openURL( + "https://www.waze.com/ul?ll=31.99248040%2C34.76848100&navigate=yes" + ); + return ( + + {/**/} + + + + + {translated("NavPage.Nav")}{" "} + + + + ); +} + +export default WazeLink; diff --git a/Components/navigation/AppNavigationStack.tsx b/Components/navigation/AppNavigationStack.tsx new file mode 100644 index 0000000..bacc6e7 --- /dev/null +++ b/Components/navigation/AppNavigationStack.tsx @@ -0,0 +1,71 @@ +import React from "react"; +import { Dimensions } from "react-native"; +import { createStackNavigator } from "@react-navigation/stack"; + +import Entrance from "../../Pages/Entrance"; +import Logo from "../Logo"; +import ProfileButton from "./ProfileButton"; +import MainNavDrawer from "./MainNavDrawer"; +import DrawerIcon from "./DrawerIcon"; +import { useStateValue } from "../../Utils/State"; + +const Stack = createStackNavigator(); +const deviceHeight = Dimensions.get("window").height; + +function AppNavigationStack() { + const [{ drawerNav }] = useStateValue(); + + return ( + ( + drawerNav.navigate("Main")} + /> + ), + headerTitleAlign: "center", + headerStyle: { + height: deviceHeight / 7 + }, + headerTransparent: false, + headerLeft: props => ( + drawerNav.navigate("Personal")} + /> + ), + headerLeftContainerStyle: { + marginLeft: 20 + // marginTop: -20, + // justifyContent: 'center', + // alignSelf: 'center', + }, + headerRight: props => ( + drawerNav.toggleDrawer()} {...props} /> + ), + headerRightContainerStyle: { + marginRight: 10, + marginTop: -5 + } + }} + > + + {/**/} + + + ); +} + +export default AppNavigationStack; diff --git a/Components/navigation/CustomDrawerContent.tsx b/Components/navigation/CustomDrawerContent.tsx new file mode 100644 index 0000000..aad1815 --- /dev/null +++ b/Components/navigation/CustomDrawerContent.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { DrawerContentScrollView, DrawerItem } from "@react-navigation/drawer"; +import { translated } from "../../Utils/Localization"; + +function CustomDrawerContent(props) { + return ( + + {}} /> + + ); +} + + + +export default CustomDrawerContent; diff --git a/Components/navigation/DrawerIcon.tsx b/Components/navigation/DrawerIcon.tsx new file mode 100644 index 0000000..5072c86 --- /dev/null +++ b/Components/navigation/DrawerIcon.tsx @@ -0,0 +1,24 @@ +import { Image, StyleSheet, TouchableOpacity } from "react-native"; +import React from "react"; + +const DrawerIcon = props => ( + + + +); + +const styles = StyleSheet.create({ + logo: { + width: 35, + height: 35 + } +}); + +export default DrawerIcon; diff --git a/Components/navigation/MainNavDrawer.tsx b/Components/navigation/MainNavDrawer.tsx new file mode 100644 index 0000000..fee1a8a --- /dev/null +++ b/Components/navigation/MainNavDrawer.tsx @@ -0,0 +1,104 @@ +import React from "react"; +import { useWindowDimensions, Image } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; + +import { createDrawerNavigator } from "@react-navigation/drawer"; +import Personal from "../../Pages/Personal"; +import Index from "../../Pages/Main/"; +import { useStateValue } from "../../Utils/State"; +import { translated } from "../../Utils/Localization"; +import NavInstructions from "../../Pages/Company/NavigationInstructions"; +import Logout from "../Logout"; +import About from "../../Pages/Company/AboutCompany"; +import CompanyProtocol from "../../Pages/Company/CompanyProtocol"; +import Top10 from "../Top10"; +import Privacy from "../../Pages/Company/Privacy"; + +const MainDrawer = createDrawerNavigator(); + +function MainNavDrawer(props) { + const [{ user }] = useStateValue(); + + if (!user.meta) props.navigation.navigate('Enter') + + const dimensions = useWindowDimensions(); + return ( + } + drawerContentOptions={{ + style: { + marginTop: 0 // The content of the drawer is lower + }, + contentContainerStyle: { + alignItems: "center" + // layoutDirection: 'RTL', + // justifyContent: "center", + // alignSelf: "center" + }, + itemStyle: {}, + labelStyle: { + color: "#fff", + fontFamily: "heb-open-sans-bold", + fontSize: RFPercentage(2.2) + } + }} + drawerStyle={{ + backgroundColor: "#1AA1E5", + width: 0.6 * dimensions.width + }} + > + ( + + ) + }} + /> + + + + + + + + + ); +} + +export default MainNavDrawer; diff --git a/Components/navigation/ProfileButton.tsx b/Components/navigation/ProfileButton.tsx new file mode 100644 index 0000000..769bc9e --- /dev/null +++ b/Components/navigation/ProfileButton.tsx @@ -0,0 +1,42 @@ +import PropTypes from "prop-types"; +import React from "react"; +import { Image, StyleSheet, TouchableOpacity } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; + +import KBText from "../KBText"; +import { useStateValue } from "../../Utils/State"; + +const ProfileButton = props => { + const [{ user }] = useStateValue(); + if (!user) return null; + + return ( + + + {user.firstName} + + ); +}; + +ProfileButton.propTypes = { + onPress: PropTypes.func, +} + +const styles = StyleSheet.create({ + image: { + width: 30, + height: 30, + alignSelf: 'center' + }, + name: { + textAlign: 'right', + alignSelf: 'flex-end', + fontSize: RFPercentage(2.5), + } +}); + +export default ProfileButton; diff --git a/config/get-settings.js b/Config/GetSettings.ts similarity index 91% rename from config/get-settings.js rename to Config/GetSettings.ts index cb5017c..797fefa 100644 --- a/config/get-settings.js +++ b/Config/GetSettings.ts @@ -6,6 +6,7 @@ const localhost = Platform.OS === "ios" ? "localhost:8080" : "10.0.2.2:8080"; const ENV = require("./env").default; + const getSettings = (env = Constants.manifest.releaseChannel) => { // What is __DEV__ ? // This variable is set to true when react-native is running in Dev mode. @@ -13,8 +14,8 @@ const getSettings = (env = Constants.manifest.releaseChannel) => { if (__DEV__) { set(ENV, 'dev.apiUrl', localhost); return ENV.dev; - } else if (env === "staging") { - return ENV.staging; + } else if (env === "default") { + return ENV.dev; } else if (env === "prod") { return ENV.prod; } diff --git a/Config/TextContent.ts b/Config/TextContent.ts new file mode 100644 index 0000000..93e6f89 --- /dev/null +++ b/Config/TextContent.ts @@ -0,0 +1,30 @@ +export const AboutContent = + "אנו שמחים שבחרת להכיר את סדרת המוצרים הטיפוליים שפיתחנו עבורך. מטרתנו היא להעניק לך את מגוון הפתרונות הטיפוליים לבעיות העור השונות הטיפול בבעיית האקנה לסוגיו, תוך כדי שימוש במגוון של תכשירים פעילים לטיפול במרכיבי המחלה בבני נוער ומבוגרים. טיפול במרקם העור, מגוון תכשירים לחידוש המבוססים על חומצות הידרוקסיות ורטינואיד הטיפול האולטימטיבי בכתמי עור, על ידי מגוון תכשירים לטיפול בייתי וטיפולי מכון, כאשר “מינימום גירוי” יהיה החוק הראשון בהבהרת כתמים על ידי תכשירי קיי בי פיור ובשל כך ההצלחה לא תאחר לבוא אייג’ינג ואנטי אייג’ינג, יקבלו מענה חדשני במיוחד על ידי סדרת תכשירים בהתאמה למטופל/ת, אשר יעניקו למטופל את המענה הטוב ביותר. חברת קיי בי פיור, מעמידה לרשותך צוות הדרכה מקצועי שיעניק לך מענה לכל שאלה הנוגעת לטיפול הקוסמטי."; + + +export const ProtocolContent = ` +1 .ניתן להחליף מוצר עד 14 יום מיום הרכישה, בצירוף חשבונית מקורית או סרט קופה או פתק החלפה באריזתו המקורית בלבד וזאת במידה שלא נעשה בו שימוש. + +2 .ניתן לקבל החזר כספי למוצרים שלא נעשה בהם שימוש ואשר הוחזרו תוך 2 ימי עסקים מיום הרכישה, כנגד הצגת חשבונית או סרט קופה או פתק החלפה. + +3 .לא ניתן להחזיר/להחליף: ליפסטיק, ליפגלוס, מסקרה ומייקאפ מותאם אישית. + +4 .דמי ביטול – בעת ביטול עסקה, חברת גאיה תגבה מהצרכן דמי ביטול בשיעור של 5 %ממחיר הטובין או 100 ש“ח לפי הנמוך מבניהם. + +5 .דמי ביטול עסקת אשראי – בעת ביטול עסקה אשר נעשתה בכרטיס אשראי, חברת גאיה תגבה מהצרכן תשלום בעד סליקת כרטיס האשראי. + +6 .לא ניתן לקבל החזר כספי למוצר ששולם באמצעות תווי קניה, שובר מתנה, או כרטיס מגנטי נטען אלא לקבל זיכוי בלבד במידה והוחזר בתוך 14 יום ממועד הקנייה בהצגת חשבונית או סרט קופה או פתק החלפה. + +7 .החלפת / החזרת פריטים שנרכשו במבצע יתאפשרו בתוך 5 ימים מיום הרכישה בכפוף לתנאי החלפה / החזרה. + +כל מוצרי גאיה מאושרים ע"י משרד הבריאות + +ביטול עסקה על ידי Gaya Cosmetics + +הזמנתכם עלולה שלא להתבצע אם לאחר סיום הקנייה אזל המוצר שבחרתם מן המלאי, או במידה ופרטי כרטיס האשראי שלכם ו/או פרטיכם המלאים לא נקלטו במערכת. + +בכל אחד ממקרים אלה ניצור עמכם קשר. לפרטים ובירורים באשר למוצרים ואספקתם ניתן לפנות אל Gaya Cosmetics בדוא"ל: office@gayacosmetics.com. + +בכל שאלה נוספת, שירות הלקוחות של Gaya Cosmetics ישמח לסייע באמצעות דוא"ל או באמצעות פניה ישירות מהאתר. + +`; \ No newline at end of file diff --git a/Config/env.ts b/Config/env.ts new file mode 100644 index 0000000..07f6402 --- /dev/null +++ b/Config/env.ts @@ -0,0 +1,22 @@ +const ENV = { + dev: { + apiUrl: "localhost", + auth0: { + auth0Domain: "auth.romach-dev.com", + passwordlessClient: { + client_id: "ZaaH4jbBvP85SUUyMjomo8pR8hPLSfUi", + allowedConnections: ["sms"], + scope: "openid profile read:current_user update:current_user_identities", + audience: `https://dev-b6oppzho.eu.auth0.com/api/v2/` + }, + } + }, + staging: { + apiUrl: "[your.staging.api.here]" + }, + prod: { + apiUrl: "[your.production.api.here]" + } +}; + +export default ENV; diff --git a/Pages/Company/AboutCompany.tsx b/Pages/Company/AboutCompany.tsx new file mode 100644 index 0000000..3277371 --- /dev/null +++ b/Pages/Company/AboutCompany.tsx @@ -0,0 +1,100 @@ +import React from "react"; +import { Linking } from "expo"; +import { View, StyleSheet, TouchableOpacity, ScrollView } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; +import { Ionicons } from "@expo/vector-icons"; + +import KBTitle from "../../Components/KBTitle"; +import { translated } from "../../Utils/Localization"; +import KBText from "../../Components/KBText"; + +function About() { + return ( + + + {translated("AboutPage.Title")} + + {translated("AboutPage.SemiTitle")} + + + {translated("AboutPage.Content")} + + + {translated("AboutPage.FollowUs")} + + + + Linking.openURL("https://urlgeni.us/facebook/kb-pure") + } + /> + | + + Linking.openURL("https://urlgeni.us/instagram/kb-pure-insta") + } + /> + + Linking.openURL("tel:036742323")} + > + + {translated("AboutPage.ContactUs")} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: "flex-start", + alignItems: "flex-end", + margin: 30 + }, + title: { + fontSize: RFPercentage(2.5) + }, + content: { + marginTop: 10, + fontSize: RFPercentage(2.3), + textAlign: "right" + }, + followUs: { + fontSize: RFPercentage(2.5), + marginTop: 20, + alignSelf: "center" + }, + socialContainer: { + flexDirection: "row", + alignSelf: "center", + marginTop: 10 + }, + delimiter: { + fontSize: RFPercentage(5), + color: "#CCC6C6", + marginLeft: 60, + marginRight: 60 + }, + contactUs: { + alignSelf: "stretch", + backgroundColor: "#2B2E34", + borderRadius: 30, + marginVertical: 30 + // marginTop: 30 + }, + contactUsText: { + // flex: 1, + margin: 20, + color: "#FFFFFF" + } +}); + +export default About; diff --git a/Pages/Company/CompanyProtocol.tsx b/Pages/Company/CompanyProtocol.tsx new file mode 100644 index 0000000..cd17bb1 --- /dev/null +++ b/Pages/Company/CompanyProtocol.tsx @@ -0,0 +1,46 @@ +import React from "react"; +import { View, StyleSheet, ScrollView } from "react-native"; +import { RFPercentage } from "react-native-responsive-fontsize"; + +import KBTitle from "../../Components/KBTitle"; +import { translated } from "../../Utils/Localization"; +import KBText from "../../Components/KBText"; + +function CompanyProtocol(props) { + return ( + + + {translated("ProtocolPage.Title")} + + {translated("ProtocolPage.SemiTitle")} + + + {translated("ProtocolPage.Content")} + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: "flex-start", + alignItems: "flex-end", + margin: 30 + }, + title: { + fontSize: RFPercentage(2.5) + }, + semiTitle: { + marginTop: 10, + fontSize: RFPercentage(2) + }, + content: { + marginTop: 10, + fontSize: RFPercentage(1.6), + textAlign: "right" + }, +}); + +export default CompanyProtocol; diff --git a/Pages/Company/NavigationInstructions.tsx b/Pages/Company/NavigationInstructions.tsx new file mode 100644 index 0000000..ad58ca9 --- /dev/null +++ b/Pages/Company/NavigationInstructions.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import { View, StyleSheet } from "react-native"; +import KBTitle from "../../Components/KBTitle"; +import { translated } from "../../Utils/Localization"; +import CustomMap from "../../Components/CustomMap"; +import WazeLink from "../../Components/WazeLink"; + +function NavInstructions(props) { + return ( + + {/**/} + {translated("NavPage.Title")} + + + + {/**/} + {translated("NavPage.Address")} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { flex: 1, justifyContent: "flex-start" }, + title: { + textAlign: "center", + flex: 0.6, + alignSelf: "flex-end", + marginTop:20, + marginLeft: 20, + marginRight: 20, + }, + mapView: { + justifyContent: "flex-start", + flex: 3 + }, + address: { flex: 1, marginTop:20 }, + waze: { flex: 0.7, marginLeft:50, marginRight: 50, } +}); + +export default NavInstructions; diff --git a/Pages/Company/Privacy.tsx b/Pages/Company/Privacy.tsx new file mode 100644 index 0000000..f0da1fb --- /dev/null +++ b/Pages/Company/Privacy.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import { WebView } from 'react-native-webview'; + +export default () => { + return ; +} \ No newline at end of file diff --git a/Pages/Entrance.tsx b/Pages/Entrance.tsx new file mode 100644 index 0000000..7e0c91c --- /dev/null +++ b/Pages/Entrance.tsx @@ -0,0 +1,91 @@ +import React, { useState } from "react"; +import { + StyleSheet, + View, + Image, + Text, + AppState, + Dimensions +} from "react-native"; + +import MaterialButtonDark from "../Components/MaterialButtonDark"; +import { translated } from "../Utils/Localization"; +import Auth from "../Utils/Auth"; +import getSettings from "../Config/GetSettings"; +import { useStateValue } from "../Utils/State"; +import Background from "../Components/Background"; +import KBText from "../Components/KBText"; +import KBTitle from "../Components/KBTitle"; + +const { + auth0: { passwordlessClient } +} = getSettings(); + +function Entrance(props) { + const [{ user }, dispatch] = useStateValue(); + const [showFirstTimeLabel, setShowFirstTimeLabel] = useState(true); + if (user && user.primaryUserId) props.navigation.navigate("MainNavDrawer"); + + const onLogin = async () => { + const response = await Auth.login(passwordlessClient); + if (response && response.primaryUserId) { + dispatch({ + type: "setUser", + newUser: response + }); + } + }; + + return ( + + + + {AppState.currentState} + + {showFirstTimeLabel && ( + + {translated("BeforeAuthTitle")} + + {translated("BeforeAuth")} + + + )} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 5, + alignItems: "center" + }, + image: { + flex: 2, + width: Dimensions.get("window").width - 150, + marginLeft: 60, + marginRight: 60 + }, + welcome: { + flex: 2, + marginTop: 40, + marginLeft: 60, + marginRight: 60 + }, + materialButtonDark: { + flex: 1, + marginTop: 40 + } +}); + +export default Entrance; diff --git a/Pages/Main/MainAction.tsx b/Pages/Main/MainAction.tsx new file mode 100644 index 0000000..46906b0 --- /dev/null +++ b/Pages/Main/MainAction.tsx @@ -0,0 +1,65 @@ +import React from "react"; +import { + StyleSheet, + View, + Image, + TouchableOpacity, + Dimensions +} from "react-native"; + +import KBText from "../../Components/KBText"; +import {translated} from "../../Utils/Localization"; + +const deviceWidth = Dimensions.get("window").width; + +export const Line = props => { + return {props.children}; +}; + +export const MainPageButton = props => ( + + + + {" "} + {translated(`MainPage.${props.label}`)}{" "} + + +); + +const styles = StyleSheet.create({ + line: { + flexDirection: "row-reverse", + justifyContent: "center", + alignItems: "center", + flex: 1, + marginTop: 10 + }, + buttonContainer: { + flex: 1, + marginLeft: 5, + marginRight: 5, + borderBottomLeftRadius: 13, + borderBottomRightRadius: 13, + borderTopLeftRadius: 13, + borderTopRightRadius: 13, + alignItems: "center", + // height: undefined, + // width: undefined, + // backgroundColor: "#F2F2F2", + }, + image: { + flex: 1, + // alignSelf: 'stretch', + // overflow: 'visible', + width: deviceWidth / 2.3, + height: undefined, + aspectRatio: 1 + }, + label: { + // flex:0.1, + alignSelf: "stretch", + // backgroundColor: "#F2F2F2", + // fontSize: RFPercentage(2), + padding: 3 + } +}); \ No newline at end of file diff --git a/Pages/Main/index.tsx b/Pages/Main/index.tsx new file mode 100644 index 0000000..e0fab08 --- /dev/null +++ b/Pages/Main/index.tsx @@ -0,0 +1,89 @@ +import React, { useEffect } from "react"; +import { + ScrollView, + Alert +} from "react-native"; +import { Linking } from "expo"; +import { useStateValue } from "../../Utils/State"; +import Background from "../../Components/Background"; +import { Line, MainPageButton } from "./MainAction"; + +function Index(props) { + const [{ user }, dispatch] = useStateValue(); + + // todo: currently this hack has to be before the focus effect. + useEffect(() => { + dispatch({ + type: "setDrawerNav", + drawerNav: props.navigation + }); + }, []); + + const chatDeepLink = `http://m.me/104737824361966?ref=${user.primaryUserId}`; + const wordPressUrl = "http://wp.romach-dev.com/wp-login.php"; + + return ( + + + + { + Alert.alert("פתיחת ייעוץ מקצועי", chatDeepLink, [ + { text: "OK", onPress: () => Linking.openURL(chatDeepLink) } + ]); + }} + /> + OpenBrowserModal(wordPressUrl)} + /> + + + + OpenBrowserModal(wordPressUrl)} + /> + OpenBrowserModal(wordPressUrl)} + /> + + + + OpenBrowserModal(wordPressUrl)} + /> + OpenBrowserModal(wordPressUrl)} + /> + + + + OpenBrowserModal(wordPressUrl)} + /> + OpenBrowserModal(wordPressUrl)} + /> + + + + ); +} + +export default Index; diff --git a/Pages/Personal.tsx b/Pages/Personal.tsx new file mode 100644 index 0000000..8ae7162 --- /dev/null +++ b/Pages/Personal.tsx @@ -0,0 +1,96 @@ +import React from "react"; +import { StyleSheet, View, ScrollView } from "react-native"; +import { useStateValue } from "../Utils/State"; +import Background from "../Components/Background"; +import KBTitle from "../Components/KBTitle"; +import { translated } from "../Utils/Localization"; +import KBText from "../Components/KBText"; +import { RFPercentage } from "react-native-responsive-fontsize"; + +function Line({ title, value }) { + return ( + + + {""}{title}{""} + + + {" "}{value}{" "} + + + ); +} + +function Personal() { + const [ + { + user: { meta } + } + ] = useStateValue(); + + if (!meta) return null; + return ( + + + + {translated("PersonalPage.Title")} + + + + + + + + + + + + {translated("PersonalPage.AccountsBalance")} 0.00 + + + + {translated("PersonalPage.Top10")} + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + marginTop: 20, + marginRight: 5 + }, + textLine: { + textAlign: "right" + }, + marginTop: { + marginTop: 30 + } +}); + +export default Personal; diff --git a/utils/auth/auth.js b/Utils/Auth.ts similarity index 57% rename from utils/auth/auth.js rename to Utils/Auth.ts index 66fff67..0052e1d 100644 --- a/utils/auth/auth.js +++ b/Utils/Auth.ts @@ -1,13 +1,17 @@ -import { AuthSession } from "expo"; +import * as AuthSessionNew from "expo-auth-session"; import jwtDecode from "jwt-decode"; -import { Alert } from "react-native"; -import getSettings from "../../config/get-settings"; + +import getSettings from "../Config/GetSettings"; +import _ from "lodash"; const { auth0: { auth0Domain } } = getSettings(); +interface StringMap { + [key: string]: string; +} -const toQueryString = params => +const toQueryString = (params: StringMap) => "?" + Object.entries(params) .map( @@ -16,15 +20,15 @@ const toQueryString = params => ) .join("&"); -const logout = async () => AuthSession.dismiss(); - +const logout = async () => { + // return AuthSession.dismiss(); +}; -const login = async (settings, primaryUserId) => { +const login = async settings => { // Retrieve the redirect URL, add this to the callback URL list // of your Auth0 application. - const redirectUrl = AuthSession.getRedirectUrl(); - console.log(`Redirect URL: ${redirectUrl}`); + const redirectUrl = AuthSessionNew.getRedirectUrl(); // Structure the auth parameters and URL const params = { @@ -36,33 +40,36 @@ const login = async (settings, primaryUserId) => { response_type: "token id_token", nonce: "nonce", // ideally, this will be a random value rememberLastLogin: true, - primaryUserId, ...settings }; const queryParams = toQueryString(params); const authUrl = `https://${auth0Domain}/authorize${queryParams}`; - console.log(authUrl); + // const response = await WebBrowser.openBrowserAsync(authUrl, {showInRecents: true}); + // const response = await WebBrowser.openAuthSessionAsync(authUrl, {showInRecents: true}); + const response = await AuthSessionNew.startAsync({ + authUrl, + showInRecents: true + }); - // Perform the authentication - const response = await AuthSession.startAsync({ authUrl }); + // const response = await startAuth(authUrl); return handleLoginResponse(response); }; const handleLoginResponse = response => { if (response.error || response.type !== "success") { - console.log(response); return; } - console.log(response); const decodedJwtIdToken = jwtDecode(response.params.id_token); - console.log(decodedJwtIdToken); + const fullName = decodedJwtIdToken["https://crm.kb.com/name"]; return { ...decodedJwtIdToken, - name: decodedJwtIdToken["https://crm.kb.com/name"], - primaryUserId: decodedJwtIdToken.sub, + name: fullName, + firstName: _.words(fullName)[0], + meta: decodedJwtIdToken["https://crm.kb.com/"], + primaryUserId: decodedJwtIdToken.sub }; }; diff --git a/Utils/BrowserModalUtil.ts b/Utils/BrowserModalUtil.ts new file mode 100644 index 0000000..2df2095 --- /dev/null +++ b/Utils/BrowserModalUtil.ts @@ -0,0 +1,10 @@ +import * as WebBrowser from "expo-web-browser"; +import Constants from "expo-constants"; + +export const OpenBrowserModal = async href => { + const result = await WebBrowser.openAuthSessionAsync( + href, + Constants.linkingUrl, + { showInRecents: true } + ); +}; diff --git a/Utils/Localization.ts b/Utils/Localization.ts new file mode 100644 index 0000000..1fe94f2 --- /dev/null +++ b/Utils/Localization.ts @@ -0,0 +1,129 @@ +// import * as Localization from "expo-localization"; +import i18n from "i18n-js"; +import { AboutContent, ProtocolContent } from "../Config/TextContent"; + +i18n.translations = { + en: { + EnterPhone: "Enter PhoneNumber", + EnterFB: "Enter Facebook", + Welcome: "Welcome back", + Logout: "Logout", + BeforeAuthTitle: "BeforeAuthTitle", + BeforeAuth: "BeforeAuth", + DrawerLinks: { + MainPage: "Main", + Top10: "My Top 10", + Company: { + Protocol: "Protocol", + About: "About", + Navigation: "Navigation", + Privacy: "privacy" + } + }, + PersonalPage: { + Title: "Title", + Name: "Name", + Dob: "dob", + Guide: "Guide", + Phone: "Phone", + Address: "Address", + ID: "ID", + LastPurchase: "LastPurchase", + CreatedAt: "CreatedAt", + AccountsBalance: "AccountsBalance", + Top10: "My Top 10" + }, + MainPage: { + Chat: "Chat", + Shop: "Shop", + Courses: "Courses", + HomeCare: "HomeCare", + LiveTV: "LiveTV", + Simulation: "Simulation", + Articles: "Articles", + Marketing: "Marketing" + }, + NavPage: { Title: "title", Address: "address", Nav: "nav" }, + AboutPage: { + Title: "Title", + SemiTitle: "SemiTitle", + Content: "content", + FollowUs: "FollowUs", + ContactUs: "ContactUS" + }, + ProtocolPage: { + Title: "Title", + SemiTitle: "SemiTitle", + Content: "content" + } + }, + he: { + EnterPhone: "כניסה בזיהוי טלפוני>> ", + EnterFB: "כניסה עם פייסבוק", + Welcome: "ברוכה השבה \n לעולם המתקדם של KB-PURE", + Logout: "התנתק", + BeforeAuthTitle: "קוסמטיקאית יקרה,", + BeforeAuth: + "ברוכה הבאה \n לעולם המתקדם של KB-PURE. \n רגע לפני שמתחילים, מספר צעדים לשמירה על פרטיותך.", + DrawerLinks: { + MainPage: "לעמוד הראשי", + Top10: "My Top 10", + Company: { + Protocol: "נהלי החברה להחזרים", + About: "על החברה", + Navigation: "ניווט למשרדי החברה", + Privacy: "מדיניות פרטיות" + } + }, + PersonalPage: { + Title: "איזור אישי", + Name: "שם:", + Dob: "תאריך לידה:", + Guide: "שם מדריך:", + Phone: "טלפון:", + Address: "כתובת:", + ID: "ח.פ:", + LastPurchase: "תאריך רכישה אחרונה:", + CreatedAt: "תאריך הצטרפות למשפחה:", + AccountsBalance: "מאזן מול הנהלת חשבון:", + Top10: "My Top 10" + }, + MainPage: { + Chat: "ייעוץ מקצועי", + Shop: "מרכז הזמנות", + Courses: "סדנאות וימי העשרה", + HomeCare: "סימולציות להתאמת טיפול ביתי", + LiveTV: "LIVE TV", + Simulation: "פרוטוקול טיפולי מכון", + Articles: "מאמרים", + Marketing: "חומר שיווקי" + }, + NavPage: { + Title: "ניווט למשרדי החברה", + Address: "דוד סחרוב 5, ראשון לציון", + Nav: "ניווט" + }, + AboutPage: { + Title: "אודות", + SemiTitle: "לקוח/ה יקר/ה", + Content: AboutContent, + FollowUs: "עקבו אחרינו ברשתות החברתיות", + ContactUs: "ליצירת קשר עם משרדי החברה >>" + }, + ProtocolPage: { + Title: "מדיניות החזרות", + SemiTitle: + "מדיניות החזרת מוצרים בכפוף לתקנות המעוגנות בחוק להגנת הצרכן התשעא-2010", + Content: ProtocolContent + } + } +}; + +// Set the locale once at the beginning of your app. +// i18n.locale = Localization.locale; +i18n.locale = "he"; +i18n.fallbacks = true; + +export function translated(t) { + return i18n.t(t); +} diff --git a/Utils/Reducer.ts b/Utils/Reducer.ts new file mode 100644 index 0000000..7e1dfb3 --- /dev/null +++ b/Utils/Reducer.ts @@ -0,0 +1,32 @@ +export const initialUserState = { + name: null, + primaryUserId: null, + passwordless: null +}; + +export const initialState = { + user: initialUserState, + drawerNav: {}, +}; + +export const reducer = (state, action) => { + switch (action.type) { + case "setUser": + return { + ...state, + user: action.newUser + }; + case "resetUser": + return { + ...state, + user: initialUserState + }; + case "setDrawerNav": + return { + ...state, + drawerNav: action.drawerNav, + }; + default: + return state; + } +}; diff --git a/Utils/State.tsx b/Utils/State.tsx new file mode 100644 index 0000000..daf51f9 --- /dev/null +++ b/Utils/State.tsx @@ -0,0 +1,10 @@ +import React, { createContext, useContext, useReducer } from "react"; + +export const StateContext = createContext({}); + +export const StateProvider = ({ reducer, initialState, children }) => ( + + {children} + +); +export const useStateValue: () => any = () => useContext(StateContext); diff --git a/app.json b/app.json index a42b04d..63c4081 100644 --- a/app.json +++ b/app.json @@ -3,18 +3,16 @@ "name": "auth0-example", "slug": "auth0-example", "privacy": "public", - "sdkVersion": "36.0.0", "platforms": [ "ios", "android" ], "version": "1.0.0", "orientation": "portrait", - "icon": "./assets/icon.png", + "icon": "./assets/kb-icon.png", "splash": { - "image": "./assets/splash.png", - "resizeMode": "contain", - "backgroundColor": "#ffffff" + "image": "./assets/splash/splash-gradient.png", + "resizeMode": "cover" }, "updates": { "fallbackToCacheTimeout": 0 diff --git a/assets/Fonts/OpenSans/English/OpenSans-Bold.ttf b/assets/Fonts/OpenSans/English/OpenSans-Bold.ttf new file mode 100644 index 0000000..efdd5e8 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-Bold.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-BoldItalic.ttf b/assets/Fonts/OpenSans/English/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000..9bf9b4e Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-BoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-ExtraBold.ttf b/assets/Fonts/OpenSans/English/OpenSans-ExtraBold.ttf new file mode 100644 index 0000000..67fcf0f Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-ExtraBold.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-ExtraBoldItalic.ttf b/assets/Fonts/OpenSans/English/OpenSans-ExtraBoldItalic.ttf new file mode 100644 index 0000000..0867228 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-ExtraBoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-Italic.ttf b/assets/Fonts/OpenSans/English/OpenSans-Italic.ttf new file mode 100644 index 0000000..1178567 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-Italic.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-Light.ttf b/assets/Fonts/OpenSans/English/OpenSans-Light.ttf new file mode 100644 index 0000000..6580d3a Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-Light.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-LightItalic.ttf b/assets/Fonts/OpenSans/English/OpenSans-LightItalic.ttf new file mode 100644 index 0000000..1e0c331 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-LightItalic.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-Regular.ttf b/assets/Fonts/OpenSans/English/OpenSans-Regular.ttf new file mode 100644 index 0000000..29bfd35 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-Regular.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-SemiBold.ttf b/assets/Fonts/OpenSans/English/OpenSans-SemiBold.ttf new file mode 100644 index 0000000..54e7059 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-SemiBold.ttf differ diff --git a/assets/Fonts/OpenSans/English/OpenSans-SemiBoldItalic.ttf b/assets/Fonts/OpenSans/English/OpenSans-SemiBoldItalic.ttf new file mode 100644 index 0000000..aebcf14 Binary files /dev/null and b/assets/Fonts/OpenSans/English/OpenSans-SemiBoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Bold.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Bold.ttf new file mode 100644 index 0000000..9e54bee Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Bold.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-BoldItalic.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-BoldItalic.ttf new file mode 100644 index 0000000..c751a0a Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-BoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBold.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBold.ttf new file mode 100644 index 0000000..02b0349 Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBold.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBoldItalic.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBoldItalic.ttf new file mode 100644 index 0000000..eb3c84e Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-ExtraBoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Italic.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Italic.ttf new file mode 100644 index 0000000..a0bd495 Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Italic.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Light.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Light.ttf new file mode 100644 index 0000000..88ac2e7 Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Light.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-LightItalic.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-LightItalic.ttf new file mode 100644 index 0000000..d9344ac Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-LightItalic.ttf differ diff --git a/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Regular.ttf b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Regular.ttf new file mode 100644 index 0000000..dae5ac4 Binary files /dev/null and b/assets/Fonts/OpenSans/Hebrew/OpenSansHebrew-Regular.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Bold.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Bold.ttf new file mode 100644 index 0000000..768380a Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Bold.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-BoldItalic.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-BoldItalic.ttf new file mode 100644 index 0000000..051c83a Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-BoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBold.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBold.ttf new file mode 100644 index 0000000..da44654 Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBold.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBoldItalic.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBoldItalic.ttf new file mode 100644 index 0000000..682bedc Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-ExtraBoldItalic.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Italic.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Italic.ttf new file mode 100644 index 0000000..1d339db Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Italic.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Light.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Light.ttf new file mode 100644 index 0000000..b0b5cf6 Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Light.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-LightItalic.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-LightItalic.ttf new file mode 100644 index 0000000..b9f6bc1 Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-LightItalic.ttf differ diff --git a/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Regular.ttf b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Regular.ttf new file mode 100644 index 0000000..9872769 Binary files /dev/null and b/assets/Fonts/OpenSans/HebrewCondensed/OpenSansHebrewCondensed-Regular.ttf differ diff --git a/assets/fonts/artifika-regular.ttf b/assets/Fonts/artifika-regular.ttf similarity index 100% rename from assets/fonts/artifika-regular.ttf rename to assets/Fonts/artifika-regular.ttf diff --git a/assets/fonts/roboto-regular.ttf b/assets/Fonts/roboto-regular.ttf similarity index 100% rename from assets/fonts/roboto-regular.ttf rename to assets/Fonts/roboto-regular.ttf diff --git a/assets/back-blur-3.mp4 b/assets/back-blur-3.mp4 new file mode 100644 index 0000000..6a2c030 Binary files /dev/null and b/assets/back-blur-3.mp4 differ diff --git a/assets/hamburger.png b/assets/hamburger.png new file mode 100644 index 0000000..c6af38d Binary files /dev/null and b/assets/hamburger.png differ diff --git a/assets/icon.png b/assets/icon.png deleted file mode 100644 index 8ac81ac..0000000 Binary files a/assets/icon.png and /dev/null differ diff --git a/assets/images/image_Pb1G..png b/assets/images/image_Pb1G..png deleted file mode 100644 index a74c837..0000000 Binary files a/assets/images/image_Pb1G..png and /dev/null differ diff --git a/assets/images/image_Y0Kx..png b/assets/images/image_Y0Kx..png deleted file mode 100644 index 53ffb8a..0000000 Binary files a/assets/images/image_Y0Kx..png and /dev/null differ diff --git a/assets/images/image_a8gV..png b/assets/images/image_a8gV..png deleted file mode 100644 index 0a0f7b9..0000000 Binary files a/assets/images/image_a8gV..png and /dev/null differ diff --git a/assets/images/image_nBuW..png b/assets/images/image_nBuW..png deleted file mode 100644 index cccc95f..0000000 Binary files a/assets/images/image_nBuW..png and /dev/null differ diff --git a/assets/images/image_L1GT..png b/assets/images/logo-large.png similarity index 100% rename from assets/images/image_L1GT..png rename to assets/images/logo-large.png diff --git a/assets/images/user.png b/assets/images/user.png new file mode 100644 index 0000000..d95ce7a Binary files /dev/null and b/assets/images/user.png differ diff --git a/assets/kb-icon.png b/assets/kb-icon.png new file mode 100644 index 0000000..44696d6 Binary files /dev/null and b/assets/kb-icon.png differ diff --git a/assets/mainPageImages/liran/Articles.png b/assets/mainPageImages/liran/Articles.png new file mode 100644 index 0000000..4d1c0c8 Binary files /dev/null and b/assets/mainPageImages/liran/Articles.png differ diff --git a/assets/mainPageImages/liran/Chat.png b/assets/mainPageImages/liran/Chat.png new file mode 100644 index 0000000..1705bbd Binary files /dev/null and b/assets/mainPageImages/liran/Chat.png differ diff --git a/assets/mainPageImages/liran/Courses.png b/assets/mainPageImages/liran/Courses.png new file mode 100644 index 0000000..385af19 Binary files /dev/null and b/assets/mainPageImages/liran/Courses.png differ diff --git a/assets/mainPageImages/liran/HomeCare.png b/assets/mainPageImages/liran/HomeCare.png new file mode 100644 index 0000000..8fc7aa6 Binary files /dev/null and b/assets/mainPageImages/liran/HomeCare.png differ diff --git a/assets/mainPageImages/liran/LiveTV.png b/assets/mainPageImages/liran/LiveTV.png new file mode 100644 index 0000000..e240a6e Binary files /dev/null and b/assets/mainPageImages/liran/LiveTV.png differ diff --git a/assets/mainPageImages/liran/Marketing.png b/assets/mainPageImages/liran/Marketing.png new file mode 100644 index 0000000..c0a5521 Binary files /dev/null and b/assets/mainPageImages/liran/Marketing.png differ diff --git a/assets/mainPageImages/liran/Order.png b/assets/mainPageImages/liran/Order.png new file mode 100644 index 0000000..6edb626 Binary files /dev/null and b/assets/mainPageImages/liran/Order.png differ diff --git a/assets/mainPageImages/liran/RectangleBottom.png b/assets/mainPageImages/liran/RectangleBottom.png new file mode 100644 index 0000000..3ca1fb7 Binary files /dev/null and b/assets/mainPageImages/liran/RectangleBottom.png differ diff --git a/assets/mainPageImages/liran/Simulation.png b/assets/mainPageImages/liran/Simulation.png new file mode 100644 index 0000000..e9c3e90 Binary files /dev/null and b/assets/mainPageImages/liran/Simulation.png differ diff --git a/assets/menu-2-512.png b/assets/menu-2-512.png new file mode 100644 index 0000000..d390993 Binary files /dev/null and b/assets/menu-2-512.png differ diff --git a/assets/navPage/flag-blue.png b/assets/navPage/flag-blue.png new file mode 100644 index 0000000..d41290f Binary files /dev/null and b/assets/navPage/flag-blue.png differ diff --git a/assets/navPage/flag-pink.png b/assets/navPage/flag-pink.png new file mode 100644 index 0000000..4964aec Binary files /dev/null and b/assets/navPage/flag-pink.png differ diff --git a/assets/navPage/waze.png b/assets/navPage/waze.png new file mode 100644 index 0000000..0454901 Binary files /dev/null and b/assets/navPage/waze.png differ diff --git a/assets/splash/splash-gradient.png b/assets/splash/splash-gradient.png new file mode 100644 index 0000000..42d5b93 Binary files /dev/null and b/assets/splash/splash-gradient.png differ diff --git a/assets/splash/splash-gradient@3x.png b/assets/splash/splash-gradient@3x.png new file mode 100644 index 0000000..5deffcb Binary files /dev/null and b/assets/splash/splash-gradient@3x.png differ diff --git a/assets/splash/splash-speed.gif b/assets/splash/splash-speed.gif new file mode 100644 index 0000000..4e8de17 Binary files /dev/null and b/assets/splash/splash-speed.gif differ diff --git a/assets/splash.png b/assets/splash/splash.png similarity index 100% rename from assets/splash.png rename to assets/splash/splash.png diff --git a/assets/splash/splash2.gif b/assets/splash/splash2.gif new file mode 100644 index 0000000..9580640 Binary files /dev/null and b/assets/splash/splash2.gif differ diff --git a/components/MaterialButtonViolet.js b/components/MaterialButtonViolet.js deleted file mode 100644 index 913bcf0..0000000 --- a/components/MaterialButtonViolet.js +++ /dev/null @@ -1,46 +0,0 @@ -import React, { Component } from "react"; -import { StyleSheet, TouchableOpacity, Text } from "react-native"; - -function MaterialButtonViolet(props) { - return ( - - {props.text1 || "BUTTON"} - - ); -} - -const styles = StyleSheet.create({ - container: { - backgroundColor: "#3F51B5", - flexDirection: "row", - alignItems: "center", - justifyContent: "center", - paddingRight: 16, - paddingLeft: 16, - elevation: 2, - minWidth: 88, - borderRadius: 2, - shadowOffset: { - height: 1, - width: 0 - }, - shadowColor: "#000", - shadowOpacity: 0.35, - shadowRadius: 5 - }, - caption: { - width: 90, - height: 29, - color: "#fff", - alignSelf: "center", - justifyContent: "space-between", - fontSize: 14, - // fontFamily: "roboto-regular", - textAlign: "center" - } -}); - -export default MaterialButtonViolet; diff --git a/components/anchor.js b/components/anchor.js deleted file mode 100644 index 01927d7..0000000 --- a/components/anchor.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; -import { Text } from "react-native"; -import { Linking } from "expo"; - -import MaterialButtonViolet from "./MaterialButtonViolet"; - -const Anchor = props => { - const _handlePress = () => { - Linking.openURL(props.href); - props.onPress && props.onPress(); - }; - - return ( - - ); -}; - -export default Anchor; diff --git a/components/browserModal.js b/components/browserModal.js deleted file mode 100644 index bb5d437..0000000 --- a/components/browserModal.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import { Text } from "react-native"; -import * as WebBrowser from 'expo-web-browser'; - - -import MaterialButtonViolet from "./MaterialButtonViolet"; - -const BrowserModal = props => { - const _handlePress = async () => { - const result = await WebBrowser.openAuthSessionAsync(props.href); - console.log('BrowserModal result ', result); - props.onPress && props.onPress(); - }; - - return ( - - ); -}; - -export default BrowserModal; diff --git a/package.json b/package.json index 332acec..b92591b 100644 --- a/package.json +++ b/package.json @@ -7,21 +7,42 @@ "eject": "expo eject" }, "dependencies": { - "@auth0/auth0-spa-js": "^1.6.3", - "expo": "~36.0.0", - "expo-constants": "~8.0.0", - "expo-localization": "~8.0.0", - "expo-web-browser": "~8.0.0", + "@react-native-community/masked-view": "0.1.6", + "@react-navigation/drawer": "^5.3.2", + "@react-navigation/native": "^5.0.9", + "@react-navigation/stack": "^5.1.1", + "@types/node": "^13.11.0", + "expo": "^37.0.0", + "expo-auth-session": "~1.0.0", + "expo-av": "~8.1.0", + "expo-constants": "~9.0.0", + "expo-localization": "~8.1.0", + "expo-secure-store": "~8.1.0", + "expo-web-browser": "~8.1.0", + "git": "^0.1.5", "i18n-js": "^3.5.1", "jwt-decode": "^2.2.0", "lodash": "^4.17.15", "react": "16.9.0", - "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz", - "react-native-app-link": "^1.0.0" + "react-dom": "16.9.0", + "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.0.tar.gz", + "react-native-app-link": "^1.0.0", + "react-native-button-spinner": "^0.1.4", + "react-native-gesture-handler": "~1.6.0", + "react-native-maps": "0.26.1", + "react-native-reanimated": "~1.7.0", + "react-native-responsive-fontsize": "^0.4.3", + "react-native-safe-area-context": "0.7.3", + "react-native-screens": "~2.2.0", + "react-native-web": "^0.11.7", + "react-native-webview": "8.1.1" }, "devDependencies": { - "babel-preset-expo": "^8.0.0", - "react-native-debugger-open": "^0.3.24" + "@babel/core": "^7.0.0", + "@types/react": "^16.9.11", + "@types/react-native": "^0.60.22", + "babel-preset-expo": "^8.1.0", + "typescript": "^3.8.3" }, "private": true } diff --git a/pages/Entrance.js b/pages/Entrance.js deleted file mode 100644 index ee099b3..0000000 --- a/pages/Entrance.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from "react"; -import { StyleSheet, View, Image, Text } from "react-native"; -import MaterialButtonDark from "../components/MaterialButtonDark"; -import { translated } from "../utils/localization"; - -function Entrance(props) { - return ( - - - { - console.log("click"); - props.onLogin(); - }} - > - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1 - }, - image: { - width: 211, - height: 251, - marginTop: 28, - alignSelf: "center" - }, - materialButtonDark: { - width: 263, - height: 169, - marginTop: 206, - alignSelf: "center" - } -}); - -export default Entrance; diff --git a/pages/Main.js b/pages/Main.js deleted file mode 100644 index d24a715..0000000 --- a/pages/Main.js +++ /dev/null @@ -1,91 +0,0 @@ -import React, { useState } from "react"; -import { - StyleSheet, - View, - Text, - Modal, - TouchableHighlight -} from "react-native"; -import MaterialButtonViolet from "../components/MaterialButtonViolet"; -import Anchor from "../components/anchor"; -import BrowserModal from "../components/browserModal"; -import { translated } from "../utils/localization"; -import Personal from "./personal"; - -function Main(props) { - const [modalVisible, setModalVisible] = useState(true); - - console.log("render"); - return ( - - - - - - { - setModalVisible(!modalVisible); - }} - /> - - - - - {props.name}, {translated("Welcome")} - - - - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignSelf: "center" - }, - loremIpsum: { - color: "#121212", - fontSize: 25, - // fontFamily: "roboto-regular", - marginTop: 125, - alignSelf: "center" - }, - chat: { - width: 167, - height: 36, - marginTop: 100 - }, - shop: { - width: 167, - height: 36, - marginTop: 100 - }, - logout: { - width: 167, - height: 36, - marginTop: 200 - } -}); - -export default Main; diff --git a/pages/personal.js b/pages/personal.js deleted file mode 100644 index 23d474b..0000000 --- a/pages/personal.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; -import { StyleSheet, View, Text } from "react-native"; - -function Personal(props) { - const user = props.user["https://crm.kb.com/"]; - return ( - - {user.name} - כתובת {user.address} - שם הסוכן: {user.agent} - תאריך לידה {user.dob} - תאריך תחילת עבודה {user.created} - {user.phoneNumber} - מספר עוסק {user.vat} - - ) -} - -export default Personal; \ No newline at end of file diff --git a/utils/localization.js b/utils/localization.js deleted file mode 100644 index 0d2797a..0000000 --- a/utils/localization.js +++ /dev/null @@ -1,33 +0,0 @@ -import * as Localization from "expo-localization"; -import i18n from "i18n-js"; - -i18n.translations = { - en: { - EnterPhone: "Enter PhoneNumber", - EnterFB: "Enter Facebook", - Welcome: "Welcome back", - Chat: "Chat", - Shop: "Shop", - Logout: "Logout", - Content: "Content", - HideModal: "Hide", - }, - he: { - EnterPhone: "כניסה בזיהוי טלפוני", - EnterFB: "כניסה עם פייסבוק", - Welcome: "היי ", - Chat: "ייעוץ מקצועי", - Shop: "הזמנת מוצרים", - Logout: "התנתק", - Content: "תוכן", - HideModal: "סגור חלון" - } -}; -// Set the locale once at the beginning of your app. -// i18n.locale = Localization.locale; -i18n.locale = "he"; -i18n.fallbacks = true; - -export function translated(t) { - return i18n.t(t); -} diff --git a/yarn.lock b/yarn.lock index 4228324..32d5f5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,6 @@ # yarn lockfile v1 -"@auth0/auth0-spa-js@^1.6.3": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@auth0/auth0-spa-js/-/auth0-spa-js-1.6.3.tgz#ca5a8a222be1edcff8107665fbe6e819b4d8d392" - integrity sha512-jbK6qrcy3N8bAltP/sEdv9vo0eML9LneAESB05K/MPCwZVUJN9hu+y42DxfI7kH6dnVNyUbJohgpimv+eNonlQ== - dependencies: - browser-tabs-lock "^1.2.1" - core-js "^3.2.1" - es-cookie "^1.2.0" - fast-text-encoding "^1.0.0" - promise-polyfill "^8.1.3" - unfetch "^4.1.0" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" @@ -877,6 +865,13 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@egjs/hammerjs@^2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@egjs/hammerjs/-/hammerjs-2.0.17.tgz#5dc02af75a6a06e4c2db0202cae38c9263895124" + integrity sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A== + dependencies: + "@types/hammerjs" "^2.0.36" + "@expo/vector-icons@^10.0.2": version "10.0.6" resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-10.0.6.tgz#5718953ff0b97827d11dae5787976fa8ce5caaed" @@ -1061,11 +1056,63 @@ wcwidth "^1.0.1" ws "^1.1.0" +"@react-native-community/masked-view@0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.6.tgz#c7f2ac187c1f25aa8c30d11baa8f4398eca3bb84" + integrity sha512-PpMoeXwPUoldCRKDuSi+zK5rT+sJTW6ri6RdGPkSKRzU77Q1d9IaR0O5IKvBj0XSdL3p+dcOa05gk35aGDffBQ== + +"@react-navigation/core@^5.3.2": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.3.2.tgz#f3a1190b03dc32a26de2d69659a1509662c85e33" + integrity sha512-64MQAe+xQ2PUXELryElDGX8Zb+klQM3VR6DXSa13Ygkj3Vgn67cI0Hz9TG5m2FXe1Y+jpOTwbu2UEyNffwCEIw== + dependencies: + "@react-navigation/routers" "^5.2.1" + escape-string-regexp "^2.0.0" + nanoid "^3.0.2" + query-string "^6.11.1" + react-is "^16.13.0" + use-subscription "^1.4.0" + +"@react-navigation/drawer@^5.3.2": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-5.4.0.tgz#f9d9091e2de7e11f2bcc742a062ebf1d45509040" + integrity sha512-IOXBRfFaURA3o9+fEaC7lwomftGQYoyqzZKkcWI/fybtDwmhSS6QOyZKMm3fWRp1x++m3QLgQHsaMSXjUoRygA== + dependencies: + color "^3.1.2" + react-native-iphone-x-helper "^1.2.1" + +"@react-navigation/native@^5.0.9": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-5.1.4.tgz#bb9debf25c7e1fdc25e004cc6007968dec4e44a8" + integrity sha512-ripecPnP4TXC3P9C+Q6UD9b30sSzKfGgu0auiOnAvQTN2EZ5JO0lEooGRQkMBiZqSc41inrVgir5Wmz2mBuppw== + dependencies: + "@react-navigation/core" "^5.3.2" + +"@react-navigation/routers@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.2.1.tgz#c40f8369a8e077a81f98b2741fc5e62092b728a5" + integrity sha512-/gxmh66d7aUdjiGBf7IL7E2UXxzq5uzjkS+LtxDsLhVWwhdrT2vHVICZSE01ImOl+7K8ZpdfmTzLmX8JbTgtLA== + dependencies: + nanoid "^3.0.2" + +"@react-navigation/stack@^5.1.1": + version "5.2.9" + resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.2.9.tgz#6bc849c9d6ece4f2659a07c1b3afd93adc9bc0c7" + integrity sha512-JK2B9hZGP39uN9HJZZ46clqyazHu2nCkKcXrai8q50LuxTTVG5OMndr9/cmWWPip/eYmmgUDobM6W5ee83JOLw== + dependencies: + color "^3.1.2" + react-native-iphone-x-helper "^1.2.1" + "@types/fbemitter@^2.0.32": version "2.0.32" resolved "https://registry.yarnpkg.com/@types/fbemitter/-/fbemitter-2.0.32.tgz#8ed204da0f54e9c8eaec31b1eec91e25132d082c" integrity sha1-jtIE2g9U6cjq7DGx7skeJRMtCCw= +"@types/hammerjs@^2.0.36": + version "2.0.36" + resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.36.tgz#17ce0a235e9ffbcdcdf5095646b374c2bf615a4c" + integrity sha512-7TUK/k2/QGpEAv/BCwSHlYu3NXZhQ9ZwBYpzr9tjlPIL2C5BeGhH3DmVavRx3ZNyELX5TLC91JTz/cen6AAtIQ== + "@types/invariant@^2.2.29": version "2.2.31" resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.31.tgz#4444c03004f215289dbca3856538434317dd28b2" @@ -1103,21 +1150,42 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== +"@types/node@^13.11.0": + version "13.11.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b" + integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + "@types/qs@^6.5.1": version "6.9.1" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.1.tgz#937fab3194766256ee09fcd40b781740758617e7" integrity sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw== +"@types/react-native@^0.60.22": + version "0.60.31" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.60.31.tgz#a7af12197f884ad8dd22cda2df9862ed72973ded" + integrity sha512-Y0Q+nv50KHnLL+jM0UH68gQQv7Wt6v2KuNepiHKwK1DoWGVd1oYun/GJCnvUje+/V8pMQQWW6QuBvHZz1pV7tQ== + dependencies: + "@types/prop-types" "*" + "@types/react" "*" + +"@types/react@*", "@types/react@^16.9.11": + version "16.9.32" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz#f6368625b224604148d1ddf5920e4fefbd98d383" + integrity sha512-fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/uuid-js@^0.7.1": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@types/uuid-js/-/uuid-js-0.7.2.tgz#5b5552fcbaaf4acf026fb6dc66f7e5bd6b4be92f" - integrity sha512-9R+mA6mMXkFVQnXEeX5fMQDR2SYND7cafJTqbeMpLhgsL7qr7MF4ZBxWpLexml3lZsBsyAmqVWbOiB0N10m15w== - "@types/websql@^0.0.27": version "0.0.27" resolved "https://registry.yarnpkg.com/@types/websql/-/websql-0.0.27.tgz#621a666a7f02018e7cbb4abab956a25736c27d71" @@ -1135,17 +1203,17 @@ dependencies: "@types/yargs-parser" "*" -"@unimodules/core@~5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-5.0.0.tgz#e1e3ca3f91f3d27dbc93c6eebc03a40c711da755" - integrity sha512-PswccfzFIviX61Lm8h6/QyC94bWe+6cARwhzgzTCKa6aR6azmi4732ExhX4VxfQjJNHB0szYVXGXVEDsFkj+tQ== +"@unimodules/core@~5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-5.1.0.tgz#eae3706e1ecc99d4b992ad39970c43d92418d394" + integrity sha512-gaamGkJ4PVwusWEfsZyPo4uhrVWPDE0BmHc/lTYfkZCv2oIAswC7gG/ULRdtZpYdwnYqFIZng+WQxwuVrJUNDw== dependencies: compare-versions "^3.4.0" -"@unimodules/react-native-adapter@~5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-5.0.0.tgz#af9835821a2bf38390b9f09f3231c0b7546ee510" - integrity sha512-qb5p5wUQoi3TRa/33aLLHSnS7sewV99oBxIo9gnzNI3VFzbOm3rsbTjOJNcR2hx0raUolTtnQT75VbgagVQx4w== +"@unimodules/react-native-adapter@~5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-5.2.0.tgz#96bfd4cfbad5083b3aa1152ee0a4ac84fa9dfb69" + integrity sha512-S3HMEeQbV6xs7ORRcxXFGMk38DAnxqNcZG9T8JkX/KGY9ILUUqTS/e68+d849B6beEeglNMcOxyjwlqjykN+FA== dependencies: invariant "^2.2.4" lodash "^4.5.0" @@ -1228,11 +1296,6 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1298,6 +1361,11 @@ array-filter@~0.0.0: resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= +array-find-index@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" @@ -1383,10 +1451,10 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-preset-expo@^8.0.0, babel-preset-expo@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-8.0.0.tgz#08c042363189f2d871381f0d0dbf9644e9f67aea" - integrity sha512-40UCIE4E+9Xx5K+oEidFHML2+j/WE/ikcC7+3ndWx74MtdmRAtnGecboKRiGUK/vMrHzXIcWPP6/SOnE7zQVgQ== +babel-preset-expo@^8.1.0, babel-preset-expo@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-8.1.0.tgz#7dfdebe6dad80edd1901e0f733ca6a6cce2ad605" + integrity sha512-ZlGIo8OlO0b7S//QrqHGIIf2BY9HId5efxgBxyic5ZbKo6NHICThjSpEz4rRyQRGka7HixBq/Jyjsn4M2D/n/g== dependencies: "@babel/plugin-proposal-decorators" "^7.6.0" "@babel/preset-env" "^7.6.3" @@ -1427,6 +1495,11 @@ babel-preset-fbjs@^3.1.2, babel-preset-fbjs@^3.2.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" +badgin@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/badgin/-/badgin-1.1.4.tgz#5a8e2b81e812d3c4af7bacc2e62b36a9a5e40de5" + integrity sha512-BQ1m7TA7IehXb3/9b3cNH6TwIKcdqqJa/E4Z4fO40tSs6HPZWopPvx9QgHeUEd6Aays1BxQXjBpO+yrSYuRSOw== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1512,11 +1585,6 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -browser-tabs-lock@^1.2.1: - version "1.2.6" - resolved "https://registry.yarnpkg.com/browser-tabs-lock/-/browser-tabs-lock-1.2.6.tgz#3812e530796d623130a23f2cd00282e2c4299f3b" - integrity sha512-+FUo97nnOix/nQo+j4HyCO47bsJtfx1EFhj1rghqYx7N0MQ8D34aoP4eJGrMtN0D18s2OAGpbPqo/0ONGxDLiA== - browserslist@^4.6.0, browserslist@^4.8.3: version "4.8.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" @@ -1627,17 +1695,6 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1720,7 +1777,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -1732,11 +1789,32 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +color@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + colorette@^1.0.7: version "1.1.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7" @@ -1847,11 +1925,6 @@ core-js@^2.2.2, core-js@^2.4.1: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.2.1: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== - core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1867,7 +1940,7 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" -create-react-class@^15.6.3: +create-react-class@^15.6.2, create-react-class@^15.6.3: version "15.6.3" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== @@ -1896,11 +1969,29 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +css-in-js-utils@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" + integrity sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA== + dependencies: + hyphenate-style-name "^1.0.2" + isobject "^3.0.1" + +csstype@^2.2.0: + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== + dayjs@^1.8.15: version "1.8.19" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.19.tgz#5117dc390d8f8e586d53891dbff3fa308f51abfe" integrity sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg== +debounce@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" + integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1925,6 +2016,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +deep-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-3.0.0.tgz#c8e4c4d401cba25550a2f0f486a2e75bc5f219a2" + integrity sha512-YX2i9XjJ7h5q/aQ/IM9PEwEnDqETAIYbggmdDB3HLTlSgo1CxPsj6pvhPG68rq6SVE0+p+6Ywsm5fTYNrYtBWw== + dependencies: + is-obj "^1.0.0" + deepmerge@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" @@ -2030,34 +2128,17 @@ errorhandler@^1.5.0: accepts "~1.3.7" escape-html "~1.0.3" -es-cookie@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/es-cookie/-/es-cookie-1.3.2.tgz#80e831597f72a25721701bdcb21d990319acd831" - integrity sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q== - -es6-template-regex@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/es6-template-regex/-/es6-template-regex-0.1.1.tgz#e517b9e0f742beeb8d3040834544fda0e4651467" - integrity sha1-5Re54PdCvuuNMECDRUT9oORlFGc= - -es6-template@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/es6-template/-/es6-template-1.0.4.tgz#56af42b57a31f5175d3f567d44b1efc12d2f2636" - integrity sha1-Vq9CtXox9RddP1Z9RLHvwS0vJjY= - dependencies: - es6-template-regex "^0.1.1" - extend-shallow "^2.0.1" - get-value "^2.0.2" - lazy-cache "^1.0.3" - mkdirp "^0.5.1" - sliced "^1.0.1" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2131,93 +2212,109 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expo-app-loader-provider@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-app-loader-provider/-/expo-app-loader-provider-8.0.0.tgz#c18ef20a24153f5a0dbb297106ef0bcb5de57180" - integrity sha512-uMEdstZdm14JW8jfWXBWItIjGPNBH7cLj2pNu5e0pYF21W4j759rGL17NTNWit4UdLZg/zJB/HHRidVwEINfxA== - -expo-asset@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.0.0.tgz#400c7cf8693711ddc87da02d20a7d47bd517afeb" - integrity sha512-ICPptpetXB+v88Sqr8yMVEA46UNlUUb8AMbyUytdUJqV7V2itHDQywl08ofOlOICzNgjDFIQdCs3crkTVQ1Zng== +expo-asset@~8.1.3: + version "8.1.4" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.1.4.tgz#5265c28c1c279b2f9779269195bec4caf250ba5d" + integrity sha512-6YqW22F5issD1rgqBCja8TCA2dr+yf/89FdYs/jhQYpw5OJAnAvfpK3GL8h3jRCu1TvxZqhH5NeLG6f2b3oUqg== dependencies: blueimp-md5 "^2.10.0" + invariant "^2.2.4" + md5-file "^3.2.3" path-browserify "^1.0.0" url-parse "^1.4.4" -expo-constants@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-8.0.0.tgz#e2c5a072dacb4263ccfc57dcb4835ca791960d48" - integrity sha512-NGRwSWfhwNFA9WVLXwqnSDPJJ4DdXTqEkl9Fr9PcyW5VCoFgz7uke256E1YZsYhOE0Ph365lu/5jjZs+MRmRog== +expo-auth-session@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/expo-auth-session/-/expo-auth-session-1.0.0.tgz#2a2568c3ab6065b78e875ffeef52129865bf2b2a" + integrity sha512-LFaUtM6SQqyXCfekMjxeKynG0kHeCXZVBh/hvDB8SFAMR5UYKI+R7C16F78BKR1o02pgA2wcAPPDrlOab2xAJg== dependencies: - ua-parser-js "^0.7.19" + expo-constants "~9.0.0" + expo-web-browser "~8.1.0" -expo-error-recovery@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-1.0.0.tgz#2ca9d59fcd16c5c881af877993731056f2d46afe" - integrity sha512-xnxciNEpGmwxx8BAE2A9fd9HxtzWtz8p9mikKU+EfWgOXaYD3FJwgbFoVLD2pm4QUarxwOcic76rcwg+0cNnGg== +expo-av@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-8.1.0.tgz#376e2a821168cd83e997c6dd84350fab6b293f10" + integrity sha512-owWxOCyK+dPyT3pF4rDOf2W8Sn8LSEvfw1HvU9xM0wzH7xF0bw3Zs3wcXxvtfhnXAZ5dCDQfvZI5cXk+lml+IQ== + dependencies: + lodash "^4.17.15" + nullthrows "^1.1.0" + +expo-constants@~9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-9.0.0.tgz#35c600079ee91d38fe4f56375caae6e90f122fdd" + integrity sha512-1kqZMM8Ez5JT3sTEx8I69fP6NYFLOJjeM6Z63dD/m2NiwvzSADiO5+BhghnWNGN1L3bxbgOjXS6EHtS7CdSfxA== + +expo-error-recovery@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-1.1.0.tgz#98b9de5400dbfd022d1631739f3bf5e7016565da" + integrity sha512-33aRfPaXdAt0df1TL26JjM5qCAoEW8RAExjgMgunPcdQcf4sWiWFm3qYL8zrO/8DM4uUq4X2FCuPLHMlOYT/aw== -expo-file-system@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-8.0.0.tgz#60b90c8a375308dc85922592a77531a8e0cde6f7" - integrity sha512-mi84jt3EHVUfxu5eGOikNuRDi7+5daCFSP9LVgk5aQz8Oepo143vnH/+WE4lQEg+u8dB6EmmCWncyc2Fklxv7A== +expo-file-system@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-8.1.0.tgz#d6aa66fa32c19982b94d0013f963c5ee972dfd6d" + integrity sha512-xb4roeU8CotW8t3LkmsrliNbgFpY2KB+3sW1NnujnH39pFVwCd/kfujCYzRauj8aUy/HhSq+3xGkQTpC7pSjVw== dependencies: - uuid-js "^0.7.5" + uuid "^3.4.0" -expo-font@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-8.0.0.tgz#33afd0b501caf8f0392aea77f08717090eeb8d41" - integrity sha512-1hrlvxv8MpE1761v2mDjZRwhhM4hkfDr/MQlkWD2+g17N+UjU3WQct4kc+VuZW30pP+YowwrmG3O6JVoIOhWGA== +expo-font@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-8.1.0.tgz#62e6e2a1579a9b239bdeb9e8e5976de22a45fc8a" + integrity sha512-c8hY1E6VxDHJTJ91/5Tvr1UEc8acvn50BDiXz7vTvCeH3puDoCDq1weSsXIjKwuF6nF2NJbLQ0Ynenr3k7fiRA== dependencies: fontfaceobserver "^2.1.0" -expo-keep-awake@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-8.0.0.tgz#f9200a876a5db86e3f0aec8843428a918cdc08d6" - integrity sha512-l+672FVu9qqBEFKSXL1jrsQoDky7gTJX6WYLTWc0/hJuTMhVowWUHsOh/L9vxJEt23QtqLyszQ+hBqjQnWvICQ== +expo-keep-awake@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-8.1.0.tgz#3a1d8aa5a8395d40c7d79e1c93020ae5f848e664" + integrity sha512-RNPwWvpwsJwJS8ZI1yklKyVQ6l2NNZBCN2aSgQMRza2SABnpFFzDLHQwMo7DC+nbmrOueMvCIDr0VI3xrzGfEg== -expo-linear-gradient@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-8.0.0.tgz#972d33e92714d4a4485635683b5bfa357ecec41b" - integrity sha512-5G3ePGAHUoyBWbGITw5RtdJpssH8TXhCgt55cV+5LTTFjr51OZcuOmGua1vRoVFKBC/9ibLW465GEx9H/HS07Q== +expo-linear-gradient@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-8.1.0.tgz#6933765cf1e76ef2928fd8495e779929699ac4c6" + integrity sha512-AIy2pOXQRcgk2XE5IgAzd1S2jTFLutiDfveNm6m3fPAk00Rw4qFe98qzte1ayNrGYLJvQ2xq/Y7C0BmBP051mg== -expo-localization@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-8.0.0.tgz#29c8a94c629442d8972173693418e4aac3c6650d" - integrity sha512-NGxiNU4G67dhi+yngN034kgA+99rWhrPJ6mTIM7nY70F/UceoMIEs8Hgg9ZIPvlN0XFAUU2EybzR8wzYOzOR7w== +expo-localization@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-8.1.0.tgz#6003133e75849022918ae5638af6d553a04cde37" + integrity sha512-+wbsn9QLNG2GNOsbc+dfTQ39VEwrbn0TAungNqZ0UI9K2ZhrfQpAaAzAdN3TMOEhHluQKe0hiuULHpUgg8o7Kg== dependencies: rtl-detect "^1.0.2" -expo-location@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-location/-/expo-location-8.0.0.tgz#58dd54e47b12e26f9f2a97ded3cd15f8fa959b85" - integrity sha512-48i4dUCaqPTwSri79yummKwg6vE6loI7d4iHCrbG4EEuN3fhS8I9xU60CEkoNZTziH9zK0iw4KSjr7DbXUAaCw== +expo-location@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-location/-/expo-location-8.1.0.tgz#6a71ad9a8b78d5f016a30a02013c3b28f46d0b1b" + integrity sha512-G9JvsK1t9Z5Iybf+FCG81Jgm9Ee9leqpazxOPVabUJEWu/55Iex3yLGX04BuIA4ozAlJKBPzkhPdyqKdC7zrSw== dependencies: invariant "^2.2.4" -expo-permissions@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-8.0.0.tgz#5a45e8451dd7ff37c9e6ce5e2447818372547813" - integrity sha512-GHTRmwh1rd1b0FcibluPFu93NNQyl9b1anBBDVPmomoo9Prz7kDcO5p2hFqM99r896yvAUSe0fPloPKUq4g/1A== +expo-permissions@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-8.1.0.tgz#a7f2ee91ba76ce3a467e7b10adaa9ca5201b226f" + integrity sha512-QBHD+1J9+sGFnhoEGzMRchPweeEE0OJ9ehG/0l1BMRBA7qsLS9vRC1FTJ55NwjI0Kr4RTha9r6ZX1kZHT09f/w== + +expo-secure-store@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-8.1.0.tgz#1dcc4705c5264c828592a83842b8be8bbfb5f77f" + integrity sha512-EjCx9M2nH7iW3eNOjXl0I7oPypI0es6OStZakimR2iD8riLZp9LYHTj+39Iuz2o1m3OKi+bpwr3cHL52DxcDnA== -expo-sqlite@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-sqlite/-/expo-sqlite-8.0.0.tgz#293b45c78d612ab25400c8c579bd7d73f06ccb6f" - integrity sha512-nJBj1psOkYGIGh2hqMFV/+04EvfGAD3wkHMauUvveU6m/+c48GIxmesPMMDfqtzESgzMcVSKLfbiMYrdQJyrHg== +expo-sqlite@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-sqlite/-/expo-sqlite-8.1.0.tgz#858eb28e1143db281de8a49c99b4a953a81d0834" + integrity sha512-ziw6dbV1/sZErDkoGjG0afokyuKQqDtUuJglbLz9rQ6zNS1ceF3AjuEyfsWPDc2LL+QEdcnQODW7VUJelIk+0Q== dependencies: "@expo/websql" "^1.0.1" "@types/websql" "^0.0.27" lodash "^4.17.15" -expo-web-browser@~8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-8.0.0.tgz#8a4451c744c115569a4c810dac8851f219a21c72" - integrity sha512-7/rXUajycSjEF4Zd4tWm8+zP9/zJg8UWj575w2AeGI7RbOwUjqzQd1CFRzQBJkHflrEaTOXJbFHXxjJXdJaL1g== +expo-web-browser@~8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-8.1.0.tgz#1b4ca25e4dd600fac9ad16e32d81be47778c2667" + integrity sha512-Js2LIGut0NRKF+8BdQ2EOwGF2B2VYlnHgERxRtR+vHw7NOa7ZSl2GKFlAmf8QvAHqskk1OD0tujtoATv9XcELg== -expo@~36.0.0: - version "36.0.2" - resolved "https://registry.yarnpkg.com/expo/-/expo-36.0.2.tgz#17e5470c056f8615ebdd6819087af6a1032cf1ad" - integrity sha512-A0HkOBr6PkHUCcPmmTRmZQHE68EYhWDevFHAiv7fSZxNACmTq9arrSoON+UiPtGQEIV5OyV+MN/joHTJMduTkA== +expo@^37.0.0: + version "37.0.5" + resolved "https://registry.yarnpkg.com/expo/-/expo-37.0.5.tgz#65df7065af38e01bae6eb55d76db67b83126f82a" + integrity sha512-ipI+4yGxNoeJoWkuuZVJRvqN1tHvirFAPbJ304vUssoGGO3MrSNEZ3jlq+2IP0OSrCMwttk6cKVYM5ftAZSNwA== dependencies: "@babel/runtime" "^7.1.2" "@expo/vector-icons" "^10.0.2" @@ -2225,23 +2322,22 @@ expo@~36.0.0: "@types/invariant" "^2.2.29" "@types/lodash.zipobject" "^4.1.4" "@types/qs" "^6.5.1" - "@types/uuid-js" "^0.7.1" - "@unimodules/core" "~5.0.0" - "@unimodules/react-native-adapter" "~5.0.0" - babel-preset-expo "~8.0.0" + "@unimodules/core" "~5.1.0" + "@unimodules/react-native-adapter" "~5.2.0" + babel-preset-expo "~8.1.0" + badgin "^1.1.2" cross-spawn "^6.0.5" - expo-app-loader-provider "~8.0.0" - expo-asset "~8.0.0" - expo-constants "~8.0.0" - expo-error-recovery "~1.0.0" - expo-file-system "~8.0.0" - expo-font "~8.0.0" - expo-keep-awake "~8.0.0" - expo-linear-gradient "~8.0.0" - expo-location "~8.0.0" - expo-permissions "~8.0.0" - expo-sqlite "~8.0.0" - expo-web-browser "~8.0.0" + expo-asset "~8.1.3" + expo-constants "~9.0.0" + expo-error-recovery "~1.1.0" + expo-file-system "~8.1.0" + expo-font "~8.1.0" + expo-keep-awake "~8.1.0" + expo-linear-gradient "~8.1.0" + expo-location "~8.1.0" + expo-permissions "~8.1.0" + expo-sqlite "~8.1.0" + expo-web-browser "~8.1.0" fbemitter "^2.1.1" invariant "^2.2.2" lodash "^4.6.0" @@ -2250,19 +2346,20 @@ expo@~36.0.0: pretty-format "^23.6.0" prop-types "^15.6.0" qs "^6.5.0" - react-native-view-shot "3.0.2" + react-native-view-shot "3.1.2" serialize-error "^2.1.0" - unimodules-barcode-scanner-interface "~5.0.0" - unimodules-camera-interface "~5.0.0" - unimodules-constants-interface "~5.0.0" - unimodules-face-detector-interface "~5.0.0" - unimodules-file-system-interface "~5.0.0" - unimodules-font-interface "~5.0.0" - unimodules-image-loader-interface "~5.0.0" - unimodules-permissions-interface "~5.0.0" - unimodules-sensors-interface "~5.0.0" - unimodules-task-manager-interface "~5.0.0" - uuid-js "^0.7.5" + unimodules-app-loader "~1.0.0" + unimodules-barcode-scanner-interface "~5.1.0" + unimodules-camera-interface "~5.1.0" + unimodules-constants-interface "~5.1.0" + unimodules-face-detector-interface "~5.1.0" + unimodules-file-system-interface "~5.1.0" + unimodules-font-interface "~5.1.0" + unimodules-image-loader-interface "~5.1.0" + unimodules-permissions-interface "~5.1.0" + unimodules-sensors-interface "~5.1.0" + unimodules-task-manager-interface "~5.1.0" + uuid "^3.4.0" extend-shallow@^1.1.2: version "1.1.4" @@ -2319,11 +2416,6 @@ fancy-log@^1.3.2: parse-node-version "^1.0.0" time-stamp "^1.0.0" -fast-text-encoding@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz#3e5ce8293409cfaa7177a71b9ca84e1b1e6f25ef" - integrity sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ== - fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -2535,11 +2627,18 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-value@^2.0.2, get-value@^2.0.3, get-value@^2.0.6: +get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +git@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/git/-/git-0.1.5.tgz#9ef62df93f851c27542143bf52d1c68b1017ca15" + integrity sha1-nvYt+T+FHCdUIUO/UtHGixAXyhU= + dependencies: + mime "1.2.9" + glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -2567,13 +2666,6 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2620,6 +2712,11 @@ hermes-engine@^0.2.1: resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.2.1.tgz#25c0f1ff852512a92cb5c5cc47cf967e1e722ea2" integrity sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ== +hoist-non-react-statics@^2.3.1: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== + hosted-git-info@^2.1.4: version "2.8.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" @@ -2636,6 +2733,11 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +hyphenate-style-name@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" + integrity sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ== + i18n-js@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-3.5.1.tgz#9787450894059bec1af791123231e59898eb97c1" @@ -2684,6 +2786,13 @@ inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inline-style-prefixer@^5.0.3: + version "5.1.2" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-5.1.2.tgz#e5a5a3515e25600e016b71e39138971228486c33" + integrity sha512-PYUF+94gDfhy+LsQxM0g3d6Hge4l1pAqOSOiZuHWzMvQEGsbRQ/ck2WioLqrY2ZkHyPgVUXxn+hrkF7D6QUGbA== + dependencies: + css-in-js-utils "^2.0.0" + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -2704,7 +2813,7 @@ inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" -invariant@^2.2.2, invariant@^2.2.4: +invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -2740,6 +2849,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -2820,6 +2934,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3087,11 +3206,6 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -3515,6 +3629,11 @@ mime-types@~2.1.24: dependencies: mime-db "1.43.0" +mime@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.9.tgz#009cd40867bd35de521b3b966f04e2f8d4d13d09" + integrity sha1-AJzUCGe9Nd5SGzuWbwTi+NTRPQk= + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -3603,6 +3722,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nanoid@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.0.2.tgz#37e91e6f5277ce22335be473e2a5db1bd96dd026" + integrity sha512-WOjyy/xu3199NlQiQWlx7VbspSFlGtOxa1bRX9ebmXOnp1fje4bJfjPs1wLQ8jZbJUfD+yceJmw879ZSaVJkdQ== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -3676,6 +3800,11 @@ noop-fn@^1.0.0: resolved "https://registry.yarnpkg.com/noop-fn/-/noop-fn-1.0.0.tgz#5f33d47f13d2150df93e0cb036699e982f78ffbf" integrity sha1-XzPUfxPSFQ35PgywNmmemC94/78= +normalize-css-color@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" + integrity sha1-Apkel8zOxmI/5XOvu/Deah8+n40= + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -4047,11 +4176,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise-polyfill@^8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" - integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -4059,6 +4183,14 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prop-types@15.5.10: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + integrity sha1-J5ffwxJhguOpXj37suiT3ddFYVQ= + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -4086,6 +4218,15 @@ qs@^6.5.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== +query-string@^6.11.1: + version "6.12.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.12.0.tgz#fa0fe5b3ddf4d040d1236b80672949ab33d5cf80" + integrity sha512-aoiFW9ZU7jP8Itjqfpw80Qe7RoyCIhFrW522sdsp9LG92pat6CCG3d8qNZBaUi71FsEjIfLjx9Ky347FtVoqXA== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" @@ -4104,6 +4245,21 @@ react-devtools-core@^3.6.3: shell-quote "^1.6.1" ws "^3.3.1" +react-dom@16.9.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962" + integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.15.0" + +react-is@^16.13.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + react-is@^16.8.1, react-is@^16.8.4: version "16.12.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" @@ -4114,24 +4270,91 @@ react-native-app-link@^1.0.0: resolved "https://registry.yarnpkg.com/react-native-app-link/-/react-native-app-link-1.0.0.tgz#9de44a4676fd7d2879f26fc0691c48c0a85b4e2a" integrity sha512-x2eNaQqC5yaI+/A8lITt/0Nr/Kf0DV+xmGwIHtqRbKtDnSJfAEJQkV1X9XVygEq6FLRKQ9+IcSKNrw8TwiHAzQ== -react-native-debugger-open@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/react-native-debugger-open/-/react-native-debugger-open-0.3.24.tgz#c5e227ec216a518865a3df7f5dad9b5bc73f5349" - integrity sha512-qiq9fApbS8j/Q3tjaUM/a1K++mhl7RvAAHgoqZ+oB6tbGWohiBOWfBgf9f1l5CYC2DMl2UZzKMqMjMRd0rJxdg== +react-native-button-spinner@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/react-native-button-spinner/-/react-native-button-spinner-0.1.4.tgz#b4bd32bd5bbfaada6cc4bc7f88c9eb45eaf0fa84" + integrity sha512-6TlQR1rh73OILgAWHSG4QtjLLgo4dudJ1mMoqEzgnfN4S79QRbFBO+Gowgds34Jerd1pU1IloGbcmTcM+FgERA== dependencies: - chalk "^1.1.3" - es6-template "^1.0.4" - minimist "^1.2.0" - semver "^5.4.1" + prop-types "15.5.10" -react-native-view-shot@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/react-native-view-shot/-/react-native-view-shot-3.0.2.tgz#daccaec5b8038a680b17533ff7e72876e68c7d0d" - integrity sha512-JZOkGo2jzSX2b7N6N2uDr0wQjSz+QmBtY8jzeo0XJY6bLOfaY5nmWyYxDmDRoSpKiFkGTCkyhUqNnjo6lXOtEw== +react-native-gesture-handler@~1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.6.1.tgz#678e2dce250ed66e93af409759be22cd6375dd17" + integrity sha512-gQgIKhDiYf754yzhhliagLuLupvGb6ZyBdzYzr7aus3Fyi87TLOw63ers+r4kGw0h26oAWTAdHd34JnF4NeL6Q== + dependencies: + "@egjs/hammerjs" "^2.0.17" + hoist-non-react-statics "^2.3.1" + invariant "^2.2.4" + prop-types "^15.7.2" + +react-native-iphone-x-helper@^1.0.2, react-native-iphone-x-helper@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz#645e2ffbbb49e80844bb4cbbe34a126fda1e6772" + integrity sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ== + +react-native-maps@0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/react-native-maps/-/react-native-maps-0.26.1.tgz#6ec316259b38d259c8974448d894bd7a23101da4" + integrity sha512-p4VTB8YB5ZmOmDRCUpoHZkm05amZwhIo04AJMBbB9+JAR2PNNfpo0vceoWX0Mag4wnePkdzPomeWMplr/wimTg== + +react-native-reanimated@~1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.7.1.tgz#6363c7f3ebbabc56a05d5dccaf09d95f3b6a2d69" + integrity sha512-aBwhoQdH4shkeTPbi7vKcAwYOzBp/6zElEKuIOgby11TceoM7y5SgNImC3HbDWWld3QV2PA2AgQGwAy51WgF3Q== + dependencies: + fbjs "^1.0.0" + +react-native-responsive-fontsize@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/react-native-responsive-fontsize/-/react-native-responsive-fontsize-0.4.3.tgz#87bb9ea0093d74e30518547e443b3218abb5fa80" + integrity sha512-Xsy2Rmx6F6RP1YOY56NdttC/NdpeA1wX+aabTLXjeKw2MF0NilL9Vsqx3mf/gR8/PbU/c/FQMpCV2Ogt8rHNGQ== + dependencies: + react-native-iphone-x-helper "^1.0.2" + +react-native-safe-area-context@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-0.7.3.tgz#ad6bd4abbabe195332c53810e4ce5851eb21aa2a" + integrity sha512-9Uqu1vlXPi+2cKW/CW6OnHxA76mWC4kF3wvlqzq4DY8hn37AeiXtLFs2WkxH4yXQRrnJdP6ivc65Lz+MqwRZAA== + +react-native-screens@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.2.0.tgz#cc4cdf17426fdda97ad93a5e812a1899390f1978" + integrity sha512-a0VzxOWot7F9B/GQyDSssBRd3jUJazFnTQS61IiyReWB6aHlFhf3Xz10jBRoURXy1EMCDCHgenmTVTkKHpKyqQ== + dependencies: + debounce "^1.2.0" + +react-native-view-shot@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/react-native-view-shot/-/react-native-view-shot-3.1.2.tgz#8c8e84c67a4bc8b603e697dbbd59dbc9b4f84825" + integrity sha512-9u9fPtp6a52UMoZ/UCPrCjKZk8tnkI9To0Eh6yYnLKFEGkRZ7Chm6DqwDJbYJHeZrheCCopaD5oEOnRqhF4L2Q== -"react-native@https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz": +react-native-web@^0.11.7: + version "0.11.7" + resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.11.7.tgz#d173d5a9b58db23b6d442c4bc4c81e9939adac23" + integrity sha512-w1KAxX2FYLS2GAi3w3BnEZg/IUu7FdgHnLmFKHplRnHMV3u1OPB2EVA7ndNdfu7ds4Rn2OZjSXoNh6F61g3gkA== + dependencies: + array-find-index "^1.0.2" + create-react-class "^15.6.2" + debounce "^1.2.0" + deep-assign "^3.0.0" + fbjs "^1.0.0" + hyphenate-style-name "^1.0.2" + inline-style-prefixer "^5.0.3" + normalize-css-color "^1.0.2" + prop-types "^15.6.0" + react-timer-mixin "^0.13.4" + +react-native-webview@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-8.1.1.tgz#7f06546972fd4b2113ad3039837f461bab81cd15" + integrity sha512-Bt1vwdz/JMPh39SW2H64p9NrlfVHXrsFFmMGa1O6I9UBP0Y201EofnT3xK3uY4/7KMWeM372MHrmLpyp1AJ4dg== + dependencies: + escape-string-regexp "2.0.0" + invariant "2.2.4" + +"react-native@https://github.com/expo/react-native/archive/sdk-37.0.0.tar.gz": version "0.61.4" - resolved "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz#fc6d760c9395a1046632b17699718e40b91ea747" + resolved "https://github.com/expo/react-native/archive/sdk-37.0.0.tar.gz#daca56d4f78a3d3630bbc7175edb036245c8c5f7" dependencies: "@babel/runtime" "^7.0.0" "@react-native-community/cli" "^3.0.0-alpha.1" @@ -4168,6 +4391,11 @@ react-refresh@^0.4.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.2.tgz#54a277a6caaac2803d88f1d6f13c1dcfbd81e334" integrity sha512-kv5QlFFSZWo7OlJFNYbxRtY66JImuP2LcrFgyJfQaf85gSP+byzG21UbDQEYjU7f//ny8rwiEkO6py2Y+fEgAQ== +react-timer-mixin@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz#75a00c3c94c13abe29b43d63b4c65a88fc8264d3" + integrity sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q== + react@16.9.0: version "16.9.0" resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa" @@ -4413,7 +4641,7 @@ sax@^1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@0.15.0: +scheduler@0.15.0, scheduler@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e" integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg== @@ -4541,6 +4769,13 @@ simple-plist@^1.0.0: bplist-parser "0.2.0" plist "^3.0.1" +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -4560,11 +4795,6 @@ slice-ansi@^2.0.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -sliced@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" - integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= - slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -4660,6 +4890,11 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -4702,6 +4937,11 @@ stream-buffers@~2.2.0: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4762,11 +5002,6 @@ sudo-prompt@^9.0.0: resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" integrity sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA== -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4879,7 +5114,12 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -ua-parser-js@^0.7.18, ua-parser-js@^0.7.19: +typescript@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" + integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + +ua-parser-js@^0.7.18: version "0.7.21" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== @@ -4902,11 +5142,6 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unfetch@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" - integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -4930,55 +5165,60 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -unimodules-barcode-scanner-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-5.0.0.tgz#c8965299fb0d4d4c1f323e7c3dd0314eaeeda8c1" - integrity sha512-8irSCD2UOxojD+3KzrsoGe/TlNOF4NQuCtlhCY5PjDU3SoBAZzSmlLfkz6nYs4iovNila0FZu4vE6msm9Ehdtw== +unimodules-app-loader@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unimodules-app-loader/-/unimodules-app-loader-1.0.1.tgz#4358195cfa4d6026c71c7365362acf047f252bb0" + integrity sha512-GhPwdTp9WHRMRnM2ONQsHb0mciKU5tafohEX0+E4F7bSba89r+rJckWQnpDvHE7uyUaRtocLYcbk09vv2eg8ew== -unimodules-camera-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-camera-interface/-/unimodules-camera-interface-5.0.0.tgz#980b6ac221deea26badf92ee0baca91c546dc6b1" - integrity sha512-fe1Q1RZ6daKLtT5M87HdznBAV9qEsuHdPZVUWsLfizCXrHwCcRWErwb4RZoJC20Y11sj+kkLlE4W5fBJDn6/WA== +unimodules-barcode-scanner-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-5.1.0.tgz#6d24322b6db556b21eca99a130673c7e07d86559" + integrity sha512-FUau0mm4sBOGmlekltY0iAimJ438w3rtWiv6hcjE77Map527aCH3GyjnZSw78raVxe598EXhWHviuwRxOGINYg== -unimodules-constants-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-constants-interface/-/unimodules-constants-interface-5.0.0.tgz#0e224fde9cf809ed7a026672180e3c96dc186f34" - integrity sha512-s7Fwe3MV6BCj+Sexwfrj9mLAzJlhMfOd/ZM9PNZG10nlTRw8uDxQq0VH1m8NuJqV1Ma2BUmQM7H3lBPe4EysYg== +unimodules-camera-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-camera-interface/-/unimodules-camera-interface-5.1.0.tgz#ea43a8d05b7b1a9053e6b2281b428a1e80853661" + integrity sha512-uwBmZ3XS6vkdzRAmiDhUE/P7fafN7ufXoRuBDGoX/Q9kIiKg61D8HzTmhLMelvJFW6eCjoBJfh/zRyZ54qcjGg== -unimodules-face-detector-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-face-detector-interface/-/unimodules-face-detector-interface-5.0.0.tgz#4d8d63db954b849387e23b84df833945f21c11cc" - integrity sha512-6VrjHPu429tI54TrGZDQCNIdIXplSwmnJ4jsoVwpubluK+Z4pTRxbEuR3hKelGsvQCUzA38TDD94w7pGMwpe3A== +unimodules-constants-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-constants-interface/-/unimodules-constants-interface-5.1.0.tgz#916a8203a887b53cdbcd80b63bc6fd56c85ccfd2" + integrity sha512-TlrqwtKt2G0QH4Fn1ko3tRtLX+eUGSnCBuu1TiAGlsQ5FM/1+AGuJNftHdUwZY1DncIAlw6lhNW+amv0hw5ocg== -unimodules-file-system-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-file-system-interface/-/unimodules-file-system-interface-5.0.0.tgz#890cb2c11c55dfccb4abd51cb3b7142bfd15adea" - integrity sha512-3MRHOigD39geBA6opGkWBoi6nSbFnAr6OWNWiCNN3z1KyFEgeGUFJtTUhzZ/gjsipHubwcWgWBlBSSZKIA7qPQ== +unimodules-face-detector-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-face-detector-interface/-/unimodules-face-detector-interface-5.1.0.tgz#56b4e8c238d8b38f7937f2eb87212d5f87c463f9" + integrity sha512-0qDA6j1WvPM98q32aKvRdFhgSa9Nu8lqNUlrgE740UTYsAmfQl8lM/r2TOuR1k3dVC14q33YvLizSOYM5FLhAw== -unimodules-font-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-font-interface/-/unimodules-font-interface-5.0.0.tgz#c9d40f2fe94cc44493f4948d7701def6d2dacd04" - integrity sha512-S7S5JcOzqpEEt7fmqBkTkps5pg5InQRiu0KBv8txgQ6ZkW/OYjt4j5/fb6IkLB5RWEdm7Ji/xxmJLafRSj2bjA== +unimodules-file-system-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-file-system-interface/-/unimodules-file-system-interface-5.1.0.tgz#adcba6d6dbb58d889175425dedcbb1501f498ab7" + integrity sha512-G2QXhEXY3uHuDD50MWI7C/nesbVlf2C0QHTs+fAt1VpmWYWfdDaeqgO67f/QRz8FH8xm3ul9XvgP6nA+P0xfIg== -unimodules-image-loader-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-image-loader-interface/-/unimodules-image-loader-interface-5.0.0.tgz#59d706367b3df0b0078b1ef510397ff91338256f" - integrity sha512-HzT+eqp1jgm9/KiJfAlb5p4rykQlMMo6eI4S626vRtFcywCr6yKN7y5vYT5jmSxR2QIWY/jLGrX4DSt9dCbYbg== +unimodules-font-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-font-interface/-/unimodules-font-interface-5.1.0.tgz#953c1eb6e1f221f0c7d427d7aba78cce599b4b27" + integrity sha512-ZKycNecNN0xxGIo9Db2n8RYU+ijlc+hzpE5acVSiIlmMjTsiOODRLkF++yKsZxglGXn/blgtBLrcTQr4jJV4MQ== -unimodules-permissions-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-permissions-interface/-/unimodules-permissions-interface-5.0.0.tgz#567f3506875befa1f35a64654cf40a2ce9ae4036" - integrity sha512-ULtTRsGPSkXm1dELq0Eoq7RCReDYhu71NH2iWnnhmg8MZLykBInHw0bgcd0Fe7IYlRK3VXy8elldAIpFf3OKdw== +unimodules-image-loader-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-image-loader-interface/-/unimodules-image-loader-interface-5.1.0.tgz#40eeecb1d9409b51595b559023230ce50485b626" + integrity sha512-yU1OPWMtZ9QcW5CxLE1DYWrpJGZ1hRGdoFG3vyk4syUS8QsCPR0HXqcI6KlTpI6wcLA0+HtS+1CmgJCMCUDd4w== -unimodules-sensors-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-sensors-interface/-/unimodules-sensors-interface-5.0.0.tgz#42803532a95d9b6f13b4c08846d39a39144b3d7b" - integrity sha512-ilmeamfmbADXgq595VpJd+5tJLebfbwqMgwVxQ6/EX1niJkHgRk9iloYqx5QRKXwscwbGepIWXjMIv1/DNShQQ== +unimodules-permissions-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-permissions-interface/-/unimodules-permissions-interface-5.1.0.tgz#146062ee5cde1f00f34ba2692efab5f0c6f55d02" + integrity sha512-3Mz9A4a+iYF57ZeE99nidRPNM7dX3dzTZRvRQyCP5+CvsEmGNlLTIbTQ7fxKECoe3I6cjw94gNSirxIbwb3lDg== -unimodules-task-manager-interface@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unimodules-task-manager-interface/-/unimodules-task-manager-interface-5.0.0.tgz#a43b573d319dd84ee526d5eb77b540b3ce5d50e0" - integrity sha512-t5M4sgZBl3i6iUO8PAzjD90bh5RyAdQfLf1GqSVsV8BJVEr1uKokGm6t7lq3E+PCC41ulpeiVApdXPImJywJdg== +unimodules-sensors-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-sensors-interface/-/unimodules-sensors-interface-5.1.0.tgz#2d8f5f15a8b00b3f0aab59c3ff474f39735d634f" + integrity sha512-v8nRFRHtl4jFI1aiAmWurPKDuvboSxj0qoqpy/IB3xkkzBfw4KsZQ1b1yomwNbv9cCqIkFxaNAOzyrvVZrz/dA== + +unimodules-task-manager-interface@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unimodules-task-manager-interface/-/unimodules-task-manager-interface-5.1.0.tgz#49fe4431464faa576ba3453a1824030debbf8d35" + integrity sha512-t7FSWOdw4ev9SlqPzfw9rOKlFyryZbrcmjEr0n6HtPXqZ4NRfPqXtYSjoVWswGb3iGr3GPOIHZ/OQ6Z6StL1NA== union-value@^1.0.0: version "1.0.1" @@ -5021,6 +5261,13 @@ url-parse@^1.4.4: querystringify "^2.1.1" requires-port "^1.0.0" +use-subscription@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.4.1.tgz#edcbcc220f1adb2dd4fa0b2f61b6cc308e620069" + integrity sha512-7+IIwDG/4JICrWHL/Q/ZPK5yozEnvRm6vHImu0LKwQlmWGKeiF7mbAenLlK/cTNXrTtXHU/SFASQHzB6+oSJMQ== + dependencies: + object-assign "^4.1.1" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -5036,16 +5283,16 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid-js@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/uuid-js/-/uuid-js-0.7.5.tgz#6c886d02a53d2d40dcf25d91a170b4a7b25b94d0" - integrity sha1-bIhtAqU9LUDc8l2RoXC0p7JblNA= - uuid@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== +uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"