Add countdown.
@ -3,6 +3,7 @@ import { StyleSheet } from 'react-native';
|
|||||||
import { ThemedView } from '@/components/theme/Theme';
|
import { ThemedView } from '@/components/theme/Theme';
|
||||||
import UserInfo from '@/components/home/UserInfo';
|
import UserInfo from '@/components/home/UserInfo';
|
||||||
import RelationshipView from '@/components/home/RelationshipView';
|
import RelationshipView from '@/components/home/RelationshipView';
|
||||||
|
import CountdownView from '@/components/home/Countdown';
|
||||||
|
|
||||||
const IndexScreen = () => {
|
const IndexScreen = () => {
|
||||||
const [pfpUrl, setPfpUrl] = useState<string | null>(null);
|
const [pfpUrl, setPfpUrl] = useState<string | null>(null);
|
||||||
@ -12,6 +13,7 @@ const IndexScreen = () => {
|
|||||||
return (
|
return (
|
||||||
<ThemedView style={styles.container}>
|
<ThemedView style={styles.container}>
|
||||||
<UserInfo onPfpUpdate={handlePfpUpdate} />
|
<UserInfo onPfpUpdate={handlePfpUpdate} />
|
||||||
|
<CountdownView />
|
||||||
<RelationshipView pfpUrl={pfpUrl} />
|
<RelationshipView pfpUrl={pfpUrl} />
|
||||||
<ThemedView style={styles.footerContainer}>
|
<ThemedView style={styles.footerContainer}>
|
||||||
</ThemedView>
|
</ThemedView>
|
||||||
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 720 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 720 KiB |
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 1.5 MiB |
@ -1,8 +1,10 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import * as AppleAuthentication from 'expo-apple-authentication';
|
import * as AppleAuthentication from 'expo-apple-authentication';
|
||||||
import { StyleSheet, Alert } from 'react-native';
|
import { StyleSheet, Alert, ImageBackground } from 'react-native';
|
||||||
import { ThemedView } from '@/components/theme/Theme';
|
import { ThemedText, ThemedView } from '@/components/theme/Theme';
|
||||||
|
import { SafeAreaView, SafeAreaProvider } from 'react-native-safe-area-context';
|
||||||
import { useColorScheme } from '@/hooks/useColorScheme';
|
import { useColorScheme } from '@/hooks/useColorScheme';
|
||||||
|
import { Colors } from '@/constants/Colors';
|
||||||
import * as Notifications from 'expo-notifications';
|
import * as Notifications from 'expo-notifications';
|
||||||
import Constants from 'expo-constants';
|
import Constants from 'expo-constants';
|
||||||
import { saveUser, saveInitialData } from '@/components/services/SecureStore';
|
import { saveUser, saveInitialData } from '@/components/services/SecureStore';
|
||||||
@ -13,6 +15,7 @@ import {
|
|||||||
} from '@/constants/APIs';
|
} from '@/constants/APIs';
|
||||||
import type { InitialData, User } from '@/constants/Types';
|
import type { InitialData, User } from '@/constants/Types';
|
||||||
|
|
||||||
|
|
||||||
const SignInScreen = ({onSignIn}: {onSignIn: () => void}) => {
|
const SignInScreen = ({onSignIn}: {onSignIn: () => void}) => {
|
||||||
const scheme = useColorScheme() ?? 'dark';
|
const scheme = useColorScheme() ?? 'dark';
|
||||||
|
|
||||||
@ -86,6 +89,16 @@ const SignInScreen = ({onSignIn}: {onSignIn: () => void}) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemedView style={styles.container}>
|
<ThemedView style={styles.container}>
|
||||||
|
<ImageBackground
|
||||||
|
source={require('@/assets/images/splash.png')} resizeMode="cover"
|
||||||
|
style={styles.background}
|
||||||
|
>
|
||||||
|
<ThemedText style={[
|
||||||
|
styles.title,
|
||||||
|
{textShadowColor: Colors[scheme].background}
|
||||||
|
]}>
|
||||||
|
Wavelength
|
||||||
|
</ThemedText>
|
||||||
<AppleAuthentication.AppleAuthenticationButton
|
<AppleAuthentication.AppleAuthenticationButton
|
||||||
buttonType={AppleAuthentication.AppleAuthenticationButtonType.SIGN_IN}
|
buttonType={AppleAuthentication.AppleAuthenticationButtonType.SIGN_IN}
|
||||||
buttonStyle={(scheme === 'light') ?
|
buttonStyle={(scheme === 'light') ?
|
||||||
@ -96,6 +109,7 @@ const SignInScreen = ({onSignIn}: {onSignIn: () => void}) => {
|
|||||||
style={styles.button}
|
style={styles.button}
|
||||||
onPress={handleAppleSignIn}
|
onPress={handleAppleSignIn}
|
||||||
/>
|
/>
|
||||||
|
</ImageBackground>
|
||||||
</ThemedView>
|
</ThemedView>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@ -104,9 +118,23 @@ export default SignInScreen;
|
|||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
container: {
|
container: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
|
},
|
||||||
|
background: {
|
||||||
|
flex: 1,
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
},
|
},
|
||||||
|
title: {
|
||||||
|
fontSize: 48,
|
||||||
|
lineHeight: 48,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
marginBottom: 80,
|
||||||
|
textShadowOffset: {
|
||||||
|
width: 1,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
textShadowRadius: 5,
|
||||||
|
},
|
||||||
button: {
|
button: {
|
||||||
width: 200,
|
width: 200,
|
||||||
height: 45,
|
height: 45,
|
||||||
|
@ -1,7 +1,207 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import { StyleSheet, ActivityIndicator, TouchableOpacity } from 'react-native';
|
import { StyleSheet, ActivityIndicator, TouchableOpacity } from 'react-native';
|
||||||
import { ThemedText, ThemedView } from '@/components/theme/Theme';
|
import { ThemedText, ThemedView } from '@/components/theme/Theme';
|
||||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
import { Countdown, Relationship, User } from '@/constants/Types';
|
||||||
|
import { getCountdown } from '@/constants/APIs';
|
||||||
|
import TextButton from '@/components/theme/buttons/TextButton';
|
||||||
|
import {
|
||||||
|
getCountdown as getCountdownFromSecureStore,
|
||||||
|
getUser,
|
||||||
|
getRelationship,
|
||||||
|
saveCountdown,
|
||||||
|
} from '@/components/services/SecureStore';
|
||||||
|
import CountdownChangeDateModal from '@/components/home/CountdownChangeDateModal';
|
||||||
|
|
||||||
|
const CountdownView = () => {
|
||||||
|
const [countdownData, setCountdownData] = useState({
|
||||||
|
days: 0,
|
||||||
|
hours: 0,
|
||||||
|
minutes: 0,
|
||||||
|
seconds: 0,
|
||||||
|
});
|
||||||
|
const [countdown, setCountdown] = useState<Countdown | null>(null);
|
||||||
|
const [isLoading, setIsLoading] = useState(true);
|
||||||
|
const [isDateModalOpen, setIsDateModalOpen] = useState(false);
|
||||||
|
const [user, setUser] = useState<User | null>(null);
|
||||||
|
const [relationship, setRelationship] = useState<Relationship | null>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const loadData = async () => {
|
||||||
|
setIsLoading(true);
|
||||||
|
const userData = await getUser();
|
||||||
|
setUser(userData);
|
||||||
|
const relationshipData = await getRelationship();
|
||||||
|
setRelationship(relationshipData);
|
||||||
|
const countdownFromSecureStore = await getCountdownFromSecureStore();
|
||||||
|
if (countdownFromSecureStore) {
|
||||||
|
setCountdown(countdownFromSecureStore);
|
||||||
|
} else if (userData) {
|
||||||
|
const countdownFromServer = await getCountdown(userData.id);
|
||||||
|
if (countdownFromServer) {
|
||||||
|
setCountdown(countdownFromServer);
|
||||||
|
await saveCountdown(countdownFromServer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setIsLoading(false);
|
||||||
|
};
|
||||||
|
loadData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (countdown === null) return;
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
const now = new Date();
|
||||||
|
const diff = new Date(countdown.date).getTime() - now.getTime();
|
||||||
|
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
|
||||||
|
const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
const seconds = Math.floor((diff % (1000 * 60)) / 1000);
|
||||||
|
setCountdownData({ days, hours, minutes, seconds });
|
||||||
|
if (diff <= 0) {
|
||||||
|
clearInterval(interval);
|
||||||
|
setCountdownData({ days: 0, hours: 0, minutes: 0, seconds: 0 });
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
return () => clearInterval(interval);
|
||||||
|
}, [countdown]);
|
||||||
|
|
||||||
|
const handleCountdownUpdate = async (newDate: Date) => {
|
||||||
|
if (relationship) {
|
||||||
|
const newCountdown: Countdown = countdown
|
||||||
|
? { ...countdown, date: newDate }
|
||||||
|
: {
|
||||||
|
id: 0, // This will be set by the server
|
||||||
|
relationshipId: relationship.id,
|
||||||
|
title: 'Countdown to Next Visit',
|
||||||
|
date: newDate,
|
||||||
|
createdAt: new Date(),
|
||||||
|
};
|
||||||
|
setCountdown(newCountdown);
|
||||||
|
await saveCountdown(newCountdown);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (isLoading) {
|
||||||
|
return (
|
||||||
|
<ThemedView style={styles.container}>
|
||||||
|
<ActivityIndicator size='large' color='#0000ff' />
|
||||||
|
</ThemedView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!relationship) {
|
||||||
|
return (
|
||||||
|
<ThemedView style={styles.container}>
|
||||||
|
<ThemedText>You are not in a relationship yet.</ThemedText>
|
||||||
|
</ThemedView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!countdown) {
|
||||||
|
return (
|
||||||
|
<ThemedView style={styles.container}>
|
||||||
|
<ThemedText>No countdown set yet.</ThemedText>
|
||||||
|
<TextButton
|
||||||
|
width={320} height={68}
|
||||||
|
text='Set Countdown'
|
||||||
|
fontSize={24}
|
||||||
|
onPress={() => setIsDateModalOpen(true)}
|
||||||
|
/>
|
||||||
|
</ThemedView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemedView style={styles.innerContainer}>
|
||||||
|
<ThemedText style={styles.title}>
|
||||||
|
{countdown?.title ?? 'Countdown til Next Visit'}
|
||||||
|
</ThemedText>
|
||||||
|
<ThemedView style={styles.countdownContainer}>
|
||||||
|
<CountdownItem
|
||||||
|
value={countdownData.days}
|
||||||
|
label={countdownData.days === 1 ? 'Day' : 'Days'}
|
||||||
|
/>
|
||||||
|
<CountdownItem
|
||||||
|
value={countdownData.hours}
|
||||||
|
label={countdownData.hours === 1 ? 'Hour' : 'Hours'}
|
||||||
|
/>
|
||||||
|
<CountdownItem
|
||||||
|
value={countdownData.minutes}
|
||||||
|
label={countdownData.minutes === 1 ? 'Minute' : 'Minutes'}
|
||||||
|
/>
|
||||||
|
<CountdownItem
|
||||||
|
value={countdownData.seconds}
|
||||||
|
label={countdownData.seconds === 1 ? 'Second' : 'Seconds'}
|
||||||
|
/>
|
||||||
|
</ThemedView>
|
||||||
|
<TextButton
|
||||||
|
width={320} height={68}
|
||||||
|
text='Change Date'
|
||||||
|
fontSize={24}
|
||||||
|
onPress={() => setIsDateModalOpen(true)}
|
||||||
|
/>
|
||||||
|
{user && countdown && (
|
||||||
|
<CountdownChangeDateModal
|
||||||
|
user={user}
|
||||||
|
isVisible={isDateModalOpen}
|
||||||
|
onClose={() => setIsDateModalOpen(false)}
|
||||||
|
onDateChange={handleCountdownUpdate}
|
||||||
|
currentCountdown={countdown}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</ThemedView>
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
export default CountdownView;
|
||||||
|
|
||||||
|
const CountdownItem = ({value, label}: { value: number, label: string }) => {
|
||||||
|
return (
|
||||||
|
<ThemedView style={styles.countdownItem}>
|
||||||
|
<ThemedText style={styles.countdownValue}>{value}</ThemedText>
|
||||||
|
<ThemedText style={styles.countdownLabel}>{label}</ThemedText>
|
||||||
|
</ThemedView>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
innerContainer: {
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
paddingHorizontal: 10,
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
fontSize: 32,
|
||||||
|
lineHeight: 32,
|
||||||
|
fontWeight: '600',
|
||||||
|
textAlign: 'center',
|
||||||
|
marginHorizontal: 'auto',
|
||||||
|
},
|
||||||
|
countdownContainer: {
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'space-around',
|
||||||
|
alignItems: 'center',
|
||||||
|
width: '100%',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
marginVertical: 20,
|
||||||
|
},
|
||||||
|
countdownItem: {
|
||||||
|
alignItems: 'center',
|
||||||
|
marginHorizontal: 10,
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
countdownValue: {
|
||||||
|
fontSize: 32,
|
||||||
|
lineHeight: 42,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
},
|
||||||
|
countdownLabel: {
|
||||||
|
fontSize: 18,
|
||||||
|
lineHeight: 24,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
162
components/home/CountdownChangeDateModal.tsx
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
import React, { useState } from 'react';
|
||||||
|
import { StyleSheet, Modal } from 'react-native';
|
||||||
|
import { ThemedText, ThemedView } from '@/components/theme/Theme';
|
||||||
|
import DateTimePicker from '@react-native-community/datetimepicker';
|
||||||
|
import { Countdown, User } from '@/constants/Types';
|
||||||
|
import { setCountdown } from '@/constants/APIs';
|
||||||
|
import TextButton from '@/components/theme/buttons/TextButton';
|
||||||
|
|
||||||
|
type ChangeDateModalProps = {
|
||||||
|
user: User;
|
||||||
|
isVisible: boolean;
|
||||||
|
onClose: () => void;
|
||||||
|
onDateChange: (date: Date) => void;
|
||||||
|
currentCountdown?: Countdown;
|
||||||
|
};
|
||||||
|
|
||||||
|
const ChangeDateModal = ({
|
||||||
|
user, isVisible, onClose, onDateChange, currentCountdown
|
||||||
|
}: ChangeDateModalProps) => {
|
||||||
|
const [date, setDate] = useState(currentCountdown ? new Date(currentCountdown.date) : new Date());
|
||||||
|
|
||||||
|
const handleDateChange = (event: any, selectedDate?: Date) => {
|
||||||
|
const currentDate = selectedDate ?? date;
|
||||||
|
setDate(currentDate);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleTimeChange = (event: any, selectedTime?: Date) => {
|
||||||
|
const currentTime = selectedTime ?? date;
|
||||||
|
setDate(currentTime);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSave = async () => {
|
||||||
|
try {
|
||||||
|
let updatedCountdown: Countdown;
|
||||||
|
if (currentCountdown) {
|
||||||
|
updatedCountdown = { ...currentCountdown, date: date };
|
||||||
|
await setCountdown(user.id, updatedCountdown);
|
||||||
|
onDateChange(date);
|
||||||
|
onClose();
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error saving countdown:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
animationType="slide"
|
||||||
|
transparent={true}
|
||||||
|
visible={isVisible}
|
||||||
|
onRequestClose={onClose}
|
||||||
|
>
|
||||||
|
<ThemedView style={styles.centeredView}>
|
||||||
|
<ThemedView style={styles.modalView}>
|
||||||
|
<ThemedText style={styles.modalText}>
|
||||||
|
Set New Countdown
|
||||||
|
</ThemedText>
|
||||||
|
<ThemedView style={styles.container}>
|
||||||
|
<ThemedView style={styles.dateContainer}>
|
||||||
|
<DateTimePicker
|
||||||
|
testID="datePicker"
|
||||||
|
value={date}
|
||||||
|
mode="date"
|
||||||
|
is24Hour={true}
|
||||||
|
display="default"
|
||||||
|
onChange={handleDateChange}
|
||||||
|
/>
|
||||||
|
</ThemedView>
|
||||||
|
<ThemedView style={styles.timeContainer}>
|
||||||
|
<DateTimePicker
|
||||||
|
testID="timePicker"
|
||||||
|
value={date}
|
||||||
|
mode="time"
|
||||||
|
is24Hour={true}
|
||||||
|
display="default"
|
||||||
|
onChange={handleTimeChange}
|
||||||
|
/>
|
||||||
|
</ThemedView>
|
||||||
|
</ThemedView>
|
||||||
|
<ThemedView style={styles.buttonContainer}>
|
||||||
|
<TextButton
|
||||||
|
width={120}
|
||||||
|
height={60}
|
||||||
|
text='Save'
|
||||||
|
fontSize={18}
|
||||||
|
onPress={handleSave}
|
||||||
|
/>
|
||||||
|
<TextButton
|
||||||
|
width={120}
|
||||||
|
height={60}
|
||||||
|
text='Cancel'
|
||||||
|
fontSize={18}
|
||||||
|
onPress={onClose}
|
||||||
|
/>
|
||||||
|
</ThemedView>
|
||||||
|
</ThemedView>
|
||||||
|
</ThemedView>
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
export default ChangeDateModal;
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
centeredView: {
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
modalView: {
|
||||||
|
margin: 10,
|
||||||
|
padding: 35,
|
||||||
|
borderRadius: 40,
|
||||||
|
alignItems: 'center',
|
||||||
|
shadowColor: '#000',
|
||||||
|
shadowOffset: {
|
||||||
|
width: 0,
|
||||||
|
height: 2,
|
||||||
|
},
|
||||||
|
shadowOpacity: 0.25,
|
||||||
|
shadowRadius: 3.84,
|
||||||
|
elevation: 5,
|
||||||
|
width: '80%',
|
||||||
|
},
|
||||||
|
modalText: {
|
||||||
|
marginBottom: 20,
|
||||||
|
textAlign: 'center',
|
||||||
|
fontWeight: 'bold',
|
||||||
|
fontSize: 24,
|
||||||
|
lineHeight: 32,
|
||||||
|
},
|
||||||
|
container: {
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
margin: 'auto',
|
||||||
|
marginBottom: 20,
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
buttonContainer: {
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
margin: 'auto',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
dateContainer: {
|
||||||
|
width: '50%',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
margin: 'auto',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
},
|
||||||
|
timeContainer: {
|
||||||
|
width: '50%',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
minWidth: 120,
|
||||||
|
},
|
||||||
|
});
|
@ -1,74 +0,0 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
|
||||||
import { StyleSheet, Alert } from 'react-native';
|
|
||||||
import { ThemedText } from '@/components/theme/Theme';
|
|
||||||
import { Colors } from '@/constants/Colors';
|
|
||||||
import { useColorScheme } from '@/hooks/useColorScheme';
|
|
||||||
import FontAwesome from '@expo/vector-icons/FontAwesome';
|
|
||||||
import Button from '@/components/theme/buttons/DefaultButton';
|
|
||||||
import { getUser } from '@/components/services/SecureStore';
|
|
||||||
import { sendPushNotification } from '@/components/services/notifications/PushNotificationManager';
|
|
||||||
import type { NotificationMessage } from '@/constants/Types';
|
|
||||||
|
|
||||||
const TestPush = () => {
|
|
||||||
const scheme = useColorScheme() ?? 'dark';
|
|
||||||
const [pushToken, setPushToken] = useState<string | null>(null);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const fetchUserData = async () => {
|
|
||||||
const user = await getUser();
|
|
||||||
if (user) {
|
|
||||||
setPushToken(user.pushToken);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
fetchUserData();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const message: NotificationMessage = {
|
|
||||||
sound: 'default',
|
|
||||||
title: 'Test push notification',
|
|
||||||
body: 'This is a test push notification',
|
|
||||||
data: {
|
|
||||||
test: 'test',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleSendPushNotification = async () => {
|
|
||||||
try {
|
|
||||||
await sendPushNotification(pushToken, message);
|
|
||||||
Alert.alert('Success', 'Push notification sent successfully.');
|
|
||||||
} catch (error) {
|
|
||||||
Alert.alert('Error', 'Failed to send push notification.');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Button
|
|
||||||
width={220} height={60}
|
|
||||||
onPress={handleSendPushNotification}
|
|
||||||
>
|
|
||||||
<FontAwesome
|
|
||||||
name='bell' size={18}
|
|
||||||
color={Colors[scheme].background}
|
|
||||||
style={styles.buttonIcon}
|
|
||||||
/>
|
|
||||||
<ThemedText
|
|
||||||
style={[
|
|
||||||
styles.buttonLabel,
|
|
||||||
{color: Colors[scheme].background}
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
Send Push Notification
|
|
||||||
</ThemedText>
|
|
||||||
</Button>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
export default TestPush;
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
|
||||||
buttonLabel: {
|
|
||||||
fontSize: 16,
|
|
||||||
},
|
|
||||||
buttonIcon: {
|
|
||||||
paddingRight: 8,
|
|
||||||
},
|
|
||||||
});
|
|
@ -2,6 +2,7 @@ import { StyleSheet, Pressable } from "react-native";
|
|||||||
import { ThemedView } from "@/components/theme/Theme";
|
import { ThemedView } from "@/components/theme/Theme";
|
||||||
import { Colors } from '@/constants/Colors';
|
import { Colors } from '@/constants/Colors';
|
||||||
import { useColorScheme } from '@/hooks/useColorScheme';
|
import { useColorScheme } from '@/hooks/useColorScheme';
|
||||||
|
import { StyleProp, ViewStyle } from 'react-native';
|
||||||
|
|
||||||
const DEFAULT_WIDTH = 320;
|
const DEFAULT_WIDTH = 320;
|
||||||
const DEFAULT_HEIGHT = 68;
|
const DEFAULT_HEIGHT = 68;
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/vector-icons": "^14.0.4",
|
"@expo/vector-icons": "^14.0.4",
|
||||||
|
"@react-native-community/datetimepicker": "8.0.1",
|
||||||
"@react-navigation/native": "^6.1.18",
|
"@react-navigation/native": "^6.1.18",
|
||||||
"@teovilla/react-native-web-maps": "^0.9.5",
|
"@teovilla/react-native-web-maps": "^0.9.5",
|
||||||
"@types/lodash.debounce": "^4.0.9",
|
"@types/lodash.debounce": "^4.0.9",
|
||||||
|
188
pnpm-lock.yaml
generated
@ -11,6 +11,9 @@ importers:
|
|||||||
'@expo/vector-icons':
|
'@expo/vector-icons':
|
||||||
specifier: ^14.0.4
|
specifier: ^14.0.4
|
||||||
version: 14.0.4
|
version: 14.0.4
|
||||||
|
'@react-native-community/datetimepicker':
|
||||||
|
specifier: 8.0.1
|
||||||
|
version: 8.0.1(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.25.9(@babel/core@7.26.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)
|
||||||
'@react-navigation/native':
|
'@react-navigation/native':
|
||||||
specifier: ^6.1.18
|
specifier: ^6.1.18
|
||||||
version: 6.1.18(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.25.9(@babel/core@7.26.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)
|
version: 6.1.18(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.25.9(@babel/core@7.26.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)
|
||||||
@ -131,10 +134,10 @@ importers:
|
|||||||
version: 18.3.0
|
version: 18.3.0
|
||||||
jest:
|
jest:
|
||||||
specifier: ^29.7.0
|
specifier: ^29.7.0
|
||||||
version: 29.7.0(@types/node@22.8.0)
|
version: 29.7.0(@types/node@22.8.2)
|
||||||
jest-expo:
|
jest-expo:
|
||||||
specifier: ~51.0.4
|
specifier: ~51.0.4
|
||||||
version: 51.0.4(@babel/core@7.26.0)(jest@29.7.0(@types/node@22.8.0))(react@18.2.0)
|
version: 51.0.4(@babel/core@7.26.0)(jest@29.7.0(@types/node@22.8.2))(react@18.2.0)
|
||||||
react-test-renderer:
|
react-test-renderer:
|
||||||
specifier: 18.2.0
|
specifier: 18.2.0
|
||||||
version: 18.2.0(react@18.2.0)
|
version: 18.2.0(react@18.2.0)
|
||||||
@ -269,8 +272,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==}
|
resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
'@babel/parser@7.26.0':
|
'@babel/parser@7.26.1':
|
||||||
resolution: {integrity: sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==}
|
resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@ -1216,6 +1219,16 @@ packages:
|
|||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
'@react-native-community/datetimepicker@8.0.1':
|
||||||
|
resolution: {integrity: sha512-4BO0t3geMNNw9cIIm9p9FNUzwMXexdzD4pAH0AaUAycs3BS71HLrX8jHbrI7nzq/+8O7cLAXn5Gudte+YpTV8Q==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '*'
|
||||||
|
react-native: '*'
|
||||||
|
react-native-windows: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
react-native-windows:
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@react-native/assets-registry@0.74.87':
|
'@react-native/assets-registry@0.74.87':
|
||||||
resolution: {integrity: sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==}
|
resolution: {integrity: sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@ -1475,11 +1488,11 @@ packages:
|
|||||||
'@types/node-forge@1.3.11':
|
'@types/node-forge@1.3.11':
|
||||||
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
|
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
|
||||||
|
|
||||||
'@types/node@18.19.59':
|
'@types/node@18.19.60':
|
||||||
resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==}
|
resolution: {integrity: sha512-cYRj7igVqgxhlHFdBHHpU2SNw3+dN2x0VTZJtLYk6y/ieuGN4XiBgtDjYVktM/yk2y/8pKMileNc6IoEzEJnUw==}
|
||||||
|
|
||||||
'@types/node@22.8.0':
|
'@types/node@22.8.2':
|
||||||
resolution: {integrity: sha512-84rafSBHC/z1i1E3p0cJwKA+CfYDNSXX9WSZBRopjIzLET8oNt6ht2tei4C7izwDeEiLLfdeSVBv1egOH916hg==}
|
resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==}
|
||||||
|
|
||||||
'@types/prop-types@15.7.13':
|
'@types/prop-types@15.7.13':
|
||||||
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
|
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
|
||||||
@ -1524,6 +1537,7 @@ packages:
|
|||||||
'@xmldom/xmldom@0.7.13':
|
'@xmldom/xmldom@0.7.13':
|
||||||
resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==}
|
resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
|
deprecated: this version is no longer supported, please update to at least 0.8.*
|
||||||
|
|
||||||
'@xmldom/xmldom@0.8.10':
|
'@xmldom/xmldom@0.8.10':
|
||||||
resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
|
resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
|
||||||
@ -1551,8 +1565,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
|
resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
|
|
||||||
acorn@8.13.0:
|
acorn@8.14.0:
|
||||||
resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==}
|
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@ -1847,8 +1861,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
|
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
caniuse-lite@1.0.30001669:
|
caniuse-lite@1.0.30001674:
|
||||||
resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==}
|
resolution: {integrity: sha512-jOsKlZVRnzfhLojb+Ykb+gyUSp9Xb57So+fAiFlLzzTKpqg8xxSav0e40c8/4F/v9N8QSvrRRaLeVzQbLqomYw==}
|
||||||
|
|
||||||
chalk@2.4.2:
|
chalk@2.4.2:
|
||||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||||
@ -2216,8 +2230,8 @@ packages:
|
|||||||
ee-first@1.1.1:
|
ee-first@1.1.1:
|
||||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||||
|
|
||||||
electron-to-chromium@1.5.45:
|
electron-to-chromium@1.5.49:
|
||||||
resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==}
|
resolution: {integrity: sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==}
|
||||||
|
|
||||||
emittery@0.13.1:
|
emittery@0.13.1:
|
||||||
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
|
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
|
||||||
@ -3825,8 +3839,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==}
|
resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
parse5@7.2.0:
|
parse5@7.2.1:
|
||||||
resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==}
|
resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
|
||||||
|
|
||||||
parseurl@1.3.3:
|
parseurl@1.3.3:
|
||||||
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
||||||
@ -4169,8 +4183,8 @@ packages:
|
|||||||
regjsgen@0.8.0:
|
regjsgen@0.8.0:
|
||||||
resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
|
resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
|
||||||
|
|
||||||
regjsparser@0.11.1:
|
regjsparser@0.11.2:
|
||||||
resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==}
|
resolution: {integrity: sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
remove-trailing-slash@0.1.1:
|
remove-trailing-slash@0.1.1:
|
||||||
@ -5121,7 +5135,7 @@ snapshots:
|
|||||||
'@babel/helper-compilation-targets': 7.25.9
|
'@babel/helper-compilation-targets': 7.25.9
|
||||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
|
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
|
||||||
'@babel/helpers': 7.26.0
|
'@babel/helpers': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/template': 7.25.9
|
'@babel/template': 7.25.9
|
||||||
'@babel/traverse': 7.25.9
|
'@babel/traverse': 7.25.9
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
@ -5143,7 +5157,7 @@ snapshots:
|
|||||||
|
|
||||||
'@babel/generator@7.26.0':
|
'@babel/generator@7.26.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
'@jridgewell/gen-mapping': 0.3.5
|
'@jridgewell/gen-mapping': 0.3.5
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
@ -5290,7 +5304,7 @@ snapshots:
|
|||||||
js-tokens: 4.0.0
|
js-tokens: 4.0.0
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
|
|
||||||
'@babel/parser@7.26.0':
|
'@babel/parser@7.26.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
|
|
||||||
@ -6035,14 +6049,14 @@ snapshots:
|
|||||||
'@babel/template@7.25.9':
|
'@babel/template@7.25.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.26.0
|
'@babel/code-frame': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
|
|
||||||
'@babel/traverse@7.25.9':
|
'@babel/traverse@7.25.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.26.0
|
'@babel/code-frame': 7.26.0
|
||||||
'@babel/generator': 7.26.0
|
'@babel/generator': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/template': 7.25.9
|
'@babel/template': 7.25.9
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
@ -6246,7 +6260,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/generator': 7.26.0
|
'@babel/generator': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
'@expo/config': 9.0.4
|
'@expo/config': 9.0.4
|
||||||
'@expo/env': 0.3.0
|
'@expo/env': 0.3.0
|
||||||
@ -6437,7 +6451,7 @@ snapshots:
|
|||||||
'@jest/console@29.7.0':
|
'@jest/console@29.7.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
jest-message-util: 29.7.0
|
jest-message-util: 29.7.0
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
@ -6450,14 +6464,14 @@ snapshots:
|
|||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/transform': 29.7.0
|
'@jest/transform': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
ansi-escapes: 4.3.2
|
ansi-escapes: 4.3.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
ci-info: 3.9.0
|
ci-info: 3.9.0
|
||||||
exit: 0.1.2
|
exit: 0.1.2
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
jest-changed-files: 29.7.0
|
jest-changed-files: 29.7.0
|
||||||
jest-config: 29.7.0(@types/node@22.8.0)
|
jest-config: 29.7.0(@types/node@22.8.2)
|
||||||
jest-haste-map: 29.7.0
|
jest-haste-map: 29.7.0
|
||||||
jest-message-util: 29.7.0
|
jest-message-util: 29.7.0
|
||||||
jest-regex-util: 29.6.3
|
jest-regex-util: 29.6.3
|
||||||
@ -6486,7 +6500,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jest/fake-timers': 29.7.0
|
'@jest/fake-timers': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-mock: 29.7.0
|
jest-mock: 29.7.0
|
||||||
|
|
||||||
'@jest/expect-utils@29.7.0':
|
'@jest/expect-utils@29.7.0':
|
||||||
@ -6504,7 +6518,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@sinonjs/fake-timers': 10.3.0
|
'@sinonjs/fake-timers': 10.3.0
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-message-util: 29.7.0
|
jest-message-util: 29.7.0
|
||||||
jest-mock: 29.7.0
|
jest-mock: 29.7.0
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
@ -6526,7 +6540,7 @@ snapshots:
|
|||||||
'@jest/transform': 29.7.0
|
'@jest/transform': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
collect-v8-coverage: 1.0.2
|
collect-v8-coverage: 1.0.2
|
||||||
exit: 0.1.2
|
exit: 0.1.2
|
||||||
@ -6601,7 +6615,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/istanbul-lib-coverage': 2.0.6
|
'@types/istanbul-lib-coverage': 2.0.6
|
||||||
'@types/istanbul-reports': 3.0.4
|
'@types/istanbul-reports': 3.0.4
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
'@types/yargs': 15.0.19
|
'@types/yargs': 15.0.19
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
|
|
||||||
@ -6610,7 +6624,7 @@ snapshots:
|
|||||||
'@jest/schemas': 29.6.3
|
'@jest/schemas': 29.6.3
|
||||||
'@types/istanbul-lib-coverage': 2.0.6
|
'@types/istanbul-lib-coverage': 2.0.6
|
||||||
'@types/istanbul-reports': 3.0.4
|
'@types/istanbul-reports': 3.0.4
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
'@types/yargs': 17.0.33
|
'@types/yargs': 17.0.33
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
|
|
||||||
@ -6828,6 +6842,12 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
|
||||||
|
'@react-native-community/datetimepicker@8.0.1(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.25.9(@babel/core@7.26.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)':
|
||||||
|
dependencies:
|
||||||
|
invariant: 2.2.4
|
||||||
|
react: 18.2.0
|
||||||
|
react-native: 0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.25.9(@babel/core@7.26.0))(@types/react@18.2.79)(react@18.2.0)
|
||||||
|
|
||||||
'@react-native/assets-registry@0.74.87': {}
|
'@react-native/assets-registry@0.74.87': {}
|
||||||
|
|
||||||
'@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.25.9(@babel/core@7.26.0))':
|
'@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.25.9(@babel/core@7.26.0))':
|
||||||
@ -6888,7 +6908,7 @@ snapshots:
|
|||||||
|
|
||||||
'@react-native/codegen@0.74.87(@babel/preset-env@7.25.9(@babel/core@7.26.0))':
|
'@react-native/codegen@0.74.87(@babel/preset-env@7.25.9(@babel/core@7.26.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/preset-env': 7.25.9(@babel/core@7.26.0)
|
'@babel/preset-env': 7.25.9(@babel/core@7.26.0)
|
||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
hermes-parser: 0.19.1
|
hermes-parser: 0.19.1
|
||||||
@ -7105,7 +7125,7 @@ snapshots:
|
|||||||
|
|
||||||
'@rnx-kit/chromium-edge-launcher@1.0.0':
|
'@rnx-kit/chromium-edge-launcher@1.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 18.19.59
|
'@types/node': 18.19.60
|
||||||
escape-string-regexp: 4.0.0
|
escape-string-regexp: 4.0.0
|
||||||
is-wsl: 2.2.0
|
is-wsl: 2.2.0
|
||||||
lighthouse-logger: 1.4.2
|
lighthouse-logger: 1.4.2
|
||||||
@ -7152,7 +7172,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
'@types/babel__generator': 7.6.8
|
'@types/babel__generator': 7.6.8
|
||||||
'@types/babel__template': 7.4.4
|
'@types/babel__template': 7.4.4
|
||||||
@ -7164,7 +7184,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/babel__template@7.4.4':
|
'@types/babel__template@7.4.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
|
|
||||||
'@types/babel__traverse@7.20.6':
|
'@types/babel__traverse@7.20.6':
|
||||||
@ -7179,7 +7199,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/graceful-fs@4.1.9':
|
'@types/graceful-fs@4.1.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
|
|
||||||
'@types/hammerjs@2.0.46': {}
|
'@types/hammerjs@2.0.46': {}
|
||||||
|
|
||||||
@ -7210,9 +7230,9 @@ snapshots:
|
|||||||
|
|
||||||
'@types/jsdom@20.0.1':
|
'@types/jsdom@20.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
'@types/tough-cookie': 4.0.5
|
'@types/tough-cookie': 4.0.5
|
||||||
parse5: 7.2.0
|
parse5: 7.2.1
|
||||||
|
|
||||||
'@types/json-schema@7.0.15': {}
|
'@types/json-schema@7.0.15': {}
|
||||||
|
|
||||||
@ -7228,13 +7248,13 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node-forge@1.3.11':
|
'@types/node-forge@1.3.11':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
|
|
||||||
'@types/node@18.19.59':
|
'@types/node@18.19.60':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 5.26.5
|
undici-types: 5.26.5
|
||||||
|
|
||||||
'@types/node@22.8.0':
|
'@types/node@22.8.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 6.19.8
|
undici-types: 6.19.8
|
||||||
|
|
||||||
@ -7301,14 +7321,14 @@ snapshots:
|
|||||||
|
|
||||||
acorn-globals@7.0.1:
|
acorn-globals@7.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.13.0
|
acorn: 8.14.0
|
||||||
acorn-walk: 8.3.4
|
acorn-walk: 8.3.4
|
||||||
|
|
||||||
acorn-walk@8.3.4:
|
acorn-walk@8.3.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.13.0
|
acorn: 8.14.0
|
||||||
|
|
||||||
acorn@8.13.0: {}
|
acorn@8.14.0: {}
|
||||||
|
|
||||||
agent-base@6.0.2:
|
agent-base@6.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7599,8 +7619,8 @@ snapshots:
|
|||||||
|
|
||||||
browserslist@4.24.2:
|
browserslist@4.24.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
caniuse-lite: 1.0.30001669
|
caniuse-lite: 1.0.30001674
|
||||||
electron-to-chromium: 1.5.45
|
electron-to-chromium: 1.5.49
|
||||||
node-releases: 2.0.18
|
node-releases: 2.0.18
|
||||||
update-browserslist-db: 1.1.1(browserslist@4.24.2)
|
update-browserslist-db: 1.1.1(browserslist@4.24.2)
|
||||||
|
|
||||||
@ -7667,7 +7687,7 @@ snapshots:
|
|||||||
|
|
||||||
camelcase@6.3.0: {}
|
camelcase@6.3.0: {}
|
||||||
|
|
||||||
caniuse-lite@1.0.30001669: {}
|
caniuse-lite@1.0.30001674: {}
|
||||||
|
|
||||||
chalk@2.4.2:
|
chalk@2.4.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7695,7 +7715,7 @@ snapshots:
|
|||||||
|
|
||||||
chrome-launcher@0.15.2:
|
chrome-launcher@0.15.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
escape-string-regexp: 4.0.0
|
escape-string-regexp: 4.0.0
|
||||||
is-wsl: 2.2.0
|
is-wsl: 2.2.0
|
||||||
lighthouse-logger: 1.4.2
|
lighthouse-logger: 1.4.2
|
||||||
@ -7834,13 +7854,13 @@ snapshots:
|
|||||||
js-yaml: 3.14.1
|
js-yaml: 3.14.1
|
||||||
parse-json: 4.0.0
|
parse-json: 4.0.0
|
||||||
|
|
||||||
create-jest@29.7.0(@types/node@22.8.0):
|
create-jest@29.7.0(@types/node@22.8.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
exit: 0.1.2
|
exit: 0.1.2
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
jest-config: 29.7.0(@types/node@22.8.0)
|
jest-config: 29.7.0(@types/node@22.8.2)
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
prompts: 2.4.2
|
prompts: 2.4.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -8009,7 +8029,7 @@ snapshots:
|
|||||||
|
|
||||||
ee-first@1.1.1: {}
|
ee-first@1.1.1: {}
|
||||||
|
|
||||||
electron-to-chromium@1.5.45: {}
|
electron-to-chromium@1.5.49: {}
|
||||||
|
|
||||||
emittery@0.13.1: {}
|
emittery@0.13.1: {}
|
||||||
|
|
||||||
@ -8934,7 +8954,7 @@ snapshots:
|
|||||||
istanbul-lib-instrument@5.2.1:
|
istanbul-lib-instrument@5.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@istanbuljs/schema': 0.1.3
|
'@istanbuljs/schema': 0.1.3
|
||||||
istanbul-lib-coverage: 3.2.2
|
istanbul-lib-coverage: 3.2.2
|
||||||
semver: 6.3.1
|
semver: 6.3.1
|
||||||
@ -8944,7 +8964,7 @@ snapshots:
|
|||||||
istanbul-lib-instrument@6.0.3:
|
istanbul-lib-instrument@6.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@istanbuljs/schema': 0.1.3
|
'@istanbuljs/schema': 0.1.3
|
||||||
istanbul-lib-coverage: 3.2.2
|
istanbul-lib-coverage: 3.2.2
|
||||||
semver: 7.6.3
|
semver: 7.6.3
|
||||||
@ -8988,7 +9008,7 @@ snapshots:
|
|||||||
'@jest/expect': 29.7.0
|
'@jest/expect': 29.7.0
|
||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
co: 4.6.0
|
co: 4.6.0
|
||||||
dedent: 1.5.3
|
dedent: 1.5.3
|
||||||
@ -9008,16 +9028,16 @@ snapshots:
|
|||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
jest-cli@29.7.0(@types/node@22.8.0):
|
jest-cli@29.7.0(@types/node@22.8.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/core': 29.7.0
|
'@jest/core': 29.7.0
|
||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
create-jest: 29.7.0(@types/node@22.8.0)
|
create-jest: 29.7.0(@types/node@22.8.2)
|
||||||
exit: 0.1.2
|
exit: 0.1.2
|
||||||
import-local: 3.2.0
|
import-local: 3.2.0
|
||||||
jest-config: 29.7.0(@types/node@22.8.0)
|
jest-config: 29.7.0(@types/node@22.8.2)
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
jest-validate: 29.7.0
|
jest-validate: 29.7.0
|
||||||
yargs: 17.7.2
|
yargs: 17.7.2
|
||||||
@ -9027,7 +9047,7 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- ts-node
|
- ts-node
|
||||||
|
|
||||||
jest-config@29.7.0(@types/node@22.8.0):
|
jest-config@29.7.0(@types/node@22.8.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@jest/test-sequencer': 29.7.0
|
'@jest/test-sequencer': 29.7.0
|
||||||
@ -9052,7 +9072,7 @@ snapshots:
|
|||||||
slash: 3.0.0
|
slash: 3.0.0
|
||||||
strip-json-comments: 3.1.1
|
strip-json-comments: 3.1.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
- supports-color
|
- supports-color
|
||||||
@ -9082,7 +9102,7 @@ snapshots:
|
|||||||
'@jest/fake-timers': 29.7.0
|
'@jest/fake-timers': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/jsdom': 20.0.1
|
'@types/jsdom': 20.0.1
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-mock: 29.7.0
|
jest-mock: 29.7.0
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
jsdom: 20.0.3
|
jsdom: 20.0.3
|
||||||
@ -9096,11 +9116,11 @@ snapshots:
|
|||||||
'@jest/environment': 29.7.0
|
'@jest/environment': 29.7.0
|
||||||
'@jest/fake-timers': 29.7.0
|
'@jest/fake-timers': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-mock: 29.7.0
|
jest-mock: 29.7.0
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
|
|
||||||
jest-expo@51.0.4(@babel/core@7.26.0)(jest@29.7.0(@types/node@22.8.0))(react@18.2.0):
|
jest-expo@51.0.4(@babel/core@7.26.0)(jest@29.7.0(@types/node@22.8.2))(react@18.2.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@expo/config': 9.0.4
|
'@expo/config': 9.0.4
|
||||||
'@expo/json-file': 8.3.3
|
'@expo/json-file': 8.3.3
|
||||||
@ -9109,7 +9129,7 @@ snapshots:
|
|||||||
find-up: 5.0.0
|
find-up: 5.0.0
|
||||||
jest-environment-jsdom: 29.7.0
|
jest-environment-jsdom: 29.7.0
|
||||||
jest-watch-select-projects: 2.0.0
|
jest-watch-select-projects: 2.0.0
|
||||||
jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.8.0))
|
jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.8.2))
|
||||||
json5: 2.2.3
|
json5: 2.2.3
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
react-test-renderer: 18.2.0(react@18.2.0)
|
react-test-renderer: 18.2.0(react@18.2.0)
|
||||||
@ -9129,7 +9149,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/graceful-fs': 4.1.9
|
'@types/graceful-fs': 4.1.9
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
anymatch: 3.1.3
|
anymatch: 3.1.3
|
||||||
fb-watchman: 2.0.2
|
fb-watchman: 2.0.2
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
@ -9168,7 +9188,7 @@ snapshots:
|
|||||||
jest-mock@29.7.0:
|
jest-mock@29.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
|
|
||||||
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
|
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
|
||||||
@ -9203,7 +9223,7 @@ snapshots:
|
|||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/transform': 29.7.0
|
'@jest/transform': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
emittery: 0.13.1
|
emittery: 0.13.1
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
@ -9231,7 +9251,7 @@ snapshots:
|
|||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/transform': 29.7.0
|
'@jest/transform': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cjs-module-lexer: 1.4.1
|
cjs-module-lexer: 1.4.1
|
||||||
collect-v8-coverage: 1.0.2
|
collect-v8-coverage: 1.0.2
|
||||||
@ -9277,7 +9297,7 @@ snapshots:
|
|||||||
jest-util@29.7.0:
|
jest-util@29.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
ci-info: 3.9.0
|
ci-info: 3.9.0
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
@ -9298,11 +9318,11 @@ snapshots:
|
|||||||
chalk: 3.0.0
|
chalk: 3.0.0
|
||||||
prompts: 2.4.2
|
prompts: 2.4.2
|
||||||
|
|
||||||
jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.8.0)):
|
jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.8.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-escapes: 6.2.1
|
ansi-escapes: 6.2.1
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
jest: 29.7.0(@types/node@22.8.0)
|
jest: 29.7.0(@types/node@22.8.2)
|
||||||
jest-regex-util: 29.6.3
|
jest-regex-util: 29.6.3
|
||||||
jest-watcher: 29.7.0
|
jest-watcher: 29.7.0
|
||||||
slash: 5.1.0
|
slash: 5.1.0
|
||||||
@ -9313,7 +9333,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jest/test-result': 29.7.0
|
'@jest/test-result': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
ansi-escapes: 4.3.2
|
ansi-escapes: 4.3.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
emittery: 0.13.1
|
emittery: 0.13.1
|
||||||
@ -9322,17 +9342,17 @@ snapshots:
|
|||||||
|
|
||||||
jest-worker@29.7.0:
|
jest-worker@29.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 22.8.0
|
'@types/node': 22.8.2
|
||||||
jest-util: 29.7.0
|
jest-util: 29.7.0
|
||||||
merge-stream: 2.0.0
|
merge-stream: 2.0.0
|
||||||
supports-color: 8.1.1
|
supports-color: 8.1.1
|
||||||
|
|
||||||
jest@29.7.0(@types/node@22.8.0):
|
jest@29.7.0(@types/node@22.8.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jest/core': 29.7.0
|
'@jest/core': 29.7.0
|
||||||
'@jest/types': 29.6.3
|
'@jest/types': 29.6.3
|
||||||
import-local: 3.2.0
|
import-local: 3.2.0
|
||||||
jest-cli: 29.7.0(@types/node@22.8.0)
|
jest-cli: 29.7.0(@types/node@22.8.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
@ -9369,7 +9389,7 @@ snapshots:
|
|||||||
jscodeshift@0.14.0(@babel/preset-env@7.25.9(@babel/core@7.26.0)):
|
jscodeshift@0.14.0(@babel/preset-env@7.25.9(@babel/core@7.26.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0)
|
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0)
|
||||||
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.0)
|
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.0)
|
||||||
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.0)
|
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.0)
|
||||||
@ -9394,7 +9414,7 @@ snapshots:
|
|||||||
jsdom@20.0.3:
|
jsdom@20.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
abab: 2.0.6
|
abab: 2.0.6
|
||||||
acorn: 8.13.0
|
acorn: 8.14.0
|
||||||
acorn-globals: 7.0.1
|
acorn-globals: 7.0.1
|
||||||
cssom: 0.5.0
|
cssom: 0.5.0
|
||||||
cssstyle: 2.3.0
|
cssstyle: 2.3.0
|
||||||
@ -9408,7 +9428,7 @@ snapshots:
|
|||||||
https-proxy-agent: 5.0.1
|
https-proxy-agent: 5.0.1
|
||||||
is-potential-custom-element-name: 1.0.1
|
is-potential-custom-element-name: 1.0.1
|
||||||
nwsapi: 2.2.13
|
nwsapi: 2.2.13
|
||||||
parse5: 7.2.0
|
parse5: 7.2.1
|
||||||
saxes: 6.0.0
|
saxes: 6.0.0
|
||||||
symbol-tree: 3.2.4
|
symbol-tree: 3.2.4
|
||||||
tough-cookie: 4.1.4
|
tough-cookie: 4.1.4
|
||||||
@ -9719,7 +9739,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/generator': 7.26.0
|
'@babel/generator': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
flow-enums-runtime: 0.0.6
|
flow-enums-runtime: 0.0.6
|
||||||
metro: 0.80.12
|
metro: 0.80.12
|
||||||
@ -9740,7 +9760,7 @@ snapshots:
|
|||||||
'@babel/code-frame': 7.26.0
|
'@babel/code-frame': 7.26.0
|
||||||
'@babel/core': 7.26.0
|
'@babel/core': 7.26.0
|
||||||
'@babel/generator': 7.26.0
|
'@babel/generator': 7.26.0
|
||||||
'@babel/parser': 7.26.0
|
'@babel/parser': 7.26.1
|
||||||
'@babel/template': 7.25.9
|
'@babel/template': 7.25.9
|
||||||
'@babel/traverse': 7.25.9
|
'@babel/traverse': 7.25.9
|
||||||
'@babel/types': 7.26.0
|
'@babel/types': 7.26.0
|
||||||
@ -10046,7 +10066,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
pngjs: 3.4.0
|
pngjs: 3.4.0
|
||||||
|
|
||||||
parse5@7.2.0:
|
parse5@7.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
entities: 4.5.0
|
entities: 4.5.0
|
||||||
|
|
||||||
@ -10450,13 +10470,13 @@ snapshots:
|
|||||||
regenerate: 1.4.2
|
regenerate: 1.4.2
|
||||||
regenerate-unicode-properties: 10.2.0
|
regenerate-unicode-properties: 10.2.0
|
||||||
regjsgen: 0.8.0
|
regjsgen: 0.8.0
|
||||||
regjsparser: 0.11.1
|
regjsparser: 0.11.2
|
||||||
unicode-match-property-ecmascript: 2.0.0
|
unicode-match-property-ecmascript: 2.0.0
|
||||||
unicode-match-property-value-ecmascript: 2.2.0
|
unicode-match-property-value-ecmascript: 2.2.0
|
||||||
|
|
||||||
regjsgen@0.8.0: {}
|
regjsgen@0.8.0: {}
|
||||||
|
|
||||||
regjsparser@0.11.1:
|
regjsparser@0.11.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
jsesc: 3.0.2
|
jsesc: 3.0.2
|
||||||
|
|
||||||
@ -10943,7 +10963,7 @@ snapshots:
|
|||||||
terser@5.36.0:
|
terser@5.36.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/source-map': 0.3.6
|
'@jridgewell/source-map': 0.3.6
|
||||||
acorn: 8.13.0
|
acorn: 8.14.0
|
||||||
commander: 2.20.3
|
commander: 2.20.3
|
||||||
source-map-support: 0.5.21
|
source-map-support: 0.5.21
|
||||||
|
|
||||||
|