diff --git a/README.md b/README.md
index cd4feb8..8aab9d4 100644
--- a/README.md
+++ b/README.md
@@ -25,16 +25,6 @@ In the output, you'll find options to open the app in a
You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
-## Get a fresh project
-
-When you're ready, run:
-
-```bash
-npm run reset-project
-```
-
-This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
-
## Learn more
To learn more about developing your project with Expo, look at the following resources:
diff --git a/app.json b/app.json
index 5b1c46e..69195a0 100644
--- a/app.json
+++ b/app.json
@@ -5,7 +5,7 @@
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
- "scheme": "myapp",
+ "scheme": "kliko",
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/images/splash.png",
@@ -40,6 +40,12 @@
{
"RNMapboxMapsDownloadToken": "sk.eyJ1IjoibWFhcnRlbnZyOTgiLCJhIjoiY2x6Z21wZHdoMWN0dDJrczNxaHNiendrYiJ9.IiCMsfuqMa7YGQOepVoAiA"
}
+ ],
+ [
+ "expo-secure-store",
+ {
+ "faceIDPermission": "Allow $(PRODUCT_NAME) to access your Face ID biometric data."
+ }
]
],
"experiments": {
diff --git a/app/explore/category.tsx b/app/(explore)/category.tsx
similarity index 100%
rename from app/explore/category.tsx
rename to app/(explore)/category.tsx
diff --git a/app/(onboarding)/start.tsx b/app/(onboarding)/start.tsx
new file mode 100644
index 0000000..634efd8
--- /dev/null
+++ b/app/(onboarding)/start.tsx
@@ -0,0 +1,128 @@
+import {Stack} from 'expo-router';
+import {StyleSheet, TextInput, TouchableOpacity} from 'react-native';
+
+import {ThemedText} from '@/components/ThemedText';
+import {ThemedView} from '@/components/ThemedView';
+import {useToken} from '@/context/AppProvider';
+import {Colors} from '@/constants/Colors';
+import React from 'react';
+import {useColorScheme} from '@/hooks/useColorScheme';
+import {Message} from '@/services/message';
+import {Request} from '@/services/request';
+import { router } from 'expo-router';
+
+export default function OnboardStartScreen() {
+ const colorScheme = useColorScheme() ?? 'light';
+ const {setToken} = useToken();
+ const [name, setName] = React.useState('Maarten');
+ const [zipcode, setZipcode] = React.useState('6715GA');
+ const [houseNumber, setHouseNumber] = React.useState('3');
+
+ const start = () => {
+ if (name === '' || zipcode === '' || houseNumber === '') {
+ Message.error('Niet alle gegevens zijn ingevuld!');
+
+ return;
+ }
+
+ // TODO: Get device name
+ const deviceName = 'Test';
+
+ Request
+ .post('sessions/create', {
+ name: name,
+ zipcode: zipcode,
+ houseNumber: houseNumber,
+ device: deviceName,
+ })
+ .then((response) => {
+ if (!response.success) {
+ Message.error(response.message);
+ } else {
+ const token = response.token;
+
+ setToken(token);
+ router.replace("/(tabs)");
+
+ Message.success(response.message);
+ }
+ });
+ }
+
+ return (
+ <>
+
+
+
+ Welkom bij
+ Kliko
+
+
+
+ Wat is je naam?
+
+
+
+
+ Wat is je postcode en huisnummer?
+
+
+
+
+
+
+ Start
+
+
+ >
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ padding: 20,
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ heading: {
+ marginBottom: 30,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ inputContainer: {
+ paddingTop: 20,
+ },
+ input: {
+ width: 250,
+ borderWidth: 1,
+ padding: 10,
+ paddingLeft: 20,
+ borderRadius: 3,
+ marginBottom: 10,
+ },
+ button: {
+ borderRadius: 5,
+ paddingTop: 10,
+ paddingBottom: 10,
+ paddingLeft: 40,
+ paddingRight: 40,
+ marginTop: 30,
+ },
+});
diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx
index 15152b8..48a45dd 100644
--- a/app/(tabs)/_layout.tsx
+++ b/app/(tabs)/_layout.tsx
@@ -8,6 +8,8 @@ import { useColorScheme } from '@/hooks/useColorScheme';
export default function TabLayout() {
const colorScheme = useColorScheme();
+ console.log('is layout rendering?');
+
return (
{
await AsyncStorage.setItem('activeCategory', JSON.stringify(item));
- router.push('/explore/category');
+ router.push('/(explore)/category');
};
return (
diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx
index d174fe0..5dd612f 100644
--- a/app/(tabs)/index.tsx
+++ b/app/(tabs)/index.tsx
@@ -1,4 +1,4 @@
-import {StyleSheet, Platform, ScrollView, SafeAreaView, View, StatusBar, Text} from 'react-native';
+import {StyleSheet, ScrollView, SafeAreaView, View, StatusBar} from 'react-native';
// @ts-ignore
import CalendarPicker from 'react-native-calendar-picker';
@@ -6,11 +6,19 @@ import {ThemedText} from '@/components/ThemedText';
import {ThemedView} from '@/components/ThemedView';
import {Colors} from '@/constants/Colors';
import {useColorScheme} from '@/hooks/useColorScheme';
-import React from 'react';
+import React, {useEffect} from 'react';
import Ionicons from '@expo/vector-icons/Ionicons';
+import {useToken} from '@/context/AppProvider';
export default function HomeScreen() {
const colorScheme = useColorScheme() ?? 'light';
+ const {token, isLoading} = useToken();
+
+ console.log('app token', token);
+
+ useEffect(() => {
+ console.log('token found', token);
+ }, [token]);
return (
diff --git a/app/+not-found.tsx b/app/+not-found.tsx
deleted file mode 100644
index 963b04f..0000000
--- a/app/+not-found.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Link, Stack } from 'expo-router';
-import { StyleSheet } from 'react-native';
-
-import { ThemedText } from '@/components/ThemedText';
-import { ThemedView } from '@/components/ThemedView';
-
-export default function NotFoundScreen() {
- return (
- <>
-
-
- This screen doesn't exist.
-
- Go to home screen!
-
-
- >
- );
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- padding: 20,
- },
- link: {
- marginTop: 15,
- paddingVertical: 15,
- },
-});
diff --git a/app/_layout.tsx b/app/_layout.tsx
index 3341e25..e41cdf0 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -1,25 +1,28 @@
-import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
-import { useFonts } from 'expo-font';
-import { Stack } from 'expo-router';
+import {useFonts} from 'expo-font';
+import {Slot, Stack} from 'expo-router';
import * as SplashScreen from 'expo-splash-screen';
-import { useEffect } from 'react';
+import {useEffect} from 'react';
import 'react-native-reanimated';
-import { useColorScheme } from '@/hooks/useColorScheme';
+import {AppProvider} from '@/context/AppProvider';
+import {DarkTheme, DefaultTheme, ThemeProvider} from '@react-navigation/native';
+import Toast from 'react-native-toast-message';
import {AutocompleteDropdownContextProvider} from 'react-native-autocomplete-dropdown';
+import {useColorScheme} from '@/hooks/useColorScheme';
// Prevent the splash screen from auto-hiding before asset loading is complete.
-SplashScreen.preventAutoHideAsync();
+// SplashScreen.preventAutoHideAsync();
export default function RootLayout() {
const colorScheme = useColorScheme();
+
const [loaded] = useFonts({
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
});
useEffect(() => {
if (loaded) {
- SplashScreen.hideAsync();
+ // SplashScreen.hideAsync();
}
}, [loaded]);
@@ -28,14 +31,16 @@ export default function RootLayout() {
}
return (
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
);
}
diff --git a/app/index.tsx b/app/index.tsx
new file mode 100644
index 0000000..fe4f9c1
--- /dev/null
+++ b/app/index.tsx
@@ -0,0 +1,31 @@
+import {Redirect, Stack} from 'expo-router';
+import {StyleSheet, Text, TextInput, TouchableOpacity} from 'react-native';
+
+import {ThemedText} from '@/components/ThemedText';
+import {ThemedView} from '@/components/ThemedView';
+import {useToken} from '@/context/AppProvider';
+import {Colors} from '@/constants/Colors';
+import React, {useEffect} from 'react';
+import {useColorScheme} from '@/hooks/useColorScheme';
+import {Message} from '@/services/message';
+import {Request} from '@/services/request';
+import { router } from 'expo-router';
+
+export default function OnboardStartScreen() {
+ const {token, isLoading} = useToken();
+
+ // You can keep the splash screen open, or render a loading screen like we do here.
+ if (isLoading) {
+ return (
+
+ Laden...
+
+ );
+ }
+
+ if (!token) {
+ return ;
+ }
+
+ return ;
+}
diff --git a/components/Collapsible.tsx b/components/Collapsible.tsx
deleted file mode 100644
index c326473..0000000
--- a/components/Collapsible.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import Ionicons from '@expo/vector-icons/Ionicons';
-import { PropsWithChildren, useState } from 'react';
-import { StyleSheet, TouchableOpacity, useColorScheme } from 'react-native';
-
-import { ThemedText } from '@/components/ThemedText';
-import { ThemedView } from '@/components/ThemedView';
-import { Colors } from '@/constants/Colors';
-
-export function Collapsible({ children, title }: PropsWithChildren & { title: string }) {
- const [isOpen, setIsOpen] = useState(false);
- const theme = useColorScheme() ?? 'light';
-
- return (
-
- setIsOpen((value) => !value)}
- activeOpacity={0.8}>
-
- {title}
-
- {isOpen && {children}}
-
- );
-}
-
-const styles = StyleSheet.create({
- heading: {
- flexDirection: 'row',
- alignItems: 'center',
- gap: 6,
- },
- content: {
- marginTop: 6,
- marginLeft: 24,
- },
-});
diff --git a/components/ExternalLink.tsx b/components/ExternalLink.tsx
deleted file mode 100644
index 8f05675..0000000
--- a/components/ExternalLink.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Link } from 'expo-router';
-import { openBrowserAsync } from 'expo-web-browser';
-import { type ComponentProps } from 'react';
-import { Platform } from 'react-native';
-
-type Props = Omit, 'href'> & { href: string };
-
-export function ExternalLink({ href, ...rest }: Props) {
- return (
- {
- if (Platform.OS !== 'web') {
- // Prevent the default behavior of linking to the default browser on native.
- event.preventDefault();
- // Open the link in an in-app browser.
- await openBrowserAsync(href);
- }
- }}
- />
- );
-}
diff --git a/components/ParallaxScrollView.tsx b/components/ParallaxScrollView.tsx
deleted file mode 100644
index 0a35419..0000000
--- a/components/ParallaxScrollView.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import type { PropsWithChildren, ReactElement } from 'react';
-import { StyleSheet, useColorScheme } from 'react-native';
-import Animated, {
- interpolate,
- useAnimatedRef,
- useAnimatedStyle,
- useScrollViewOffset,
-} from 'react-native-reanimated';
-
-import { ThemedView } from '@/components/ThemedView';
-
-const HEADER_HEIGHT = 250;
-
-type Props = PropsWithChildren<{
- headerImage: ReactElement;
- headerBackgroundColor: { dark: string; light: string };
-}>;
-
-export default function ParallaxScrollView({
- children,
- headerImage,
- headerBackgroundColor,
-}: Props) {
- const colorScheme = useColorScheme() ?? 'light';
- const scrollRef = useAnimatedRef();
- const scrollOffset = useScrollViewOffset(scrollRef);
-
- const headerAnimatedStyle = useAnimatedStyle(() => {
- return {
- transform: [
- {
- translateY: interpolate(
- scrollOffset.value,
- [-HEADER_HEIGHT, 0, HEADER_HEIGHT],
- [-HEADER_HEIGHT / 2, 0, HEADER_HEIGHT * 0.75]
- ),
- },
- {
- scale: interpolate(scrollOffset.value, [-HEADER_HEIGHT, 0, HEADER_HEIGHT], [2, 1, 1]),
- },
- ],
- };
- });
-
- return (
-
-
-
- {headerImage}
-
- {children}
-
-
- );
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- },
- header: {
- height: 250,
- overflow: 'hidden',
- },
- content: {
- flex: 1,
- padding: 32,
- gap: 16,
- overflow: 'hidden',
- },
-});
diff --git a/components/navigation/TabBarIcon.tsx b/components/navigation/TabBarIcon.tsx
index d2222cb..2de0ed7 100644
--- a/components/navigation/TabBarIcon.tsx
+++ b/components/navigation/TabBarIcon.tsx
@@ -1,4 +1,4 @@
-// You can explore the built-in icon families and icons on the web at https://icons.expo.fyi/
+// You can (explore) the built-in icon families and icons on the web at https://icons.expo.fyi/
import Ionicons from '@expo/vector-icons/Ionicons';
import { type IconProps } from '@expo/vector-icons/build/createIconSet';
diff --git a/context/AppProvider.tsx b/context/AppProvider.tsx
new file mode 100644
index 0000000..0aa801c
--- /dev/null
+++ b/context/AppProvider.tsx
@@ -0,0 +1,31 @@
+import {createContext, PropsWithChildren, useContext} from "react";
+import {useStorageState} from '@/context/UseStorageState';
+
+type TokenType = {
+ token: string | null;
+ setToken: (token: string | null) => void;
+ isLoading: boolean;
+}
+
+const TokenContext = createContext({
+ setToken: () => {
+ },
+ token: null,
+ isLoading: true,
+});
+
+export const useToken = () => useContext(TokenContext);
+
+export function AppProvider({ children }: PropsWithChildren) {
+ const [[isLoading, token], setSession] = useStorageState('appToken');
+
+ const tokenContext: TokenType = {
+ token,
+ setToken: (token) => {
+ setSession(token);
+ },
+ isLoading,
+ };
+
+ return {children};
+}
\ No newline at end of file
diff --git a/context/UseStorageState.tsx b/context/UseStorageState.tsx
new file mode 100644
index 0000000..805366c
--- /dev/null
+++ b/context/UseStorageState.tsx
@@ -0,0 +1,67 @@
+import * as SecureStore from 'expo-secure-store';
+import * as React from 'react';
+import { Platform } from 'react-native';
+
+type UseStateHook = [[boolean, T | null], (value: T | null) => void];
+
+function useAsyncState(
+ initialValue: [boolean, T | null] = [true, null],
+): UseStateHook {
+ return React.useReducer(
+ (state: [boolean, T | null], action: T | null = null): [boolean, T | null] => [false, action],
+ initialValue
+ ) as UseStateHook;
+}
+
+export async function setStorageItemAsync(key: string, value: string | null) {
+ if (Platform.OS === 'web') {
+ try {
+ if (value === null) {
+ localStorage.removeItem(key);
+ } else {
+ localStorage.setItem(key, value);
+ }
+ } catch (e) {
+ console.error('Local storage is unavailable:', e);
+ }
+ } else {
+ if (value == null) {
+ await SecureStore.deleteItemAsync(key);
+ } else {
+ await SecureStore.setItemAsync(key, value);
+ }
+ }
+}
+
+export function useStorageState(key: string): UseStateHook {
+ // Public
+ const [state, setState] = useAsyncState();
+
+ // Get
+ React.useEffect(() => {
+ if (Platform.OS === 'web') {
+ try {
+ if (typeof localStorage !== 'undefined') {
+ setState(localStorage.getItem(key));
+ }
+ } catch (e) {
+ console.error('Local storage is unavailable:', e);
+ }
+ } else {
+ SecureStore.getItemAsync(key).then((value: string | null) => {
+ setState(value);
+ });
+ }
+ }, [key]);
+
+ // Set
+ const setValue = React.useCallback(
+ (value: string | null) => {
+ setState(value);
+ setStorageItemAsync(key, value);
+ },
+ [key]
+ );
+
+ return [state, setValue];
+}
diff --git a/package.json b/package.json
index 4ae0886..72f1882 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"expo-font": "~12.0.9",
"expo-linking": "~6.3.1",
"expo-router": "~3.5.20",
+ "expo-secure-store": "~13.0.2",
"expo-splash-screen": "~0.27.5",
"expo-status-bar": "~1.12.1",
"expo-system-ui": "~3.0.7",
@@ -47,6 +48,7 @@
"react-native-safe-area-context": "4.10.5",
"react-native-screens": "3.31.1",
"react-native-svg": "15.2.0",
+ "react-native-toast-message": "^2.2.0",
"react-native-web": "~0.19.10",
"react-native-webview": "13.8.6"
},
diff --git a/services/message.tsx b/services/message.tsx
new file mode 100644
index 0000000..a307301
--- /dev/null
+++ b/services/message.tsx
@@ -0,0 +1,45 @@
+import Toast from 'react-native-toast-message';
+
+export class Message {
+ /**
+ * Set success message
+ *
+ * @param message
+ */
+ static success(message: string) {
+ Message.send('success', message);
+ }
+
+ /**
+ * Send error message
+ *
+ * @param message
+ */
+ static error(message: string) {
+ Message.send('error', message);
+ }
+
+ /**
+ * Send info message
+ *
+ * @param message
+ */
+ static info(message: string) {
+ Message.send('info', message);
+ }
+
+ /**
+ * Send message
+ *
+ * @param type
+ * @param message
+ */
+ static send(type: string, message: string) {
+ Toast.show({
+ type: type,
+ text1: message,
+ position: 'bottom',
+ })
+ }
+
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 9ebea5b..1f1a498 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -25,10 +25,10 @@
"@babel/highlight" "^7.24.7"
picocolors "^1.0.0"
-"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.8":
- version "7.25.0"
- resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz"
- integrity sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==
+"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2":
+ version "7.25.2"
+ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz"
+ integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==
"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.23.9":
version "7.24.9"
@@ -69,11 +69,11 @@
"@babel/types" "^7.24.7"
"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8":
- version "7.24.8"
- resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz"
- integrity sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==
+ version "7.25.2"
+ resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz"
+ integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==
dependencies:
- "@babel/compat-data" "^7.24.8"
+ "@babel/compat-data" "^7.25.2"
"@babel/helper-validator-option" "^7.24.8"
browserslist "^4.23.1"
lru-cache "^5.1.1"
@@ -233,10 +233,12 @@
js-tokens "^4.0.0"
picocolors "^1.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0":
- version "7.25.0"
- resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz"
- integrity sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3":
+ version "7.25.3"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz"
+ integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==
+ dependencies:
+ "@babel/types" "^7.25.2"
"@babel/plugin-proposal-async-generator-functions@^7.0.0":
version "7.20.7"
@@ -541,11 +543,11 @@
"@babel/traverse" "^7.25.1"
"@babel/plugin-transform-literals@^7.0.0":
- version "7.24.7"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz"
- integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==
+ version "7.25.2"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz"
+ integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.8"
"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.7":
version "7.24.8"
@@ -788,22 +790,22 @@
"@babel/types" "^7.25.0"
"@babel/traverse@^7.20.0", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1":
- version "7.25.1"
- resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz"
- integrity sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==
+ version "7.25.3"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz"
+ integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==
dependencies:
"@babel/code-frame" "^7.24.7"
"@babel/generator" "^7.25.0"
- "@babel/parser" "^7.25.0"
+ "@babel/parser" "^7.25.3"
"@babel/template" "^7.25.0"
- "@babel/types" "^7.25.0"
+ "@babel/types" "^7.25.2"
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9", "@babel/types@^7.25.0", "@babel/types@^7.3.3":
- version "7.25.0"
- resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz"
- integrity sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==
+"@babel/types@^7.0.0", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.3.3":
+ version "7.25.2"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz"
+ integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==
dependencies:
"@babel/helper-string-parser" "^7.24.8"
"@babel/helper-validator-identifier" "^7.24.7"
@@ -833,7 +835,7 @@
"@expo/cli@0.18.26":
version "0.18.26"
- resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.18.26.tgz#56e60eaae12b82a8aeb33f2050bbfb6683f87187"
+ resolved "https://registry.npmjs.org/@expo/cli/-/cli-0.18.26.tgz"
integrity sha512-u9bTTXgcjaTloE9CHwxgrb8Me/Al4jiPykbVQpJydakH3GsIZfHy1zaLc7O39CoLjRz37WWi6Y5ZdgtQw9dCPQ==
dependencies:
"@babel/runtime" "^7.20.0"
@@ -1022,7 +1024,7 @@
"@expo/metro-config@0.18.10":
version "0.18.10"
- resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.18.10.tgz#2b0ec353c38802dd89028432c3a463804df94f24"
+ resolved "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.10.tgz"
integrity sha512-HTYQqKfV0JSuRp5aDvrPHezj5udXOWoXqHOjfTSnce2m13j6D0yYXTJNaKRhlgpPBrkg5DL7z1fL3zwDUpLM4w==
dependencies:
"@babel/core" "^7.20.0"
@@ -1576,7 +1578,7 @@
"@react-native-async-storage/async-storage@1.23.1":
version "1.23.1"
- resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.23.1.tgz#cad3cd4fab7dacfe9838dce6ecb352f79150c883"
+ resolved "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.23.1.tgz"
integrity sha512-Qd2kQ3yi6Y3+AcUlrHxSLlnBvpdCEMVGFlVBneVOjaFaPU61g1huc38g339ysXspwY1QZA2aNhrk/KlHGO+ewA==
dependencies:
merge-options "^3.0.4"
@@ -1669,7 +1671,7 @@
"@react-native-community/cli-platform-apple@14.0.0":
version "14.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0.tgz#7050af6fbc01b4ebe72e1bdcb48d188cbbf1b9ef"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.0.0.tgz"
integrity sha512-WniJL8vR4MeIsjqio2hiWWuUYUJEL3/9TDL5aXNwG68hH3tYgK3742+X9C+vRzdjTmf5IKc/a6PwLsdplFeiwQ==
dependencies:
"@react-native-community/cli-tools" "14.0.0"
@@ -1688,7 +1690,7 @@
"@react-native-community/cli-platform-ios@^14.0.0":
version "14.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0.tgz#7c7c393a13415bf61aaad82f1a3583c30afb110e"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.0.0.tgz"
integrity sha512-8kxGv7mZ5nGMtueQDq+ndu08f0ikf3Zsqm3Ix8FY5KCXpSgP14uZloO2GlOImq/zFESij+oMhCkZJGggpWpfAw==
dependencies:
"@react-native-community/cli-platform-apple" "14.0.0"
@@ -1727,7 +1729,7 @@
"@react-native-community/cli-tools@14.0.0":
version "14.0.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-14.0.0.tgz#07b57a8942a131618c198e3b64fb1ec846cd631d"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.0.0.tgz"
integrity sha512-L7GX5hyYYv0ZWbAyIQKzhHuShnwDqlKYB0tqn57wa5riGCaxYuRPTK+u4qy+WRCye7+i8M4Xj6oQtSd4z0T9cA==
dependencies:
appdirsjs "^1.2.4"
@@ -2057,7 +2059,7 @@
"@rnmapbox/maps@^10.1.28":
version "10.1.28"
- resolved "https://registry.yarnpkg.com/@rnmapbox/maps/-/maps-10.1.28.tgz#be2f8fafc9772f3eb9967c78f6b0d36942d4b439"
+ resolved "https://registry.npmjs.org/@rnmapbox/maps/-/maps-10.1.28.tgz"
integrity sha512-+jc66jlQFEsJ1Uny8vF07TfZBk1h3TH61URn6umGRMsIZvPSJLT6LKt8Jn3XZkVJFXcA3PjQ4MDaxCbZ4/qeRQ==
dependencies:
"@turf/along" "6.5.0"
@@ -2131,7 +2133,7 @@
"@turf/along@6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/along/-/along-6.5.0.tgz#ab12eec58a14de60fe243a62d31a474f415c8fef"
+ resolved "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz"
integrity sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==
dependencies:
"@turf/bearing" "^6.5.0"
@@ -2142,7 +2144,7 @@
"@turf/bbox@*":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-7.0.0.tgz#1f892bb71f429aaa1d746c92d901567d5667f9b2"
+ resolved "https://registry.npmjs.org/@turf/bbox/-/bbox-7.0.0.tgz"
integrity sha512-IyXG5HAsn6IZLdAtQo7aWYccjU5WsV+uzIzhGaXrh/qTVylSYmRiWgLdiekHZVED9nv9r7D/EJUMOT4zyA6POA==
dependencies:
"@turf/helpers" "^7.0.0"
@@ -2151,7 +2153,7 @@
"@turf/bearing@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.5.0.tgz#462a053c6c644434bdb636b39f8f43fb0cd857b0"
+ resolved "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz"
integrity sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==
dependencies:
"@turf/helpers" "^6.5.0"
@@ -2159,7 +2161,7 @@
"@turf/destination@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-6.5.0.tgz#30a84702f9677d076130e0440d3223ae503fdae1"
+ resolved "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz"
integrity sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==
dependencies:
"@turf/helpers" "^6.5.0"
@@ -2167,7 +2169,7 @@
"@turf/distance@6.5.0", "@turf/distance@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.5.0.tgz#21f04d5f86e864d54e2abde16f35c15b4f36149a"
+ resolved "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz"
integrity sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==
dependencies:
"@turf/helpers" "^6.5.0"
@@ -2175,12 +2177,12 @@
"@turf/helpers@6.5.0", "@turf/helpers@6.x", "@turf/helpers@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e"
+ resolved "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz"
integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==
"@turf/helpers@^7.0.0":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-7.0.0.tgz#22dc2335e8b82db2a21b8c873ea10b3fb3dc5158"
+ resolved "https://registry.npmjs.org/@turf/helpers/-/helpers-7.0.0.tgz"
integrity sha512-vwZvxRuyjGpGXvhXSbT9mX6FK92dBMLWbMbDJ/MXQUPx17ReVPFc+6N6IcxAzZfkiCnqy7vpuq0c+/TTrQxIiA==
dependencies:
deep-equal "^2.2.3"
@@ -2188,14 +2190,14 @@
"@turf/invariant@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f"
+ resolved "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz"
integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==
dependencies:
"@turf/helpers" "^6.5.0"
"@turf/length@6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/length/-/length-6.5.0.tgz#ff4e9072d5f997e1c32a1311d214d184463f83fa"
+ resolved "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz"
integrity sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==
dependencies:
"@turf/distance" "^6.5.0"
@@ -2204,7 +2206,7 @@
"@turf/line-intersect@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.5.0.tgz#dea48348b30c093715d2195d2dd7524aee4cf020"
+ resolved "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz"
integrity sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==
dependencies:
"@turf/helpers" "^6.5.0"
@@ -2215,7 +2217,7 @@
"@turf/line-segment@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.5.0.tgz#ee73f3ffcb7c956203b64ed966d96af380a4dd65"
+ resolved "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz"
integrity sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==
dependencies:
"@turf/helpers" "^6.5.0"
@@ -2224,21 +2226,21 @@
"@turf/meta@6.x", "@turf/meta@^6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.5.0.tgz#b725c3653c9f432133eaa04d3421f7e51e0418ca"
+ resolved "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz"
integrity sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==
dependencies:
"@turf/helpers" "^6.5.0"
"@turf/meta@^7.0.0":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-7.0.0.tgz#85f91ad874cccd2c2c3d361917e200912597c11b"
+ resolved "https://registry.npmjs.org/@turf/meta/-/meta-7.0.0.tgz"
integrity sha512-cEXr13uFwhXq5mFBy0IK1U/QepE5qgk3zXpBYsla3lYV7cB83Vh+NNUR+r0/w/QoJqest1TG4H20F9tGYWPi/g==
dependencies:
"@turf/helpers" "^7.0.0"
"@turf/nearest-point-on-line@6.5.0":
version "6.5.0"
- resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz#8e1cd2cdc0b5acaf4c8d8b3b33bb008d3cb99e7b"
+ resolved "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz"
integrity sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==
dependencies:
"@turf/bearing" "^6.5.0"
@@ -2289,12 +2291,12 @@
"@types/geojson@7946.0.8":
version "7946.0.8"
- resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca"
+ resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz"
integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==
"@types/geojson@^7946.0.7":
version "7946.0.14"
- resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613"
+ resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz"
integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==
"@types/graceful-fs@^4.1.3":
@@ -2552,7 +2554,7 @@ ajv-keywords@^5.1.0:
ajv@8.11.0:
version "8.11.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz"
integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
dependencies:
fast-deep-equal "^3.1.1"
@@ -3584,7 +3586,7 @@ dayjs@^1.8.15:
debounce@^1.2.0:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
+ resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
debug@2.6.9, debug@^2.2.0, debug@^2.6.9:
@@ -3630,7 +3632,7 @@ dedent@^1.0.0:
deep-equal@^2.2.3:
version "2.2.3"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1"
+ resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz"
integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==
dependencies:
array-buffer-byte-length "^1.0.0"
@@ -4006,7 +4008,7 @@ es-errors@^1.2.1, es-errors@^1.3.0:
es-get-iterator@^1.1.3:
version "1.1.3"
- resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
+ resolved "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz"
integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
dependencies:
call-bind "^1.0.2"
@@ -4173,7 +4175,7 @@ expo-constants@~16.0.0, expo-constants@~16.0.2:
expo-dev-client@~4.0.21:
version "4.0.21"
- resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-4.0.21.tgz#27a92cea712fdcbe213eadc9ae828c136f5086e8"
+ resolved "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-4.0.21.tgz"
integrity sha512-+zuVsKyp5tXTQUwDnTjtaOLf3TdmZ483Il9slg/LO15EsEFpl0zwI42DrQpzYmv617cgvywmp6iybGXjV3eZbQ==
dependencies:
expo-dev-launcher "4.0.23"
@@ -4184,7 +4186,7 @@ expo-dev-client@~4.0.21:
expo-dev-launcher@4.0.23:
version "4.0.23"
- resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-4.0.23.tgz#e9c8d1ee32f1cdc5522c35a6733ee656a3801984"
+ resolved "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-4.0.23.tgz"
integrity sha512-XG9VyFUoslBsBpJqtuOsen93u3hEw4rK7VSNqz8g+d8+AmHBv2rSuQheirPfxuSrLqGm49/ybWkHYqfs8CdlQw==
dependencies:
ajv "8.11.0"
@@ -4195,12 +4197,12 @@ expo-dev-launcher@4.0.23:
expo-dev-menu-interface@1.8.3:
version "1.8.3"
- resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.8.3.tgz#8c1262e29e0124fc5932a129c95b36de56656b20"
+ resolved "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.8.3.tgz"
integrity sha512-QM0LRozeFT5Ek0N7XpV93M+HMdEKRLEOXn0aW5M3uoUlnqC1+PLtF3HMy3k3hMKTTE/kJ1y1Z7akH07T0lunCQ==
expo-dev-menu@5.0.17:
version "5.0.17"
- resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-5.0.17.tgz#becb333cf11749b98c8366980ce7fc29562b566d"
+ resolved "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-5.0.17.tgz"
integrity sha512-BnFSd6PKDaJenRKn2C4X50dWyqvvkVz9pE/6IKuUvGIsshkk9pCoZvsFOlJjM61/ojz1KXyY9O1FUPPI7B1A7w==
dependencies:
expo-dev-menu-interface "1.8.3"
@@ -4220,7 +4222,7 @@ expo-font@~12.0.9:
expo-json-utils@~0.13.0:
version "0.13.1"
- resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.13.1.tgz#e49b697198e11c573d346f08ab91c467095934a9"
+ resolved "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.13.1.tgz"
integrity sha512-mlfaSArGVb+oJmUcR22jEONlgPp0wj4iNIHfQ2je9Q8WTOqMc0Ws9tUciz3JdJnhffdHqo/k8fpvf0IRmN5HPA==
expo-keep-awake@~13.0.2:
@@ -4238,7 +4240,7 @@ expo-linking@~6.3.1:
expo-manifests@~0.14.0:
version "0.14.3"
- resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.14.3.tgz#17854c45c8c9ced4a07031ae0838c38ac3115fbc"
+ resolved "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.14.3.tgz"
integrity sha512-L3b5/qocBPiQjbW0cpOHfnqdKZbTJS7sA3mgeDJT+mWga/xYsdpma1EfNmsuvrOzjLGjStr1k1fceM9Bl49aqQ==
dependencies:
"@expo/config" "~9.0.0"
@@ -4257,14 +4259,14 @@ expo-modules-autolinking@1.11.1:
expo-modules-core@1.12.20:
version "1.12.20"
- resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.12.20.tgz#072dea10791f32ea5d1d3b15a7d5fd1984173429"
+ resolved "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.20.tgz"
integrity sha512-CCXjlgT8lDAufgt912P1W7TwD+KAylfIttc1Doh1a0hAfkdkUsDRmrgthnYrrxEo2ECVpbaB71Epp1bnZ1rRrA==
dependencies:
invariant "^2.2.4"
expo-router@~3.5.20:
version "3.5.20"
- resolved "https://registry.yarnpkg.com/expo-router/-/expo-router-3.5.20.tgz#c597a68f14149eb7ba8ebb85cfc22b43bd9dc7c5"
+ resolved "https://registry.npmjs.org/expo-router/-/expo-router-3.5.20.tgz"
integrity sha512-walzIxz6okN/Ppq6DjrEsCiS99PMAz5GykkCSGyhxmweVWtD6j1E5Eqp0n6KVL1kcxDTSFAwypf/gezkaxLx6A==
dependencies:
"@expo/metro-runtime" "3.2.1"
@@ -4277,6 +4279,11 @@ expo-router@~3.5.20:
react-native-helmet-async "2.0.4"
schema-utils "^4.0.1"
+expo-secure-store@~13.0.2:
+ version "13.0.2"
+ resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-13.0.2.tgz#ba8f6076fc38062a28bb2ce5edab9cd28ef88598"
+ integrity sha512-3QYgoneo8p8yeeBPBiAfokNNc2xq6+n8+Ob4fAlErEcf4H7Y72LH+K/dx0nQyWau2ZKZUXBxyyfuHFyVKrEVLg==
+
expo-splash-screen@0.27.5, expo-splash-screen@~0.27.5:
version "0.27.5"
resolved "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.5.tgz"
@@ -4299,7 +4306,7 @@ expo-system-ui@~3.0.7:
expo-updates-interface@~0.16.2:
version "0.16.2"
- resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz#ad1ac2ca8ee5a8cc84052ea3c18a11da64da569b"
+ resolved "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz"
integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==
expo-web-browser@~13.0.3:
@@ -4309,7 +4316,7 @@ expo-web-browser@~13.0.3:
expo@~51.0.24:
version "51.0.24"
- resolved "https://registry.yarnpkg.com/expo/-/expo-51.0.24.tgz#fb64a85ded249d3f64e9aecb40b9fa9e200b4bb4"
+ resolved "https://registry.npmjs.org/expo/-/expo-51.0.24.tgz"
integrity sha512-HoOuNIWXzS6Gxifcb0N+qRt5K6iR9YitQaWIVNB8elyupvQdyI566IMgMBiO45NgpO5es0sfFNNBasxBHLkbUw==
dependencies:
"@babel/runtime" "^7.20.0"
@@ -4630,7 +4637,7 @@ gensync@^1.0.0-beta.2:
geojson-rbush@3.x:
version "3.2.0"
- resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-3.2.0.tgz#8b543cf0d56f99b78faf1da52bb66acad6dfc290"
+ resolved "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz"
integrity sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==
dependencies:
"@turf/bbox" "*"
@@ -5202,7 +5209,7 @@ is-invalid-path@^0.1.0:
is-map@^2.0.2, is-map@^2.0.3:
version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
+ resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz"
integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
is-negative-zero@^2.0.3:
@@ -5259,7 +5266,7 @@ is-regex@^1.1.4:
is-set@^2.0.2, is-set@^2.0.3:
version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
+ resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz"
integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
@@ -5314,7 +5321,7 @@ is-valid-path@^0.1.1:
is-weakmap@^2.0.2:
version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
+ resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz"
integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
is-weakref@^1.0.2:
@@ -5326,7 +5333,7 @@ is-weakref@^1.0.2:
is-weakset@^2.0.3:
version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007"
+ resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz"
integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==
dependencies:
call-bind "^1.0.7"
@@ -6773,7 +6780,7 @@ object-inspect@^1.13.1:
object-is@^1.1.5:
version "1.1.6"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07"
+ resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz"
integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==
dependencies:
call-bind "^1.0.7"
@@ -7259,7 +7266,7 @@ queue@6.0.2:
quickselect@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018"
+ resolved "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz"
integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==
ramda@^0.27.2:
@@ -7274,7 +7281,7 @@ range-parser@~1.2.1:
rbush@^3.0.1:
version "3.0.1"
- resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf"
+ resolved "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz"
integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==
dependencies:
quickselect "^2.0.0"
@@ -7450,12 +7457,17 @@ react-native-size-matters@^0.4.0:
react-native-svg@15.2.0:
version "15.2.0"
- resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.2.0.tgz#9561a6b3bd6b44689f437ba13182afee33bd5557"
+ resolved "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.2.0.tgz"
integrity sha512-R0E6IhcJfVLsL0lRmnUSm72QO+mTqcAOM5Jb8FVGxJqX3NfJMlMP0YyvcajZiaRR8CqQUpEoqrY25eyZb006kw==
dependencies:
css-select "^5.1.0"
css-tree "^1.1.3"
+react-native-toast-message@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/react-native-toast-message/-/react-native-toast-message-2.2.0.tgz"
+ integrity sha512-AFti8VzUk6JvyGAlLm9/BknTNDXrrhqnUk7ak/pM7uCTxDPveAu2ekszU0on6vnUPFnG04H/QfYE2IlETqeaWw==
+
react-native-web@~0.19.10:
version "0.19.12"
resolved "https://registry.npmjs.org/react-native-web/-/react-native-web-0.19.12.tgz"
@@ -7472,7 +7484,7 @@ react-native-web@~0.19.10:
react-native-webview@13.8.6:
version "13.8.6"
- resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.8.6.tgz#5d4a62cb311d5ef8d910a8e112b3f1f2807bcd18"
+ resolved "https://registry.npmjs.org/react-native-webview/-/react-native-webview-13.8.6.tgz"
integrity sha512-jtZ9OgB2AN6rhDwto6dNL3PtOtl/SI4VN93pZEPbMLvRjqHfxiUrilGllL5fKAXq5Ry5FJyfUi82A4Ii8olZ7A==
dependencies:
escape-string-regexp "2.0.0"
@@ -8170,7 +8182,7 @@ statuses@~1.5.0:
stop-iteration-iterator@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
+ resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz"
integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
dependencies:
internal-slot "^1.0.4"
@@ -8812,7 +8824,7 @@ update-browserslist-db@^1.1.0:
uri-js@^4.2.2:
version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
@@ -9012,7 +9024,7 @@ which-boxed-primitive@^1.0.2:
which-collection@^1.0.1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0"
+ resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz"
integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
dependencies:
is-map "^2.0.3"