From d1d4259eb1d4c274ef23b966007476b36bbf1fad Mon Sep 17 00:00:00 2001 From: Fred Shema Date: Fri, 1 Nov 2024 12:11:15 +0200 Subject: [PATCH] ft(#67): setup in-app notifications --- app.json | 48 +- app/+not-found.tsx | 2 +- app/_layout.tsx | 28 +- app/auth/forgot-password.tsx | 4 +- app/auth/login/index.tsx | 44 +- app/auth/register.tsx | 9 +- app/auth/reset-password.tsx | 2 +- app/dashboard/_layout.tsx | 22 +- app/dashboard/calendar/index.tsx | 18 +- app/dashboard/index.tsx | 6 +- app/dashboard/perfomance/index.tsx | 141 - app/dashboard/trainee/Attendance.tsx | 51 +- app/dashboard/trainee/LoginActivity.tsx | 24 +- app/dashboard/trainee/documentation.tsx | 36 +- app/dashboard/trainee/notifications.tsx | 97 +- app/dashboard/trainee/performance.tsx | 5 + app/dashboard/trainee/preference.tsx | 7 +- app/dashboard/trainee/profile/edit.tsx | 13 +- app/dashboard/trainee/profile/index.tsx | 24 +- app/dashboard/trainee/tickets.tsx | 69 +- app/redirect.tsx | 6 +- assets/Icons/dashboard/Icons.tsx | 14 +- assets/images/avatar.png | Bin 5510 -> 0 bytes assets/images/background.png | Bin 134472 -> 0 bytes assets/images/favicon.png | Bin 1466 -> 0 bytes assets/images/icon - Copy.png:Zone.Identifier | 0 assets/images/logo-dark.png | Bin 4039 -> 0 bytes assets/images/logo-light.png | Bin 4099 -> 0 bytes assets/images/profile.png | Bin 2350 -> 0 bytes assets/images/profilePic.png | Bin 2825 -> 0 bytes assets/images/splash.png | Bin 47346 -> 0 bytes components/DataPaginations.tsx | 28 +- components/LanguagePicker.tsx | 76 +- components/Login/UserLogin.tsx | 30 +- components/ProfileAvatar.tsx | 2 +- components/ProfileSidebar.tsx | 16 +- components/Resume.tsx | 26 +- components/TicketsActions.tsx | 42 +- components/TicketsDetailsModal.tsx | 82 +- components/calendar/CalendarBody.tsx | 26 +- components/calendar/CalendarHeader.tsx | 112 +- components/calendar/CalendarSkeleton.tsx | 52 +- components/calendar/CustomButton.tsx | 22 +- components/calendar/DatePickerCard.tsx | 50 +- components/calendar/EventCard.tsx | 38 +- .../circleIndicator.tsx | 0 .../index.tsx | 56 +- .../styles.tsx | 0 components/profile/about.tsx | 2 +- .../settingPreference/SettingPreference.tsx | 40 +- components/sidebar.tsx | 5 +- components/sprintRatings.tsx | 4 +- components/trainee/About.tsx | 23 +- components/trainee/Account.tsx | 4 +- constants/countries.ts | 2 +- graphql/client.ts | 11 +- graphql/mutations/updateAvatar.mutation.tsx | 1 - graphql/queries/Attendance.tsx | 1 - graphql/queries/documentation.query.tsx | 18 +- graphql/queries/tickets.queries.tsx | 40 +- graphql/queries/user.ts | 17 +- hooks/useAuth.tsx | 15 +- hooks/useNotification.tsx | 53 +- internationalization/locales/en.json | 278 +- internationalization/locales/fr.json | 264 +- internationalization/locales/kin.json | 269 +- metro.config.js | 4 +- package-lock.json | 9682 ++++++----------- package.json | 80 +- providers/notifications.tsx | 188 + tailwind.config.js | 2 +- tsconfig.json | 2 +- 72 files changed, 4772 insertions(+), 7561 deletions(-) delete mode 100644 app/dashboard/perfomance/index.tsx create mode 100644 app/dashboard/trainee/performance.tsx delete mode 100644 assets/images/avatar.png delete mode 100644 assets/images/background.png delete mode 100644 assets/images/favicon.png create mode 100644 assets/images/icon - Copy.png:Zone.Identifier delete mode 100644 assets/images/logo-dark.png delete mode 100644 assets/images/logo-light.png delete mode 100644 assets/images/profile.png delete mode 100644 assets/images/profilePic.png delete mode 100644 assets/images/splash.png rename components/{perfomanceStats => performanceStats}/circleIndicator.tsx (100%) rename components/{perfomanceStats => performanceStats}/index.tsx (90%) rename components/{perfomanceStats => performanceStats}/styles.tsx (100%) create mode 100644 providers/notifications.tsx diff --git a/app.json b/app.json index 1b00270..3715f88 100644 --- a/app.json +++ b/app.json @@ -4,9 +4,10 @@ "slug": "devpulse", "version": "1.0.1", "orientation": "portrait", - "icon": "./assets/images/icon.png", - "scheme": "devpulse", + "scheme": "pulseapp", "userInterfaceStyle": "automatic", + "newArchEnabled": false, + "icon": "./assets/images/icon.png", "ios": { "supportsTablet": true, "bundleIdentifier": "com.atlp.pulseapp", @@ -35,25 +36,32 @@ } ] }, - "plugins": ["expo-router", "expo-font", "expo-localization", [ - "expo-image-picker", - { - "photosPermission": "The app needs access to your photos to let you upload a profile picture." - } - ], - [ - "expo-splash-screen", - { - "backgroundColor": "#E0E7FF", - "image": "./assets/images/icon.png", - "dark": { + "web": { + "bundler": "metro" + }, + "plugins": [ + "expo-router", + "expo-font", + "expo-localization", + [ + "expo-splash-screen", + { + "backgroundColor": "#E0E7FF", "image": "./assets/images/icon.png", - "backgroundColor": "#020917" - }, - "imageWidth": 128 - } - ] - ], + "dark": { + "image": "./assets/images/icon.png", + "backgroundColor": "#020917" + }, + "imageWidth": 128 + } + ], + [ + "expo-image-picker", + { + "photosPermission": "The app needs access to your photos to let you upload a profile picture." + } + ] + ], "experiments": { "typedRoutes": true }, diff --git a/app/+not-found.tsx b/app/+not-found.tsx index 9cb79b7..d55b76c 100644 --- a/app/+not-found.tsx +++ b/app/+not-found.tsx @@ -20,7 +20,7 @@ export default function NotFoundScreen() { {t('notFound.title')} - + {t('notFound.goHome')} diff --git a/app/_layout.tsx b/app/_layout.tsx index 57db0a3..30a6ac0 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -1,8 +1,8 @@ import { useColorScheme } from '@/components/useColorScheme'; import '@/global.css'; import { client } from '@/graphql/client'; +import NotificationsProvider from '@/providers/notifications'; import { ApolloProvider } from '@apollo/client'; -import { useApolloClientDevTools } from '@dev-plugins/apollo-client'; import { Inter_400Regular, Inter_500Medium, @@ -15,9 +15,7 @@ import { useFonts } from 'expo-font'; import { Stack } from 'expo-router'; import * as SplashScreen from 'expo-splash-screen'; import { useEffect } from 'react'; -import 'react-native-reanimated'; import { ToastProvider } from 'react-native-toast-notifications'; -export { ErrorBoundary } from 'expo-router'; import '../internationalization/index'; import { NotificationProvider } from '@/hooks/useNotification'; @@ -27,6 +25,11 @@ export const unstable_settings = { SplashScreen.preventAutoHideAsync(); +SplashScreen.setOptions({ + duration: 1000, + fade: true, +}); + export default function RootLayout() { const [loaded, error] = useFonts({ Inter_400Regular, @@ -55,21 +58,20 @@ export default function RootLayout() { function RootLayoutNav() { const colorScheme = useColorScheme(); - useApolloClientDevTools(client); return ( - - - - - - - - + + + + + + + + + - ); } diff --git a/app/auth/forgot-password.tsx b/app/auth/forgot-password.tsx index 5c2346b..f1be27c 100644 --- a/app/auth/forgot-password.tsx +++ b/app/auth/forgot-password.tsx @@ -98,7 +98,9 @@ export default function ResetPassword() { keyboardType="email-address" /> - {formik.touched.email && formik.errors.email && {t('forgotPassword.errorEmail')}} + {formik.touched.email && formik.errors.email && ( + {t('forgotPassword.errorEmail')} + )} formik.handleSubmit()} diff --git a/app/auth/login/index.tsx b/app/auth/login/index.tsx index 5b15a10..2f8e9c0 100644 --- a/app/auth/login/index.tsx +++ b/app/auth/login/index.tsx @@ -3,34 +3,15 @@ import UserLogin from '@/components/Login/UserLogin'; import { LOGIN_MUTATION, ORG_LOGIN_MUTATION } from '@/graphql/mutations/login.mutation'; import { ApolloError, useApolloClient, useMutation } from '@apollo/client'; import AsyncStorage from '@react-native-async-storage/async-storage'; -import { Href, useLocalSearchParams, useRouter } from 'expo-router'; -import { useEffect,useState } from 'react'; -import { useToast } from 'react-native-toast-notifications'; -import {ToastAndroid } from 'react-native'; +import { RelativePathString, useLocalSearchParams, useRouter } from 'expo-router'; +import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; - -class ErrorHandler { - static handleNetworkError() { - ToastAndroid.show('There was a problem contacting the server', ToastAndroid.LONG); - } - - static handleInvalidCredentials() { - ToastAndroid.show('Error Invalid credentials',ToastAndroid.LONG); - } - - static handleCustomError(message: string | undefined) { - ToastAndroid.show('Error:' + message,ToastAndroid.LONG); - } - - static handleGeneralError() { - ToastAndroid.show('Error An unexpected error occurred.',ToastAndroid.LONG); - } -} +import { useToast } from 'react-native-toast-notifications'; export default function SignInOrganization() { const toast = useToast(); const router = useRouter(); - const {t} = useTranslation(); + const { t } = useTranslation(); const [orgLoginSuccess, setOrgLoginSuccess] = useState(false); const [orgLoginMutation] = useMutation(ORG_LOGIN_MUTATION); const [LoginUser] = useMutation(LOGIN_MUTATION); @@ -68,13 +49,13 @@ export default function SignInOrganization() { setOrgLoginSuccess(true); }, onError(err: any) { - toast.show(err.message,{ + toast.show(err.message, { type: 'fail', - placement : 'top', - duration : 5000, - animationType : 'slide-in', + placement: 'top', + duration: 5000, + animationType: 'slide-in', style: { backgroundColor: 'red' }, - }) + }); }, }); } catch (err: any) { @@ -106,9 +87,9 @@ export default function SignInOrganization() { while (router.canGoBack()) { router.back(); } - + params.redirect - ? router.push(`${params.redirect}` as Href) + ? router.push(`${params.redirect}` as RelativePathString) : router.push('/dashboard'); return; } else { @@ -117,7 +98,6 @@ export default function SignInOrganization() { }); return; } - } else { await AsyncStorage.setItem('authToken', data.loginUser.token); router.push('/dashboard'); @@ -134,7 +114,7 @@ export default function SignInOrganization() { }, }); } catch (error: any) { - toast.show(t('toasts.auth.generalError') , { type: 'danger' }); + toast.show(t('toasts.auth.generalError'), { type: 'danger' }); } }; diff --git a/app/auth/register.tsx b/app/auth/register.tsx index 3d55d92..bb2f0dc 100644 --- a/app/auth/register.tsx +++ b/app/auth/register.tsx @@ -12,12 +12,7 @@ import { useFormik } from 'formik'; import { jwtDecode } from 'jwt-decode'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { - ActivityIndicator, - TextInput, - TouchableOpacity, - useColorScheme, -} from 'react-native'; +import { ActivityIndicator, TextInput, TouchableOpacity, useColorScheme } from 'react-native'; import DropDownPicker from 'react-native-dropdown-picker'; import { SvgXml } from 'react-native-svg'; import { useToast } from 'react-native-toast-notifications'; @@ -316,7 +311,7 @@ export default function RegisterForm() { { if (!TCAccepted) { - toast.show(t('toasts.auth.acceptTerms'), {type:"Warning"}); + toast.show(t('toasts.auth.acceptTerms'), { type: 'Warning' }); return; } formik.handleSubmit(); diff --git a/app/auth/reset-password.tsx b/app/auth/reset-password.tsx index db5819c..df3e4c0 100644 --- a/app/auth/reset-password.tsx +++ b/app/auth/reset-password.tsx @@ -21,7 +21,7 @@ type FormValues = { const SetNewPassword = () => { const { token } = useLocalSearchParams(); - const {t} = useTranslation(); + const { t } = useTranslation(); const originalToken = Array.isArray(token) ? token.join('.') : token?.replace(/\*/g, '.'); const [securePassword, setSecurePassword] = useState(true); const [secureConfirmPassword, setSecureConfirmPassword] = useState(true); diff --git a/app/dashboard/_layout.tsx b/app/dashboard/_layout.tsx index 74cc539..9208f25 100644 --- a/app/dashboard/_layout.tsx +++ b/app/dashboard/_layout.tsx @@ -5,7 +5,13 @@ import { lightNotifyIcon, menu, } from '@/assets/Icons/dashboard/Icons'; +import ProfileAvatar from '@/components/ProfileAvatar'; +import ProfileSidebar from '@/components/ProfileSidebar'; import Sidebar from '@/components/sidebar'; +import { GET_PROFILE } from '@/graphql/queries/user'; +import UserProvider from '@/hooks/useAuth'; +import { NotificationContext, NotificationProvider } from '@/hooks/useNotification'; +import { useQuery } from '@apollo/client'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { Slot, useRouter } from 'expo-router'; import { useContext, useEffect, useState } from 'react'; @@ -13,22 +19,17 @@ import { KeyboardAvoidingView, Platform, ScrollView, + Text, TouchableOpacity, View, useColorScheme, - Text, } from 'react-native'; +import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { SvgXml } from 'react-native-svg'; -import UserProvider from '@/hooks/useAuth'; -import { GestureHandlerRootView } from 'react-native-gesture-handler'; -import { NotificationProvider, NotificationContext } from '@/hooks/useNotification'; -import ProfileAvatar from '@/components/ProfileAvatar'; -import { GET_PROFILE } from '@/graphql/queries/user'; -import { useQuery } from '@apollo/client'; -import ProfileSidebar from '@/components/ProfileSidebar'; export type ProfileType = { + id: string; firstName: string; lastName: string; name: string; @@ -42,10 +43,13 @@ export type ProfileType = { githubUsername?: string; resume?: string; user: { + id: string; organizations: string[]; email: string; role: string; + pushNotificationTokens: string[]; team: { + id: string; name: string; cohort: { name: string; @@ -97,7 +101,7 @@ export default function DashboardLayout() { }, []); if (!authToken) { - return null; + return null; } const toggleSidebar = () => setIsSidebarOpen((prev) => !prev); diff --git a/app/dashboard/calendar/index.tsx b/app/dashboard/calendar/index.tsx index b874010..6903bca 100644 --- a/app/dashboard/calendar/index.tsx +++ b/app/dashboard/calendar/index.tsx @@ -1,15 +1,15 @@ -import { ScrollView } from 'react-native' -import { SafeAreaView } from 'react-native-safe-area-context' -import CalendarBody from '@/components/calendar/CalendarBody' +import { ScrollView } from 'react-native'; +import { SafeAreaView } from 'react-native-safe-area-context'; +import CalendarBody from '@/components/calendar/CalendarBody'; const Calendar = () => { return ( - - - + + + - ) -} + ); +}; -export default Calendar \ No newline at end of file +export default Calendar; diff --git a/app/dashboard/index.tsx b/app/dashboard/index.tsx index fcc8a43..559c904 100644 --- a/app/dashboard/index.tsx +++ b/app/dashboard/index.tsx @@ -1,8 +1,8 @@ -import React, { PropsWithChildren, useState } from 'react'; +import FeedbackModal from '@/components/feedbackModel'; +import PerformanceScores from '@/components/performanceStats'; +import { PropsWithChildren, useState } from 'react'; import { StyleSheet, Text, useColorScheme, View } from 'react-native'; import TraineeRatings from '../../components/sprintRatings'; -import PerformanceScores from '@/components/perfomanceStats'; -import FeedbackModal from '@/components/feedbackModel'; export const CustomText = ({ children }: PropsWithChildren) => {children}; diff --git a/app/dashboard/perfomance/index.tsx b/app/dashboard/perfomance/index.tsx deleted file mode 100644 index 983b5f1..0000000 --- a/app/dashboard/perfomance/index.tsx +++ /dev/null @@ -1,141 +0,0 @@ -import { useQuery } from '@apollo/client'; -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { Key, useEffect, useState } from 'react'; -import { useTranslation } from 'react-i18next'; -import { ScrollView, Text, TextInput, TouchableOpacity, useColorScheme, View } from 'react-native'; -import { useToast } from 'react-native-toast-notifications'; -import { TRAINEE_RATING } from '@/graphql/mutations/ratings'; -export default function TraineeDashboard() { - const { t } = useTranslation(); - const [sprintFilter, setSprintFilter] = useState(''); - const [selectedPhase, setSelectedPhase] = useState('Phase I'); - const [userToken, setUserToken] = useState(null); - const toast = useToast(); - - const colorScheme = useColorScheme(); - const textColor = colorScheme === 'dark' ? 'text-gray-100' : 'text-gray-800'; - const bgColor = colorScheme === 'dark' ? 'bg-primary-dark' : 'bg-secondary-light'; - const inputbg = colorScheme === 'dark' ? 'bg-primary-dark' : 'bg-primary-light'; - - useEffect(() => { - const fetchToken = async () => { - const token = await AsyncStorage.getItem('authToken'); - if (token) { - setUserToken(token); - } else { - toast.show(t('sprintRating.user_token_not_found'), {type:"danger"}); - } - }; - fetchToken(); - }, []); - - const { data, loading, error } = useQuery(TRAINEE_RATING, { - context: { - headers: { - Authorization: `Bearer ${userToken}`, - }, - }, - skip: !userToken, - }); - const handleSprintFilterChange = (text: string) => { - setSprintFilter(text); - }; - - - - useEffect(() => { - if (error) { - toast.show(t('sprintRating.error_loading_ratings'),{type:"danger"}); - } - }, [loading, error]); - - let fetchedData = data?.fetchRatingsTrainee || []; - - fetchedData = fetchedData.filter((item: any) => item.phase === selectedPhase); - - if (sprintFilter) { - fetchedData = fetchedData.filter((item: any) => String(item.sprint).includes(sprintFilter)); - } - - fetchedData = fetchedData.sort((a: any, b: any) => a.sprint - b.sprint); - - const phaseName = fetchedData.length > 0 ? fetchedData[0].phase : t('sprintRating.phase'); - - return ( - - - - - {t(`performance.performance_scores`)} - - - - {phaseName} - - - - - - - - - - {t('sprintRating.sprint')} - - - {t('sprintRating.quantity')} - - - {t('sprintRating.quality')} - - - {t('sprintRating.professionalism')} - - - {t(`performance.average`)} - - - - {fetchedData.length === 0 ? ( - - {t('sprintRating.no_ratings_available')} - - ) : ( - fetchedData.map((item: any, index: Key | null | undefined) => ( - - {item.sprint} - {item.quantity} - {item.quality} - - {item.professional_Skills} - - - {( - (Number(item.professional_Skills) + - Number(item.quality) + - Number(item.quantity)) / - 3 - ).toFixed(1)} - - - )) - )} - - - - - - - - ); -} diff --git a/app/dashboard/trainee/Attendance.tsx b/app/dashboard/trainee/Attendance.tsx index bfe2017..421c14f 100644 --- a/app/dashboard/trainee/Attendance.tsx +++ b/app/dashboard/trainee/Attendance.tsx @@ -1,14 +1,12 @@ -import { useState, useEffect } from 'react'; -import { Text, View, Image, TouchableOpacity, ScrollView } from 'react-native'; +import { GET_TRAINEE_ATTENDANCE } from '@/graphql/queries/Attendance'; +import { useQuery } from '@apollo/client'; import AntDesign from '@expo/vector-icons/AntDesign'; import AsyncStorage from '@react-native-async-storage/async-storage'; -import { useQuery } from '@apollo/client'; -import { GET_TRAINEE_ATTENDANCE } from '@/graphql/queries/Attendance'; -import { useColorScheme } from 'react-native'; -import { useToast } from 'react-native-toast-notifications'; import { jwtDecode } from 'jwt-decode'; +import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; - +import { Image, ScrollView, Text, TouchableOpacity, useColorScheme, View } from 'react-native'; +import { useToast } from 'react-native-toast-notifications'; interface DayStatus { date: string; @@ -49,9 +47,8 @@ export default function TraineeAttendance() { const [traineeId, setTraineeId] = useState(null); const [selectedWeekAverage, setSelectedWeekAverage] = useState(null); - const toast = useToast(); - const {t} = useTranslation (); + const { t } = useTranslation(); const colorScheme = useColorScheme(); const textColor = colorScheme === 'dark' ? 'text-gray-100' : 'text-gray-800'; @@ -114,9 +111,7 @@ export default function TraineeAttendance() { const phaseName = selectedPhaseData?.phase.name; const phaseAverage = selectedPhaseData?.phaseAverage; const allPhasesAverageData = data?.getTraineeAttendance.allPhasesAverage; - - useEffect(() => { const selectedWeekNumber = selectedWeek ? parseInt(selectedWeek, 10) : null; @@ -182,9 +177,15 @@ export default function TraineeAttendance() { - {t('attendance.day')} - {t('attendance.date')} - {t('attendance.score')} + + {t('attendance.day')} + + + {t('attendance.date')} + + + {t('attendance.score')} + {selectedWeekData ? ( @@ -203,9 +204,9 @@ export default function TraineeAttendance() { {score == 2 ? ( ) : score == 1 ? ( - - - + + + ) : score == 0 ? ( ) : ( @@ -223,14 +224,22 @@ export default function TraineeAttendance() { - {t('attendance.attendanceAverages')} + + {t('attendance.attendanceAverages')} + - {t('attendance.week')} {selectedWeekAverage !== undefined ? selectedWeekAverage : 0.0} + + {t('attendance.week')}{' '} + {selectedWeekAverage !== undefined ? selectedWeekAverage : 0.0} + - {phaseName !== undefined ? phaseName : t('attendance.phaseName')}: {phaseAverage !== undefined ? phaseAverage : 0.0} + {phaseName !== undefined ? phaseName : t('attendance.phaseName')}:{' '} + {phaseAverage !== undefined ? phaseAverage : 0.0} + + + {t('attendance.allPhasesAverage')} {allPhasesAverageData} - {t('attendance.allPhasesAverage')} {allPhasesAverageData} diff --git a/app/dashboard/trainee/LoginActivity.tsx b/app/dashboard/trainee/LoginActivity.tsx index 2cd5c83..fa7563b 100644 --- a/app/dashboard/trainee/LoginActivity.tsx +++ b/app/dashboard/trainee/LoginActivity.tsx @@ -95,22 +95,22 @@ export default function LoginActivity() { - {t('loginActivity.Date')} + {t('loginActivity.Date')} - {t('loginActivity.CountryName')} + {t('loginActivity.CountryName')} - {t('loginActivity.City')} + {t('loginActivity.City')} - {t('loginActivity.State')} + {t('loginActivity.State')} - {t('loginActivity.IPv4')} + {t('loginActivity.IPv4')} - {t('loginActivity.Attempt')} + {t('loginActivity.Attempt')} {displayActivities.length === 0 ? ( @@ -148,8 +148,7 @@ export default function LoginActivity() { - {item.failed === 0 ? t('loginActivity.Failed') : t('loginActivity.Success')} - + {item.failed === 0 ? t('loginActivity.Failed') : t('loginActivity.Success')} )) @@ -160,16 +159,14 @@ export default function LoginActivity() { - {t('loginActivity.Page{page}of{totalPages}', { page, totalPages })} - + {t('loginActivity.Page{page}of{totalPages}', { page, totalPages })} {page > 1 && ( handleGoBack()} style={[{ padding: 8, borderRadius: 8, backgroundColor: '#6B7280' }]} > - {t('loginActivity.Previous')} - + {t('loginActivity.Previous')} )} {page < totalPages && ( @@ -178,8 +175,7 @@ export default function LoginActivity() { style={{ padding: 8, backgroundColor: '#3B82F6', borderRadius: 8 }} > - {t('loginActivity.Next')} - + {t('loginActivity.Next')} )} diff --git a/app/dashboard/trainee/documentation.tsx b/app/dashboard/trainee/documentation.tsx index fce6e71..db0b1d3 100644 --- a/app/dashboard/trainee/documentation.tsx +++ b/app/dashboard/trainee/documentation.tsx @@ -23,7 +23,9 @@ const DocumentationComponent = () => { const textColor = colorScheme === 'dark' ? 'text-gray-100' : 'text-gray-800'; const bgColor = colorScheme === 'dark' ? 'bg-primary-dark' : 'bg-secondary-light'; - const { data, loading, error } = useQuery<{ getDocumentations: Documentation[] }>(GET_DOCUMENTATIONS); + const { data, loading, error } = useQuery<{ getDocumentations: Documentation[] }>( + GET_DOCUMENTATIONS + ); if (loading) { return ( @@ -46,12 +48,8 @@ const DocumentationComponent = () => { const renderSubDocuments = (subDocs: SubDocument[]) => { return subDocs.map((subDoc, index) => ( - - {subDoc.title} - - - {subDoc.description} - + {subDoc.title} + {subDoc.description} )); }; @@ -61,22 +59,16 @@ const DocumentationComponent = () => { {t('documentation.pageTitle')} - + {documentations.map((doc, index) => ( - - {doc.title} - - + {doc.title} + - - {doc.description} - + {doc.description} {doc.subDocuments && doc.subDocuments.length > 0 && ( - - {renderSubDocuments(doc.subDocuments)} - + {renderSubDocuments(doc.subDocuments)} )} @@ -119,13 +111,11 @@ const DocumentationComponent = () => { {t('documentation.login.title')} - - {t('documentation.login.intro')} - + {t('documentation.login.intro')} {t('documentation.login.welcome')} - + {t('documentation.login.stepsTitle')} @@ -150,4 +140,4 @@ const DocumentationComponent = () => { ); }; -export default DocumentationComponent; \ No newline at end of file +export default DocumentationComponent; diff --git a/app/dashboard/trainee/notifications.tsx b/app/dashboard/trainee/notifications.tsx index 23badf3..c1563a5 100644 --- a/app/dashboard/trainee/notifications.tsx +++ b/app/dashboard/trainee/notifications.tsx @@ -1,33 +1,33 @@ -import { useState, useEffect, useContext } from 'react'; -import { useSubscription } from '@apollo/client'; -import{ View, - Text, - TouchableOpacity, - SafeAreaView, - Image, - ActivityIndicator, - useColorScheme, - ScrollView, -} from 'react-native'; -import { gql, useLazyQuery, useMutation } from '@apollo/client'; -import { useToast } from 'react-native-toast-notifications'; -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { getAllNotification } from '@/graphql/queries/Notifications.queries'; -import { formatDistanceToNowStrict } from 'date-fns'; import { deleteNotification, - markAsRead, markAllAsRead, -NotificationSubscription, -TICKETS_NOTS_SUB, -PUSH_NOTIFICATION_SUB, + markAsRead, + NotificationSubscription, + PUSH_NOTIFICATION_SUB, + TICKETS_NOTS_SUB, } from '@/graphql/mutations/notificationMutation'; -import { jwtDecode } from 'jwt-decode'; +import { getAllNotification } from '@/graphql/queries/Notifications.queries'; import { NotificationContext } from '@/hooks/useNotification'; -import { Swipeable } from 'react-native-gesture-handler'; -import { useTranslation } from 'react-i18next'; -import { enUS, fr, es, de } from 'date-fns/locale'; +import { useLazyQuery, useMutation, useSubscription } from '@apollo/client'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { formatDistanceToNowStrict } from 'date-fns'; +import { de, enUS, es, fr } from 'date-fns/locale'; import { useRouter } from 'expo-router'; +import { jwtDecode } from 'jwt-decode'; +import { useContext, useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { + ActivityIndicator, + Image, + SafeAreaView, + ScrollView, + Text, + TouchableOpacity, + useColorScheme, + View, +} from 'react-native'; +import { Swipeable } from 'react-native-gesture-handler'; +import { useToast } from 'react-native-toast-notifications'; const rw = { code: 'rw', formatDistance: (token: string, count: number, options: any) => { @@ -58,7 +58,6 @@ const rw = { }, }; - interface Notification { id: string; message: string; @@ -111,7 +110,6 @@ const Notifications = () => { } }; - const [fetchNotifications] = useLazyQuery(getAllNotification, { context: { headers: { @@ -148,7 +146,7 @@ const Notifications = () => { } }, }); - + useSubscription(PUSH_NOTIFICATION_SUB, { onData: (data) => { const newNotification = data.data.data.pushNotification; @@ -163,7 +161,6 @@ const Notifications = () => { }, }); - useEffect(() => { const fetchToken = async () => { try { @@ -174,8 +171,12 @@ const Notifications = () => { toast.show('Token Not found.', { type: 'danger', placement: 'top', duration: 3000 }); } } catch (error) { - toast.show('Failed to retrieve token.', { type: 'danger', placement: 'top', duration: 3000 }); - } + toast.show('Failed to retrieve token.', { + type: 'danger', + placement: 'top', + duration: 3000, + }); + } }; fetchToken(); }, []); @@ -189,13 +190,17 @@ const Notifications = () => { if (userToken) { try { const decoded = jwtDecode(userToken as string); - setUserId(decoded.userId); + setUserId(decoded.userId); } catch (error) { - toast.show(`Failed to decode token.${error}`, { type: 'danger', placement: 'top', duration: 3000 }); + toast.show(`Failed to decode token.${error}`, { + type: 'danger', + placement: 'top', + duration: 3000, + }); } } }, [userToken]); - + useSubscription(NotificationSubscription, { onData: (data) => { const newNotification = data.data.data.newRating; @@ -301,7 +306,6 @@ const Notifications = () => { try { const token = await AsyncStorage.getItem('authToken'); if (!token) throw new Error('Authentication token is missing'); - await delNotification({ variables: { deleteNotificationsId: id }, @@ -311,7 +315,7 @@ const Notifications = () => { }); setNotifications((prev) => prev.filter((notification) => notification.id !== id)); - const notificationToDelete = notifications.find((notification) => notification.id === id); + const notificationToDelete = notifications.find((notification) => notification.id === id); if (notificationToDelete && !notificationToDelete.read) { setUnreadCount((prevCount) => prevCount - 1); Delete(id); @@ -414,7 +418,9 @@ const Notifications = () => { ); } const filteredNotifications = - activeTab === 'All' ? notifications : notifications.filter((notification) => !notification.read); + activeTab === 'All' + ? notifications + : notifications.filter((notification) => !notification.read); return ( @@ -424,12 +430,17 @@ const Notifications = () => { setActiveTab('All')}> - {t('notifications.all')} + + {t('notifications.all')} + - - setActiveTab('Unread')}> - + + setActiveTab('Unread')}> + {t('notifications.unread')} ({unreadCount}) @@ -446,7 +457,9 @@ const Notifications = () => { {t('notifications.noNotifications')} ) : ( - filteredNotifications.map((item) => {renderNotification({ item })}) + filteredNotifications.map((item) => ( + {renderNotification({ item })} + )) )} diff --git a/app/dashboard/trainee/performance.tsx b/app/dashboard/trainee/performance.tsx new file mode 100644 index 0000000..afce240 --- /dev/null +++ b/app/dashboard/trainee/performance.tsx @@ -0,0 +1,5 @@ +import PerformanceScores from '@/components/performanceStats'; + +export default function PerformanceDashboard() { + return ; +} diff --git a/app/dashboard/trainee/preference.tsx b/app/dashboard/trainee/preference.tsx index a77eecb..d5209c4 100644 --- a/app/dashboard/trainee/preference.tsx +++ b/app/dashboard/trainee/preference.tsx @@ -1,9 +1,4 @@ -import { Text, View } from 'react-native'; import Settings from '@/components/settingPreference/SettingPreference'; export default function PreferenceDashboard() { - return ( - - - - ); + return ; } diff --git a/app/dashboard/trainee/profile/edit.tsx b/app/dashboard/trainee/profile/edit.tsx index e61cf14..2ca277c 100644 --- a/app/dashboard/trainee/profile/edit.tsx +++ b/app/dashboard/trainee/profile/edit.tsx @@ -1,15 +1,18 @@ -import Resume from '@/components/Resume'; import ProfileAvatar from '@/components/ProfileAvatar'; +import Resume from '@/components/Resume'; import { COUNTRIES } from '@/constants/countries'; +import { UPDATE_AVATAR } from '@/graphql/mutations/updateAvatar.mutation'; import { UPDATE_PROFILE } from '@/graphql/mutations/UpdateProfile.mutation'; import { GET_PROFILE } from '@/graphql/queries/user'; import { EditProfileSchema } from '@/validations/editProfile.schema'; import { useMutation, useQuery } from '@apollo/client'; import { Ionicons } from '@expo/vector-icons'; import AsyncStorage from '@react-native-async-storage/async-storage'; +import * as ImagePicker from 'expo-image-picker'; import { router } from 'expo-router'; import { useFormik } from 'formik'; import { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { ActivityIndicator, Text, @@ -21,9 +24,6 @@ import { import DropDownPicker from 'react-native-dropdown-picker'; import { useToast } from 'react-native-toast-notifications'; import { CoverImage } from '.'; -import { useTranslation } from 'react-i18next'; -import * as ImagePicker from 'expo-image-picker'; -import { UPDATE_AVATAR } from '@/graphql/mutations/updateAvatar.mutation'; type FormValues = { firstName: string; @@ -100,6 +100,9 @@ const EditProfile = () => { useEffect(() => { if (data) { setProfile(data.getProfile); + (async function () { + await AsyncStorage.setItem('userProfile', JSON.stringify(data.getProfile)); + })(); } }, [data]); @@ -256,7 +259,7 @@ const EditProfile = () => { diff --git a/app/dashboard/trainee/profile/index.tsx b/app/dashboard/trainee/profile/index.tsx index 5e4ec6a..9fbb232 100644 --- a/app/dashboard/trainee/profile/index.tsx +++ b/app/dashboard/trainee/profile/index.tsx @@ -1,21 +1,21 @@ -import { Text, View } from '@/components/Themed'; -import { useEffect, useState } from 'react'; -import { Image, Pressable, ScrollView, TouchableOpacity, useColorScheme } from 'react-native'; -import { SvgXml } from 'react-native-svg'; -import * as ImagePicker from 'expo-image-picker'; import { editBG } from '@/assets/Icons/dashboard/Icons'; import ProfileAvatar from '@/components/ProfileAvatar'; +import { Text, View } from '@/components/Themed'; import AboutTrainee from '@/components/trainee/About'; import ProfileAccountTab from '@/components/trainee/Account'; import TraineeOrg from '@/components/trainee/Organisation'; +import { UPDATE_AVATAR } from '@/graphql/mutations/updateAvatar.mutation'; import { GET_PROFILE, GET_TRAINEE_PROFILE } from '@/graphql/queries/user'; import { useMutation, useQuery } from '@apollo/client'; import { Ionicons } from '@expo/vector-icons'; import AsyncStorage from '@react-native-async-storage/async-storage'; -import { router, useLocalSearchParams, useRouter } from 'expo-router'; -import { useToast } from 'react-native-toast-notifications'; +import * as ImagePicker from 'expo-image-picker'; +import { useRouter } from 'expo-router'; +import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { UPDATE_AVATAR } from '@/graphql/mutations/updateAvatar.mutation'; +import { Image, Pressable, ScrollView, TouchableOpacity, useColorScheme } from 'react-native'; +import { SvgXml } from 'react-native-svg'; +import { useToast } from 'react-native-toast-notifications'; type TabKey = 'About' | 'Organisation' | 'Account'; @@ -68,6 +68,9 @@ export default function Profile() { useEffect(() => { if (data) { setProfile(data.getProfile); + (async function () { + await AsyncStorage.setItem('userProfile', JSON.stringify(data.getProfile)); + })(); } }, [data]); @@ -120,6 +123,9 @@ export default function Profile() { useEffect(() => { if (traineedata) { setTraineeProfile(traineedata.getProfile); + (async function () { + await AsyncStorage.setItem('userProfile', JSON.stringify(traineedata.getProfile)); + })(); } }, [traineedata]); @@ -203,7 +209,7 @@ export default function Profile() { diff --git a/app/dashboard/trainee/tickets.tsx b/app/dashboard/trainee/tickets.tsx index e89ef52..b4101f0 100644 --- a/app/dashboard/trainee/tickets.tsx +++ b/app/dashboard/trainee/tickets.tsx @@ -26,7 +26,7 @@ interface TicketsData { getAllTickets: Ticket[]; } -interface TicketsQueryVariables { } +interface TicketsQueryVariables {} export default function Tickets() { const { t } = useTranslation(); @@ -43,7 +43,6 @@ export default function Tickets() { const [selectedTicketId, setSelectedTicketId] = useState(null); const [isDropdownVisible, setIsDropdownVisible] = useState(false); - const textColor = colorScheme === 'dark' ? 'text-gray-100' : 'text-gray-800'; const bgColor = colorScheme === 'dark' ? 'bg-primary-dark' : 'bg-secondary-light'; const inputbg = colorScheme === 'dark' ? 'bg-primary-dark' : 'bg-primary-light'; @@ -52,12 +51,16 @@ export default function Tickets() { const fetchToken = async () => { const token = await AsyncStorage.getItem('authToken'); if (token) setUserToken(token); - else toast.show('Token not found', { type: "danger" }); + else toast.show('Token not found', { type: 'danger' }); }; fetchToken(); }, []); - const { data: ticketsData, loading: ticketsLoading, error } = useQuery(GET_TICKETS, { + const { + data: ticketsData, + loading: ticketsLoading, + error, + } = useQuery(GET_TICKETS, { context: { headers: { Authorization: `Bearer ${userToken}` }, }, @@ -73,18 +76,19 @@ export default function Tickets() { useEffect(() => { if (error) { - toast.show('Error fetching tickets', { type: "danger" }); + toast.show('Error fetching tickets', { type: 'danger' }); } }, [ticketsLoading, error]); const handleFilterChange = (value: string) => { setFilterInput(value); const lowercasedValue = value.toLowerCase(); - const filteredData = ticketsData?.getAllTickets.filter(ticket => - ticket.subject.toLowerCase().includes(lowercasedValue) || - ticket.message.toLowerCase().includes(lowercasedValue) || - ticket.user.email.toLowerCase().includes(lowercasedValue) || - ticket.assignee.email.toLowerCase().includes(lowercasedValue) + const filteredData = ticketsData?.getAllTickets.filter( + (ticket) => + ticket.subject.toLowerCase().includes(lowercasedValue) || + ticket.message.toLowerCase().includes(lowercasedValue) || + ticket.user.email.toLowerCase().includes(lowercasedValue) || + ticket.assignee.email.toLowerCase().includes(lowercasedValue) ); setFilteredTickets(filteredData || []); setPageIndex(0); @@ -169,32 +173,43 @@ export default function Tickets() { {ticketsLoading ? ( - Loading tickets... - ) : - currentTickets.length ? ( + + Loading tickets... + + ) : currentTickets.length ? ( currentTickets.map((ticket) => ( - + {ticket.subject} {ticket.message} - {formatDate(ticket.createdAt)} + + {formatDate(ticket.createdAt)} + {ticket.user?.email} {ticket.assignee?.email} - handleActionsPress(ticket.id)} className="flex-row items-center text-white"> + handleActionsPress(ticket.id)} + className="flex-row items-center text-white" + > {isDropdownVisible && selectedTicketId === ticket.id && ( - openFeedbackModal(ticket)} - onClose={() => setIsDropdownVisible(false)} - /> - )} + openFeedbackModal(ticket)} + onClose={() => setIsDropdownVisible(false)} + /> + )} )) ) : ( - {t('tickets.noTickets')} + + {t('tickets.noTickets')} + )} @@ -213,10 +228,10 @@ export default function Tickets() { columnLength={currentTickets.length} /> + visible={isModalVisible} + onClose={closeModal} + ticket={selectedTicket} + /> diff --git a/app/redirect.tsx b/app/redirect.tsx index 74d3ca2..a99ada4 100644 --- a/app/redirect.tsx +++ b/app/redirect.tsx @@ -1,9 +1,9 @@ import { Text, View } from '@/components/Themed'; import { Href, Link, useLocalSearchParams, useRouter } from 'expo-router'; import { useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; import { Linking } from 'react-native'; import { useToast } from 'react-native-toast-notifications'; -import { useTranslation } from 'react-i18next'; type RedirectParams = { path: string; @@ -19,7 +19,7 @@ export default function Redirect() { useEffect(() => { (async () => { if (!path) { - router.replace('/'); + router.replace('/(onboarding)'); return; } @@ -43,7 +43,7 @@ export default function Redirect() { return ( {t('redirecting')}... - + {t('go_to_home_screen')} diff --git a/assets/Icons/dashboard/Icons.tsx b/assets/Icons/dashboard/Icons.tsx index aa342a9..20a4b1c 100644 --- a/assets/Icons/dashboard/Icons.tsx +++ b/assets/Icons/dashboard/Icons.tsx @@ -45,7 +45,7 @@ export const lightTickets = ` -` +`; export const lightAttendance = ` @@ -103,28 +103,28 @@ export const darkLogout = ` `; -export const lightActions =` +export const lightActions = ` -` +`; export const darkActions = ` -` +`; export const eye = ` -` +`; -export const copy =` +export const copy = ` -` +`; export const close = ` diff --git a/assets/images/avatar.png b/assets/images/avatar.png deleted file mode 100644 index f23a9f63419dc8257f74ae5243827d9b8360b4dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5510 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 z 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 z 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 diff --git a/assets/images/icon - Copy.png:Zone.Identifier b/assets/images/icon - Copy.png:Zone.Identifier new file mode 100644 index 0000000..e69de29 diff --git a/assets/images/logo-dark.png b/assets/images/logo-dark.png deleted file mode 100644 index 9969e69ecd66e4e64133aba8c8ac094537105272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4039 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 diff --git a/assets/images/logo-light.png b/assets/images/logo-light.png deleted file mode 100644 index cf4618c59579a826fd54db60b42bbe0f7f08435b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4099 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 yp+(K=Q`6TuWbNHG)TcA%tfdYN#L;r(;KK8Xh zoBn|`4{6i1K;gz{9VcGoSh6iq8%0s#PR@`+4LQTfxp#(?lw_>yJL_4$^PNNCcYpZP zHY{OU6eUQK1VIoWu|?-Dmy2Jsqt7;r{`jQ;Q55-m{ID$ko<%!*P85Lc5_*S+kYyP?Q$lLy3^FsPY$upP zZlg#BSVQFkUo0B7#jc@;7$~N2N_N;K(Kf2ttf5>wz~<+lqH(YTpW6+;&xgIj9?I1k z6jg=n@!%VmZ{SBie+O=_hew1N!L;%7fdQ010exFJQ#J_iKsocAU9)d%Fha@cYRC9qTKP zaqmAL+G%o9#)HiB2*)WW=K}Xs8s6lK{%KkpcmMSs#zQ_#X404l2>AYumoXL|g_{7H zFPHIX^#yW`79s&Z9xHY9C>|C?^v;LxVezGFh$SW*odO4&g(CwT<&tw#Xd7T>i5JY)izhsPd9#a~3om0Pm4wgdg)0=Y4JFWxx?Q+= z^%^4K5Q2U${`$|mDAZN-3?mYycOwH?g+zWLV#vs4SacIPq{8 zIC-{9OyW1ymV#DWg+cGIIyEd4-EIdeDN?H?bQJ|1r3r;r&orTTy70;_%%zjKv@pwM z7|i=;%RCLt8I#@{7{ZLOJ-1FGknLWo*+WeSGf-(Z&^gp0QJ8(f2tx5RM7IxS&*D7b z^Z1cSq>zXwF*X{(Tq?#5VRBlk!inX0xEaY{NHWJtk69&A1iZcglIa=jQHg~qmm$9o zn^g^eU%o>O*Ft7=1Xs_WLx9L+```diw|22zDihXCgb4ZUeZASj)Z7^dU^c%CwDls0R) z4U%axjv%^b4JJ80HT0TkU|fF!?Ht?8DwgxXqBqYjF5#6cOGu8$2#5TDt|6V7!3cR4 zL>D8`D59wp*7pjSKQ#}v+rxgb$dT@L$ym7X5_vv9RK^tZjz*pj0O%6Frh~EFBTGmS z{?f51ZhrGT&WtCqv0H)}3t}pr!qVbJ)Y}?vUAaWcJOt7Xo{I)TK`%BdZOHMs(_U?K z8;;UGZ>#3O^RFH@DuMG$SD@@?5%vXgk_M2VNa(cMhLDqRqU5*@Dsw*nK`7#C!o~p+}o%x zghH_li43}V{sJz|o~DvCP_8RTQ;TJR>{~|zM4vo1O@r^;^W)0r9<1lk?wW`v#<@IJ{Seyh~hrWcD2TSrrHM8Xjg>5p=mRPxl&a1GoSD7i{e9p`>;2>mPg<`;97A zw{m#8y@x6CIzTi$1loXLzO3B75C(JyiwM-k z-uc-t@c%~-QExSI(9*C`$dkz?2h^<}{*)Y&2>CsZex`h|PAF#{4#IsrJnS${66N+I z-_Q^s^m{!PHr6*$T;4)J^g$}r;HJj2sa0_O(gHqSUV(?w6C2MEH8X_UvY1lCF{1C3 zoK3IC5N?s%7LE*HFUztQRxpmo8+nwKHr{ykIwlt;A$VmZQ{$*~T8PKPSj**+%@r|y z?lO%>E^UIhf)bCUp zc$zQ5BCjuhYYA_@{yI+0&7s`Vk*8;M>V#^wjIFJ0{;kh_e?j!9z2iaSU`P(Qeu&yv0(P8C@MluS>&&L3G|mG?qqCI0wC&$NVI*Su~7| z?L3}kx6q+_KJ2ny--D0%JQ)qb9T-C*HI3!_@1tC#vLoV2Ok^N=2|JA890P2$GmufO zn-rFg-hoJ=@&|%MB!1|J9aL*ooL;My-cIjCo5TaDFy6@!zgk3 zNWg=si?^_U*y3$DM73Ti?xRAp;AlLBc!~x}Hn2D?RWxYm(^s0 zzn(v!n)VRVePlog9uHN;;wy;86KK{7d?aJ?=+_x_NFV*e@xxEox~8B?^B+6D0PG$( UCz}o82LJ#707*qoM6N<$f}zhyjsO4v diff --git a/assets/images/profilePic.png b/assets/images/profilePic.png deleted file mode 100644 index 3d05b9779615fc2cb72a1d4ac8c2994ad8fd3ed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2825 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 diff --git a/components/DataPaginations.tsx b/components/DataPaginations.tsx index 10ef074..a5f8c08 100644 --- a/components/DataPaginations.tsx +++ b/components/DataPaginations.tsx @@ -33,7 +33,7 @@ export default function DataPagination({ const [isDropdownOpen, setDropdownOpen] = useState(false); const [selectedPageSize, setSelectedPageSize] = useState(pageSize); const colorScheme = useColorScheme(); - const {t} = useTranslation(); + const { t } = useTranslation(); const pageSizes = [3, 5, 10, 25, 50, 100]; @@ -45,7 +45,6 @@ export default function DataPagination({ const effectivePageCount = columnLength === 0 ? 1 : pageOptions.length; - return ( {pageOptions.length >= 0 && ( @@ -68,10 +67,10 @@ export default function DataPagination({ - - - {t('tickets.page')} {columnLength === 0 ? 1 : pageIndex + 1} of {effectivePageCount} - + + + {t('tickets.page')} {columnLength === 0 ? 1 : pageIndex + 1} of {effectivePageCount} + @@ -79,11 +78,22 @@ export default function DataPagination({ onPress={() => setDropdownOpen(!isDropdownOpen)} className="px-3 py-2 border rounded-lg flex-row border border-[#9e85f5] dark:border-[#fff] bg-white dark:bg-[#9e85f5]" > - {t('tickets.show')} {selectedPageSize} - + + {t('tickets.show')} {selectedPageSize} + + {isDropdownOpen && ( - setDropdownOpen(false)}> + setDropdownOpen(false)} + > setDropdownOpen(false)} diff --git a/components/LanguagePicker.tsx b/components/LanguagePicker.tsx index f5f5b52..50fa467 100644 --- a/components/LanguagePicker.tsx +++ b/components/LanguagePicker.tsx @@ -57,48 +57,46 @@ export default function LanguagePicker({ showFlag = true }) { onRequestClose={() => setModalVisible(false)} > - setModalVisible(false)} - > - - e.stopPropagation()} - > - - {t('selectLanguage')} - + setModalVisible(false)} + > + + e.stopPropagation()} + > + + {t('selectLanguage')} + - - {LANGUAGES.map((lang) => ( - handleLanguageChange(lang.code)} - > - - + {LANGUAGES.map((lang) => ( + handleLanguageChange(lang.code)} > - {t(lang.labelKey)} - - - ))} - - - - - - + + + {t(lang.labelKey)} + + + ))} + + + + diff --git a/components/Login/UserLogin.tsx b/components/Login/UserLogin.tsx index ac7ce96..9edd1a0 100644 --- a/components/Login/UserLogin.tsx +++ b/components/Login/UserLogin.tsx @@ -42,7 +42,7 @@ export default function UserLogin({ onSubmit }: userLoginProps) { }; const formik = useFormik({ - initialValues: {email: '', password: '' } as FormValues, + initialValues: { email: '', password: '' } as FormValues, onSubmit: async (values: FormValues) => { setLoading(true); await onSubmit(values); @@ -94,25 +94,25 @@ export default function UserLogin({ onSubmit }: userLoginProps) { )} - {t('userLogin.password')} - - {t('userLogin.password')} + + - + = ({ onClose }) => { const colorScheme = useColorScheme(); const { t } = useTranslation(); const theme = useColorScheme(); - + const iconColor = colorScheme === 'dark' ? 'white' : 'black'; const [isHovered, setIsHovered] = useState(false); @@ -46,21 +46,22 @@ const ProfileSidebar: React.FC = ({ onClose }) => { handleNavigate('/dashboard/trainee/profile')} - > + > + - {t('settings.profile')} + {t('settings.profile')} - handleNavigate('/dashboard/trainee/preference')} - > + > + = ({ onClose }) => { onPress={() => handleNavigate('/dashboard/trainee/LoginActivity')} onPressIn={() => setIsHovered(true)} onPressOut={() => setIsHovered(false)} - > + > + = ({ onClose }) => { ); }; -export default ProfileSidebar; \ No newline at end of file +export default ProfileSidebar; diff --git a/components/Resume.tsx b/components/Resume.tsx index cfb178d..8747078 100644 --- a/components/Resume.tsx +++ b/components/Resume.tsx @@ -1,23 +1,23 @@ -import { useEffect, useState } from 'react'; +import { UPLOAD_RESUME } from '@/graphql/mutations/Resume.mutations'; +import { GET_TRAINEE_PROFILE } from '@/graphql/queries/user'; +import { useMutation } from '@apollo/client'; +import AsyncStorage from '@react-native-async-storage/async-storage'; import axios from 'axios'; +import * as DocumentPicker from 'expo-document-picker'; +import { DocumentPickerResult } from 'expo-document-picker'; +import { jwtDecode } from 'jwt-decode'; +import { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { - View, + ActivityIndicator, + ScrollView, Text, + TextInput, TouchableOpacity, - ScrollView, useColorScheme, - TextInput, - ActivityIndicator, + View, } from 'react-native'; -import * as DocumentPicker from 'expo-document-picker'; -import { DocumentPickerResult } from 'expo-document-picker'; -import { UPLOAD_RESUME } from '@/graphql/mutations/Resume.mutations'; import { useToast } from 'react-native-toast-notifications'; -import { useMutation } from '@apollo/client'; -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { jwtDecode } from 'jwt-decode'; -import { GET_TRAINEE_PROFILE } from '@/graphql/queries/user'; -import { useTranslation } from 'react-i18next'; const Resume = () => { const colorScheme = useColorScheme(); diff --git a/components/TicketsActions.tsx b/components/TicketsActions.tsx index 66762da..af597e0 100644 --- a/components/TicketsActions.tsx +++ b/components/TicketsActions.tsx @@ -7,7 +7,6 @@ import { SvgXml } from 'react-native-svg'; import { useTranslation } from 'react-i18next'; import * as Clipboard from 'expo-clipboard'; - interface ActionsDropdownProps { ticketId: string; onView: () => void; @@ -15,31 +14,36 @@ interface ActionsDropdownProps { } export default function ActionsDropdown({ ticketId, onView, onClose }: ActionsDropdownProps) { - const toast = useToast(); - const {t} = useTranslation(); - const handleCopyId = () => { - try { - if (ticketId) { - Clipboard.setString(ticketId); - toast.show(t('tickets.copySuccess'), { type: "success" }); - onClose(); - } else { - toast.show(t('tickets.idNotFound'), { type: "danger" }); - } - } catch (error) { - toast.show(t('tickets.copyFail'), { type: "danger" }); + const toast = useToast(); + const { t } = useTranslation(); + const handleCopyId = () => { + try { + if (ticketId) { + Clipboard.setString(ticketId); + toast.show(t('tickets.copySuccess'), { type: 'success' }); + onClose(); + } else { + toast.show(t('tickets.idNotFound'), { type: 'danger' }); } - }; - + } catch (error) { + toast.show(t('tickets.copyFail'), { type: 'danger' }); + } + }; return ( - { onView(); onClose(); }} className="py-2 flex-row items-center gap-1"> - + { + onView(); + onClose(); + }} + className="py-2 flex-row items-center gap-1" + > + {t('tickets.view')} - + {t('tickets.copy')} diff --git a/components/TicketsDetailsModal.tsx b/components/TicketsDetailsModal.tsx index a40c561..689d559 100644 --- a/components/TicketsDetailsModal.tsx +++ b/components/TicketsDetailsModal.tsx @@ -4,53 +4,59 @@ import { useTranslation } from 'react-i18next'; import { Modal, Text, View, TouchableOpacity, useColorScheme } from 'react-native'; interface TicketDetailsModalProps { - visible: boolean; - onClose: () => void; - ticket: { - id: string; - subject: string; - message: string; - status: string; - user: { email: string }; - assignee: { email: string }; - } | null; + visible: boolean; + onClose: () => void; + ticket: { + id: string; + subject: string; + message: string; + status: string; + user: { email: string }; + assignee: { email: string }; + } | null; } const TicketDetailsModal: React.FC = ({ visible, onClose, ticket }) => { - const colorScheme = useColorScheme(); - const {t} = useTranslation(); - if (!ticket) return null; + const colorScheme = useColorScheme(); + const { t } = useTranslation(); + if (!ticket) return null; - return ( - <> + - - - - {t('tickets.ticketDetails')} - {t('tickets.ticketId')} - {ticket.id} - {t('tickets.sub')} - {ticket.subject} - {t('tickets.mess')} - {ticket.message} - {t('tickets.status')} - {ticket.status} - {t('tickets.assignedUser')} - {ticket.user?.email} - - - {t('tickets.close')} - - - + + + + + {t('tickets.ticketDetails')} + + {t('tickets.ticketId')} + {ticket.id} + {t('tickets.sub')} + {ticket.subject} + {t('tickets.mess')} + {ticket.message} + {t('tickets.status')} + {ticket.status} + {t('tickets.assignedUser')} + {ticket.user?.email} + + + {t('tickets.close')} + - - - ); + + + + + ); }; export default TicketDetailsModal; diff --git a/components/calendar/CalendarBody.tsx b/components/calendar/CalendarBody.tsx index f436332..be1b659 100644 --- a/components/calendar/CalendarBody.tsx +++ b/components/calendar/CalendarBody.tsx @@ -58,30 +58,28 @@ const CalendarBody = () => { const eventsForSelectedDate = events.filter((event: Event) => { const start = dayjs(event.start); const end = dayjs(event.end); - return dayjs(selectedDate).isSameOrAfter(start, 'day') && dayjs(selectedDate).isSameOrBefore(end, 'day'); + return ( + dayjs(selectedDate).isSameOrAfter(start, 'day') && + dayjs(selectedDate).isSameOrBefore(end, 'day') + ); }); return ( - - - + + + Calendar - + - + {eventsForSelectedDate.map((event: Event) => ( - + ))} diff --git a/components/calendar/CalendarHeader.tsx b/components/calendar/CalendarHeader.tsx index 014c270..6c265aa 100644 --- a/components/calendar/CalendarHeader.tsx +++ b/components/calendar/CalendarHeader.tsx @@ -1,63 +1,87 @@ -import { View, Text, TouchableOpacity, useColorScheme } from 'react-native' -import React from 'react' -import CustomButton from './CustomButton' -import { AntDesign } from '@expo/vector-icons' -import dayjs from 'dayjs' +import { View, Text, TouchableOpacity, useColorScheme } from 'react-native'; +import React from 'react'; +import CustomButton from './CustomButton'; +import { AntDesign } from '@expo/vector-icons'; +import dayjs from 'dayjs'; interface CalendarHeaderProps { - currentDate: string; - onChangeMonth: (newDate: string) => void; + currentDate: string; + onChangeMonth: (newDate: string) => void; } -const CalendarHeader : React.FC = ({ currentDate, onChangeMonth }) => { - const DaysName = [{name:'Mo'},{name:'Tu'},{name:'We'},{name:'Th'},{name:'Fr'},{name:'Sa'},{name:'Su'}] +const CalendarHeader: React.FC = ({ currentDate, onChangeMonth }) => { + const DaysName = [ + { name: 'Mo' }, + { name: 'Tu' }, + { name: 'We' }, + { name: 'Th' }, + { name: 'Fr' }, + { name: 'Sa' }, + { name: 'Su' }, + ]; const colorScheme = useColorScheme(); - const formattedDate = dayjs(currentDate).format('MMM, YYYY') - + const formattedDate = dayjs(currentDate).format('MMM, YYYY'); const handlePreviousMonth = () => { - const newDate = dayjs(currentDate).subtract(1, 'month').format('YYYY-MM-DD') - onChangeMonth(newDate) - } + const newDate = dayjs(currentDate).subtract(1, 'month').format('YYYY-MM-DD'); + onChangeMonth(newDate); + }; const handleNextMonth = () => { - const newDate = dayjs(currentDate).add(1, 'month').format('YYYY-MM-DD') - onChangeMonth(newDate) - } + const newDate = dayjs(currentDate).add(1, 'month').format('YYYY-MM-DD'); + onChangeMonth(newDate); + }; return ( - - - {formattedDate} - + + + + {formattedDate} + + - onChangeMonth(dayjs(new Date()).format('YYYY-MM-DD'))} - /> + onChangeMonth(dayjs(new Date()).format('YYYY-MM-DD'))} + /> - - - - - - - - - + + + + + + + + + - - {DaysName.map((Day,index)=>( - {Day.name} - ))} + + {DaysName.map((Day, index) => ( + + {Day.name} + + ))} - ) -} + ); +}; -export default CalendarHeader \ No newline at end of file +export default CalendarHeader; diff --git a/components/calendar/CalendarSkeleton.tsx b/components/calendar/CalendarSkeleton.tsx index ded9f41..cefadd6 100644 --- a/components/calendar/CalendarSkeleton.tsx +++ b/components/calendar/CalendarSkeleton.tsx @@ -7,25 +7,45 @@ const CalendarSkeleton = () => { return ( - + - {Array(7).fill(null).map((_, index) => ( - - ))} + {Array(7) + .fill(null) + .map((_, index) => ( + + ))} - {Array(30).fill(null).map((_, index) => ( - - ))} + {Array(30) + .fill(null) + .map((_, index) => ( + + ))} ); diff --git a/components/calendar/CustomButton.tsx b/components/calendar/CustomButton.tsx index 24b04b7..d8b22a8 100644 --- a/components/calendar/CustomButton.tsx +++ b/components/calendar/CustomButton.tsx @@ -1,17 +1,17 @@ -import { View, Text, TouchableOpacity } from 'react-native' -import React from 'react' +import { View, Text, TouchableOpacity } from 'react-native'; +import React from 'react'; -const CustomButton = ({title, handlepress, containerstyle, textstyle, isloading}:any) => { +const CustomButton = ({ title, handlepress, containerstyle, textstyle, isloading }: any) => { return ( - {title} - ) -} + ); +}; -export default CustomButton \ No newline at end of file +export default CustomButton; diff --git a/components/calendar/DatePickerCard.tsx b/components/calendar/DatePickerCard.tsx index d4e902e..0793258 100644 --- a/components/calendar/DatePickerCard.tsx +++ b/components/calendar/DatePickerCard.tsx @@ -41,7 +41,11 @@ const DatePickerCard: React.FC = ({ onDateChange, events }) const startDate = dayjs(event.start); const endDate = dayjs(event.end); - for (let date = startDate; date.isBefore(endDate) || date.isSame(endDate, 'day'); date = date.add(1, 'day')) { + for ( + let date = startDate; + date.isBefore(endDate) || date.isSame(endDate, 'day'); + date = date.add(1, 'day') + ) { const dateString = date.format('YYYY-MM-DD'); if (!markedDates[dateString]) { markedDates[dateString] = { @@ -60,30 +64,30 @@ const DatePickerCard: React.FC = ({ onDateChange, events }) selectedTextColor: '#FFFFFF', }; - if (selectedDate) { - markedDates[selectedDate] = { - selected: true, - selectedColor: colorScheme === 'light' ? '#FFFFFF' : '#8667F2', - selectedTextColor: colorScheme === 'light' ? '#585757' : '#FFFFFF', - dotColor: '#FFFFFF', - customStyles: { - container: { - borderWidth: 2.3, - borderColor: '#8667F2', - borderRadius: 16, - justifyContent: 'center', - alignItems: 'center', - padding: 0.5, + if (selectedDate) { + markedDates[selectedDate] = { + selected: true, + selectedColor: colorScheme === 'light' ? '#FFFFFF' : '#8667F2', + selectedTextColor: colorScheme === 'light' ? '#585757' : '#FFFFFF', + dotColor: '#FFFFFF', + customStyles: { + container: { + borderWidth: 2.3, + borderColor: '#8667F2', + borderRadius: 16, + justifyContent: 'center', + alignItems: 'center', + padding: 0.5, + }, }, - }, - }; - } + }; + } return markedDates; }; return ( - + = ({ onDateChange, events }) calendarBackground: colorScheme === 'light' ? '#FFFFFF' : '#020917', textSectionTitleColor: colorScheme === 'light' ? '#C5C5C5' : '#585757', dayTextColor: colorScheme === 'light' ? '#585757' : '#C5C5C5', - todayTextColor: "#8667F24D", - selectedDayBackgroundColor: "#020917", - selectedDayTextColor: "#fff", - textDisabledColor: "#D6C7A1", + todayTextColor: '#8667F24D', + selectedDayBackgroundColor: '#020917', + selectedDayTextColor: '#fff', + textDisabledColor: '#D6C7A1', }} markingType="custom" markedDates={getMarkedDates()} diff --git a/components/calendar/EventCard.tsx b/components/calendar/EventCard.tsx index 05f2a8c..ffa1919 100644 --- a/components/calendar/EventCard.tsx +++ b/components/calendar/EventCard.tsx @@ -1,28 +1,38 @@ -import { View, Text, TouchableOpacity, useColorScheme } from 'react-native' +import { View, Text, TouchableOpacity, useColorScheme } from 'react-native'; import dayjs from 'dayjs'; interface EventCardProps { eventName: string; - eventstarttime : string; + eventstarttime: string; } -const EventCard = ({ eventName,eventstarttime}:EventCardProps) => { +const EventCard = ({ eventName, eventstarttime }: EventCardProps) => { const colorScheme = useColorScheme(); - + const todayDate = dayjs().format('YYYY-MM-DD'); const fullDateTimeString = `${todayDate} ${eventstarttime}`; - + const timeToStart = dayjs(fullDateTimeString, 'YYYY-MM-DD HH:mm').format('hh:mm A'); - + return ( - - - {timeToStart} - {eventName} - + + + + {timeToStart} + + + {eventName} + + - ) -} + ); +}; -export default EventCard \ No newline at end of file +export default EventCard; diff --git a/components/perfomanceStats/circleIndicator.tsx b/components/performanceStats/circleIndicator.tsx similarity index 100% rename from components/perfomanceStats/circleIndicator.tsx rename to components/performanceStats/circleIndicator.tsx diff --git a/components/perfomanceStats/index.tsx b/components/performanceStats/index.tsx similarity index 90% rename from components/perfomanceStats/index.tsx rename to components/performanceStats/index.tsx index a1bb164..3216367 100644 --- a/components/perfomanceStats/index.tsx +++ b/components/performanceStats/index.tsx @@ -3,20 +3,14 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { TRAINEE_RATING } from '@/graphql/queries/rating'; import { useQuery } from '@apollo/client'; import { useTranslation } from 'react-i18next'; -import { - ScrollView, - Text, - useColorScheme, - useWindowDimensions, - View -} from 'react-native'; +import { ScrollView, Text, useColorScheme, useWindowDimensions, View } from 'react-native'; import { LineChart } from 'react-native-chart-kit'; import { useToast } from 'react-native-toast-notifications'; import CircularIndicator from './circleIndicator'; import styles from './styles'; const PerformanceScores = () => { - const toast = useToast() + const toast = useToast(); const { t } = useTranslation(); const colors = { quality: 'rgba(160, 132, 244, 1)', @@ -91,16 +85,16 @@ const PerformanceScores = () => { if (fetchedData.length === 0) { const placeholderGraph = { - labels: ['Sprint 1', 'Sprint 2', 'Sprint 3', 'Sprint 4'], - datasets: [ - { - data: [0, 0, 0, 0], - color: () => 'rgba(200, 200, 200, 0.5)', - strokeWidth: 1, - }, - ], - legend: ['No Data Available'], -}; + labels: ['Sprint 1', 'Sprint 2', 'Sprint 3', 'Sprint 4'], + datasets: [ + { + data: [0, 0, 0, 0], + color: () => 'rgba(200, 200, 200, 0.5)', + strokeWidth: 1, + }, + ], + legend: ['No Data Available'], + }; return ( @@ -131,19 +125,19 @@ const PerformanceScores = () => { {t('performance.stats')} - - - + + + ); } diff --git a/components/perfomanceStats/styles.tsx b/components/performanceStats/styles.tsx similarity index 100% rename from components/perfomanceStats/styles.tsx rename to components/performanceStats/styles.tsx diff --git a/components/profile/about.tsx b/components/profile/about.tsx index 6b00633..10c4cec 100644 --- a/components/profile/about.tsx +++ b/components/profile/about.tsx @@ -1,6 +1,6 @@ +import { ProfileType } from '@/app/dashboard/_layout'; import { Ionicons } from '@expo/vector-icons'; import { useColorScheme } from 'react-native'; -import { ProfileType } from '../../app/dashboard/profile'; import { Text, View } from '../Themed'; type ProfileAboutTabProps = { diff --git a/components/settingPreference/SettingPreference.tsx b/components/settingPreference/SettingPreference.tsx index 6d1cf8b..32cdf74 100644 --- a/components/settingPreference/SettingPreference.tsx +++ b/components/settingPreference/SettingPreference.tsx @@ -1,14 +1,15 @@ -import React, { useState } from 'react'; -import { View, Switch, Text, useColorScheme, TouchableOpacity, StyleSheet } from 'react-native'; import { router } from 'expo-router'; -import LanguagePicker from '../LanguagePicker'; -import { Dropdown } from 'react-native-element-dropdown'; +import { useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { StyleSheet, Switch, Text, TouchableOpacity, useColorScheme, View } from 'react-native'; +import DropDownPicker from 'react-native-dropdown-picker'; +import LanguagePicker from '../LanguagePicker'; const settings = () => { const [emailNotifications, setEmailNotifications] = useState(false); const [pushNotifications, setPushNotifications] = useState(false); const [selectedTheme, setSelectedTheme] = useState('system'); + const [themeSelectOpen, setThemeSelectOpen] = useState(false); const { t } = useTranslation(); const colorScheme = selectedTheme === 'system' ? useColorScheme() : selectedTheme; @@ -24,7 +25,9 @@ const settings = () => { return ( - {t('settings.title')} + + {t('settings.title')} + {/* Profile Section */} @@ -48,16 +51,15 @@ const settings = () => { {t('settings.themePreferences')} - {}} + open={themeSelectOpen} + setOpen={setThemeSelectOpen} placeholder="Select Theme" - selectedTextStyle={{ color: colorScheme === 'dark' ? '#fff' : '#000' }} - //@ts-ignore - style={styles.picker(colorScheme)} + theme={colorScheme === 'dark' ? 'DARK' : 'LIGHT'} + setValue={setSelectedTheme} + style={{ borderColor: 'transparent' }} /> @@ -66,7 +68,9 @@ const settings = () => { {t('settings.language')} - {t('settings.languagePreference')} + + {t('settings.languagePreference')} + @@ -77,9 +81,7 @@ const settings = () => { {t('settings.emailNotify')} - - {t('settings.emailFeeds')} - + {t('settings.emailFeeds')} { {t('settings.pushNotify')} - - {t('settings.pushUpdates')} - + {t('settings.pushUpdates')} = ({ onClose }) => { const colorScheme = useColorScheme(); const { t } = useTranslation(); const client = useApolloClient(); + const notification = useNotification(); const UpperItems = [ { @@ -65,7 +67,7 @@ const Sidebar: React.FC = ({ onClose }) => { name: t('navbar.performance'), iconLight: lightPerformance, iconDark: darkPerformance, - path: '/dashboard/perfomance', + path: '/dashboard/trainee/performance', }, { name: t('navbar.calendar'), @@ -110,6 +112,7 @@ const Sidebar: React.FC = ({ onClose }) => { await AsyncStorage.removeItem('orgName'); await AsyncStorage.removeItem('userProfile'); await AsyncStorage.removeItem('auth'); + notification?.actions.reset(); router.push('/auth/login?logout=1'); } catch (error) { toast.show(t('toasts.dashboard.logoutErr'), { diff --git a/components/sprintRatings.tsx b/components/sprintRatings.tsx index 9b8a196..5f5b481 100644 --- a/components/sprintRatings.tsx +++ b/components/sprintRatings.tsx @@ -30,7 +30,7 @@ export default function TraineeRatings({ if (token) { setUserToken(token); } else { - toast.show(t('sprintRating.user_token_not_found'), {type:"danger"}); + toast.show(t('sprintRating.user_token_not_found'), { type: 'danger' }); } }; fetchToken(); @@ -55,7 +55,7 @@ export default function TraineeRatings({ useEffect(() => { if (error) { - toast.show(t('sprintRating.error_loading_ratings'),{type:"danger"}); + toast.show(t('sprintRating.error_loading_ratings'), { type: 'danger' }); } }, [loading, error]); diff --git a/components/trainee/About.tsx b/components/trainee/About.tsx index ed905b5..22e1dd7 100644 --- a/components/trainee/About.tsx +++ b/components/trainee/About.tsx @@ -22,7 +22,7 @@ interface AboutTraineeProps { Resume: Profile; } -const AboutTrainee: React.FC = ({ profile, bgColor, textColor,Resume }) => { +const AboutTrainee: React.FC = ({ profile, bgColor, textColor, Resume }) => { const colorScheme = useColorScheme(); const { t } = useTranslation(); @@ -68,16 +68,23 @@ const AboutTrainee: React.FC = ({ profile, bgColor, textColor {t('about.resume')} - - + + {Resume.resume ? ( - Resume.resume && Linking.openURL(Resume.resume)}> - Resume - + Resume.resume && Linking.openURL(Resume.resume)} + > + Resume + ) : ( - 'No Resume uploaded yet' + 'No Resume uploaded yet' )} - + diff --git a/components/trainee/Account.tsx b/components/trainee/Account.tsx index a2c5d98..e53b57e 100644 --- a/components/trainee/Account.tsx +++ b/components/trainee/Account.tsx @@ -71,7 +71,9 @@ export default function ProfileAccountTab({ passwordUpdated }: ProfileAccountTab return ( - {t('account.resetPassword')} + + {t('account.resetPassword')} + {t('account.currentPassword')}: diff --git a/constants/countries.ts b/constants/countries.ts index 7be4ad7..1104299 100644 --- a/constants/countries.ts +++ b/constants/countries.ts @@ -948,4 +948,4 @@ export const COUNTRIES: SelectMenuOption[] = [ value: 'ZW', label: 'Zimbabwe', }, -]; \ No newline at end of file +]; diff --git a/graphql/client.ts b/graphql/client.ts index f51fdba..372065a 100644 --- a/graphql/client.ts +++ b/graphql/client.ts @@ -1,4 +1,4 @@ -;import { ApolloClient, InMemoryCache, split, HttpLink } from '@apollo/client'; +import { ApolloClient, InMemoryCache, split, HttpLink } from '@apollo/client'; import { GraphQLWsLink } from '@apollo/client/link/subscriptions'; import { createClient } from 'graphql-ws'; import { getMainDefinition } from '@apollo/client/utilities'; @@ -19,20 +19,17 @@ const wsLink = new GraphQLWsLink( authToken, }; }, - }), + }) ); // Use split to send data to each link depending on the operation type const splitLink = split( ({ query }) => { const definition = getMainDefinition(query); - return ( - definition.kind === 'OperationDefinition' && - definition.operation === 'subscription' - ); + return definition.kind === 'OperationDefinition' && definition.operation === 'subscription'; }, wsLink, - httpLink, + httpLink ); // Initialize Apollo Client diff --git a/graphql/mutations/updateAvatar.mutation.tsx b/graphql/mutations/updateAvatar.mutation.tsx index 45e34b1..6fcac3b 100644 --- a/graphql/mutations/updateAvatar.mutation.tsx +++ b/graphql/mutations/updateAvatar.mutation.tsx @@ -7,4 +7,3 @@ export const UPDATE_AVATAR = gql` } } `; - diff --git a/graphql/queries/Attendance.tsx b/graphql/queries/Attendance.tsx index e2817b1..4d5e09d 100644 --- a/graphql/queries/Attendance.tsx +++ b/graphql/queries/Attendance.tsx @@ -42,4 +42,3 @@ export const GET_TRAINEE_ATTENDANCE = gql` } } `; - diff --git a/graphql/queries/documentation.query.tsx b/graphql/queries/documentation.query.tsx index 1b9dd92..a6a2ec9 100644 --- a/graphql/queries/documentation.query.tsx +++ b/graphql/queries/documentation.query.tsx @@ -1,16 +1,16 @@ import { gql } from '@apollo/client'; export const GET_DOCUMENTATIONS = gql` -query GetDocumentations { + query GetDocumentations { getDocumentations { - id + id + title + for + description + subDocuments { title - for description - subDocuments { - title - description - } + } } -} -`; \ No newline at end of file + } +`; diff --git a/graphql/queries/tickets.queries.tsx b/graphql/queries/tickets.queries.tsx index bfbf6e5..11a2b9d 100644 --- a/graphql/queries/tickets.queries.tsx +++ b/graphql/queries/tickets.queries.tsx @@ -1,31 +1,31 @@ import { gql } from '@apollo/client'; export const GET_TICKETS = gql` -query GetAllTickets { - getAllTickets { - id - message - subject - status - createdAt - user { - id - email - } - assignee { - id - email - } - - replies { + query GetAllTickets { + getAllTickets { id + message + subject + status createdAt - replyMessage - sender { + user { id email } + assignee { + id + email + } + + replies { + id + createdAt + replyMessage + sender { + id + email + } + } } } -} `; diff --git a/graphql/queries/user.ts b/graphql/queries/user.ts index d145819..49c51ca 100644 --- a/graphql/queries/user.ts +++ b/graphql/queries/user.ts @@ -16,10 +16,13 @@ export const GET_PROFILE = gql` biography githubUsername user { + id organizations email role + pushNotificationTokens team { + id name cohort { name @@ -65,4 +68,16 @@ export const GET_TRAINEE_PROFILE = gql` resume } } -`; \ No newline at end of file +`; + +export const ADD_PUSH_NOTIFICATION_TOKEN = gql` + mutation AddPushNotificationToken($pushToken: String!) { + addPushNotificationToken(pushToken: $pushToken) + } +`; + +export const REMOVE_PUSH_NOTIFICATION_TOKEN = gql` + mutation RemovePushNotificationToken($token: String!) { + removePushNotificationToken(token: $token) + } +`; diff --git a/hooks/useAuth.tsx b/hooks/useAuth.tsx index 770030b..f53c7dc 100644 --- a/hooks/useAuth.tsx +++ b/hooks/useAuth.tsx @@ -9,18 +9,18 @@ const getInitialState = async () => { return { ...parsedUser, id: parsedUser.userId || parsedUser.id, // Ensure id is always set - notifications: parsedUser.notifications || [] + notifications: parsedUser.notifications || [], }; } } catch (error) { console.error('Failed to load user from AsyncStorage:', error); } - return { - id: '', - name: '', - role: 'user', - auth: false, - notifications: [] + return { + id: '', + name: '', + role: 'user', + auth: false, + notifications: [], }; }; @@ -126,7 +126,6 @@ const UserProvider: React.FC = ({ children }) => { } return context; }; - const value = useMemo( () => ({ diff --git a/hooks/useNotification.tsx b/hooks/useNotification.tsx index 011672c..4017693 100644 --- a/hooks/useNotification.tsx +++ b/hooks/useNotification.tsx @@ -1,15 +1,10 @@ -import React, { createContext, useState, useEffect } from 'react'; -import { useSubscription, useLazyQuery, useMutation } from '@apollo/client'; +import { PUSH_NOTIFICATION_SUB, TICKETS_NOTS_SUB } from '@/graphql/mutations/notificationMutation'; +import { getAllNotification } from '@/graphql/queries/Notifications.queries'; +import { useLazyQuery, useSubscription } from '@apollo/client'; import AsyncStorage from '@react-native-async-storage/async-storage'; -import { getAllNotification} from '@/graphql/queries/Notifications.queries'; -import {NotificationSubscription, TICKETS_NOTS_SUB, PUSH_NOTIFICATION_SUB } from '@/graphql/mutations/notificationMutation'; -import { markAsRead, markAllAsRead as markAllAsReadMutation } from '@/graphql/mutations/notificationMutation'; -import { useToast } from 'react-native-toast-notifications'; -import { ReactNode } from 'react'; import { jwtDecode } from 'jwt-decode'; -import { set } from 'date-fns'; -import { se } from 'date-fns/locale'; -import { t } from 'i18next'; +import { createContext, ReactNode, useEffect, useState } from 'react'; +import { useToast } from 'react-native-toast-notifications'; interface Notification { id: string; @@ -49,10 +44,8 @@ export const NotificationContext = createContext({ markAllRead: async () => {}, Delete: async () => {}, deleteAll: async () => {}, - }); - export const NotificationProvider = ({ children }: { children: ReactNode }) => { const [notifications, setNotifications] = useState([]); const [unreadCount, setUnreadCount] = useState(0); @@ -104,8 +97,12 @@ export const NotificationProvider = ({ children }: { children: ReactNode }) => { toast.show('Token Not found.', { type: 'danger', placement: 'top', duration: 3000 }); } } catch (error) { - toast.show('Failed to retrieve token.', { type: 'danger', placement: 'top', duration: 3000 }); - } + toast.show('Failed to retrieve token.', { + type: 'danger', + placement: 'top', + duration: 3000, + }); + } }; fetchToken(); }, []); @@ -114,13 +111,16 @@ export const NotificationProvider = ({ children }: { children: ReactNode }) => { if (userToken) { try { const decoded = jwtDecode(userToken as string); - setUserId(decoded.userId); + setUserId(decoded.userId); } catch (error) { - toast.show(`Failed to decode token.${error}`, { type: 'danger', placement: 'top', duration: 3000 }); + toast.show(`Failed to decode token.${error}`, { + type: 'danger', + placement: 'top', + duration: 3000, + }); } } }, [userToken]); - useSubscription(PUSH_NOTIFICATION_SUB, { onData: (data) => { @@ -169,20 +169,20 @@ export const NotificationProvider = ({ children }: { children: ReactNode }) => { setUnreadCount(count); }; const handleMarkAsRead = async () => { - setUnreadCount(unreadCount - 1); + setUnreadCount(unreadCount - 1); }; const handleMarkAllAsRead = async () => { - setUnreadCount(0); + setUnreadCount(0); }; - + const handleDelete = async () => { setUnreadCount(unreadCount - 1); - }; - - const handleDeleteAll = async () => { - setUnreadCount(0); - }; + }; + + const handleDeleteAll = async () => { + setUnreadCount(0); + }; return ( { markAllRead: handleMarkAllAsRead, Delete: handleDelete, deleteAll: handleDeleteAll, - }} > {children} ); -}; \ No newline at end of file +}; diff --git a/internationalization/locales/en.json b/internationalization/locales/en.json index 4a27a04..e40b04d 100644 --- a/internationalization/locales/en.json +++ b/internationalization/locales/en.json @@ -60,7 +60,7 @@ "submitButton": "Continue", "successMessage": "Password reset request successful! Please check your email for a link to reset your password!", "errorMessage": "An error occurred. Please try again.", - "errorEmail" : "Invalid Email" + "errorEmail": "Invalid Email" }, "registerSchema": { "firstName": { @@ -100,26 +100,26 @@ "help": "Help", "signOut": "Sign out" }, - "tickets":{ + "tickets": { "title": "Tickets", "filter": "Filter", - "subject" : "SUBJECT", - "message" : "MESSAGE", - "createDate" :"CREATED AT", - "assigner" : "ASSIGNER EMAIL", + "subject": "SUBJECT", + "message": "MESSAGE", + "createDate": "CREATED AT", + "assigner": "ASSIGNER EMAIL", "assignee": "ASSIGNEE EMAIL", - "action" : "ACTIONS", - "noTickets" : "No Tickets Available", + "action": "ACTIONS", + "noTickets": "No Tickets Available", "ticketDetails": "Ticket Details", - "ticketId" : "Ticket ID:", + "ticketId": "Ticket ID:", "sub": "Subject:", "mess": "Message:", "status": "Status:", "assignedUser": "Assigned User", "close": "Close", - "view":"View", - "copy":"Copy ID", - "show":"Show", + "view": "View", + "copy": "Copy ID", + "show": "Show", "goToPage": "Go To Page:", "page": "Page", "copySuccess": "Ticket ID copied to clipboard", @@ -192,134 +192,132 @@ }, "editProfile": { "editProfile": "EDIT PROFILE", - "backToProfile" : "Back to Profile", - "city" : "City", - "country" : "Country", - "updateProfile" : "Update Profile", - "uploadResume" : "UPLOAD RESUME", - "uploadFromPhone" : "Upload from Phone", - "uploadResumeFromPhone" : "Upload resume from your phone", - "addLink" : "Add external Link", - "enterLink" : "Enter external link", - "uploadLink" : "Upload resume from external link", - "chooseFile" : "Choose File" , - "upload" : "Upload", + "backToProfile": "Back to Profile", + "city": "City", + "country": "Country", + "updateProfile": "Update Profile", + "uploadResume": "UPLOAD RESUME", + "uploadFromPhone": "Upload from Phone", + "uploadResumeFromPhone": "Upload resume from your phone", + "addLink": "Add external Link", + "enterLink": "Enter external link", + "uploadLink": "Upload resume from external link", + "chooseFile": "Choose File", + "upload": "Upload", "edit": "Edit", "photo": "Photo" -}, -"settings":{ - "title" : "Settings", - "profile": "Profile", - "editProfile": "Edit profile, export account, data…", - "change": "Change", - "appearance": "Appearance", - "themePreferences": "Theme preferences", - "language": "Language", - "languagePreference": "Language Preference", - "emailNotify": "Email Notifications", - "emailFeeds": "Feedback emails, reminder emails, news emails", - "pushNotify": "Push Notifications", - "pushUpdates": "Grade updates, session reminders, performance comments", - "privacy": "Privacy and Security", - "login": "Login Activity" , - "loginHistory": "History of Your login session", - "view": "View" -}, -"toasts":{ - "auth": { - "unknownErr" : "Error: Unknown error", - "invalidToken": "Invalid token or expired token", - "acceptTerms" : "Please accept terms and conditions", - "invalidCredentials": "Invalid credentials", - "error": "Error", - "networkError": "There was a problem contacting the server", - "generalError": "An unexpected error occurred.", - "authError": "Please wait to be added to a program or cohort", - "loginErr": "This app is for trainees only! Login through the web", - "logSuccess": "Welcome! Sign in to Continue", - "checkEmail" : "Check your email to proceed!", - "resetSuccess": "You have successfully reset your password!" -}, -"dashboard":{ - "tokenNotFound": "User Token Not found.", - "failedToken" : "Failed to retrieve token.", - "profileErr": "Error fetching profile.", - "updateSuccess": "Profile has been updated", - "updateFailed": "Failed to update profile", - "decodeErr": "Failed to decode token.", - "uploadCvError": "Upload Error", - "uploadCvSuccess": "Resume uploaded successfully", - "mutationFail": "GET_TRAINEE_PROFILE cache update failed.", - "fileErr": "Please choose a file", - "linkErr": "Please enter a valid external link", - "logoutErr" : "Error logging out", - "navigationErr" : "Failed to navigate", - "updatePassSuccess": "Password updated successfully", - "updatePassFail": "Oops, something went wrong", - "permissionDenied": "Permission to access photos was denied", - "avatarUpdated": "Profile picture updated successfully", - "avatarError": "Failed to update profile picture", - "imagePickerError": "Error selecting image" -} -}, -"notifications":{ - "deleteSuccess": "Notification deleted successfully", - "deleteFailed": "Failed to delete notification", - "markAllAsRead": "Mark all as read", - "markAllAsReadSuccess": "All notifications marked as read", - "markAllAsReadFailed": "Failed to mark all notifications as read", - "markAsReadSuccess": "Notification marked as read", - "markAsReadFailed": "Failed to mark notification as read", - "errorLoadingNotifications": "Error loading notifications", - "errorDeletingNotification": "Failed to delete notification", - "errorMarkingAsRead": "Failed to mark notification as read", - "errorMarkingAllAsRead": "Failed to mark all notifications as read", - "unread": "Unread", - "all": "All", - "loading": "Loading notifications...", - "noNotifications": "No notifications yet", - "delete": "Delete", - "notifications": "Notifications" - -}, -"loginActivity":{ - "title" : "Login Activities", - "Date": "Date", - "CountryName": "Country Name", - "City": "City", - "State": "State", - "IPv4": "IPv4", - "Attempt": "Attempt", - "Nologinactivitiesyet": "No login activities yet.", - "Failed": "Failed", - "Success": "Success", - "Page{page}of{totalPages}": "Page {{page}} of {{totalPages}}", - "Previous": "Previous", - "Next": "Next" -}, -"attendance":{ - "attendance": "Your Attendance", - "week": "Week:", - "day": "Day", - "date": "Date", - "score": "Score", - "attendanceAverages": "Attendance Averages:", - "phaseName": "Phase Name", - "allPhasesAverage": "All Phases Average:", - "youDontHaveAttendance": "You don't have an attendance record in the system at the moment.", - "attendedAndCommunicated": "[2] Attended and Communicated", - "didntAttendButCommunicated": "[1] Didn't attend but communicated", - "didntAttendAndCommunicate": "[0] Didn't attend and didn't communicate" -}, -"days":{ - "mon": "Mon", - "tue": "Tue", - "wed": "Wed", - "thu": "Thu", - "fri": "Fri" -}, -"documentation": { - "pageTitle": "App Documentation" + }, + "settings": { + "title": "Settings", + "profile": "Profile", + "editProfile": "Edit profile, export account, data…", + "change": "Change", + "appearance": "Appearance", + "themePreferences": "Theme preferences", + "language": "Language", + "languagePreference": "Language Preference", + "emailNotify": "Email Notifications", + "emailFeeds": "Feedback emails, reminder emails, news emails", + "pushNotify": "Push Notifications", + "pushUpdates": "Grade updates, session reminders, performance comments", + "privacy": "Privacy and Security", + "login": "Login Activity", + "loginHistory": "History of Your login session", + "view": "View" + }, + "toasts": { + "auth": { + "unknownErr": "Error: Unknown error", + "invalidToken": "Invalid token or expired token", + "acceptTerms": "Please accept terms and conditions", + "invalidCredentials": "Invalid credentials", + "error": "Error", + "networkError": "There was a problem contacting the server", + "generalError": "An unexpected error occurred.", + "authError": "Please wait to be added to a program or cohort", + "loginErr": "This app is for trainees only! Login through the web", + "logSuccess": "Welcome! Sign in to Continue", + "checkEmail": "Check your email to proceed!", + "resetSuccess": "You have successfully reset your password!" + }, + "dashboard": { + "tokenNotFound": "User Token Not found.", + "failedToken": "Failed to retrieve token.", + "profileErr": "Error fetching profile.", + "updateSuccess": "Profile has been updated", + "updateFailed": "Failed to update profile", + "decodeErr": "Failed to decode token.", + "uploadCvError": "Upload Error", + "uploadCvSuccess": "Resume uploaded successfully", + "mutationFail": "GET_TRAINEE_PROFILE cache update failed.", + "fileErr": "Please choose a file", + "linkErr": "Please enter a valid external link", + "logoutErr": "Error logging out", + "navigationErr": "Failed to navigate", + "updatePassSuccess": "Password updated successfully", + "updatePassFail": "Oops, something went wrong", + "permissionDenied": "Permission to access photos was denied", + "avatarUpdated": "Profile picture updated successfully", + "avatarError": "Failed to update profile picture", + "imagePickerError": "Error selecting image" + } + }, + "notifications": { + "deleteSuccess": "Notification deleted successfully", + "deleteFailed": "Failed to delete notification", + "markAllAsRead": "Mark all as read", + "markAllAsReadSuccess": "All notifications marked as read", + "markAllAsReadFailed": "Failed to mark all notifications as read", + "markAsReadSuccess": "Notification marked as read", + "markAsReadFailed": "Failed to mark notification as read", + "errorLoadingNotifications": "Error loading notifications", + "errorDeletingNotification": "Failed to delete notification", + "errorMarkingAsRead": "Failed to mark notification as read", + "errorMarkingAllAsRead": "Failed to mark all notifications as read", + "unread": "Unread", + "all": "All", + "loading": "Loading notifications...", + "noNotifications": "No notifications yet", + "delete": "Delete", + "notifications": "Notifications" + }, + "loginActivity": { + "title": "Login Activities", + "Date": "Date", + "CountryName": "Country Name", + "City": "City", + "State": "State", + "IPv4": "IPv4", + "Attempt": "Attempt", + "Nologinactivitiesyet": "No login activities yet.", + "Failed": "Failed", + "Success": "Success", + "Page{page}of{totalPages}": "Page {{page}} of {{totalPages}}", + "Previous": "Previous", + "Next": "Next" + }, + "attendance": { + "attendance": "Your Attendance", + "week": "Week:", + "day": "Day", + "date": "Date", + "score": "Score", + "attendanceAverages": "Attendance Averages:", + "phaseName": "Phase Name", + "allPhasesAverage": "All Phases Average:", + "youDontHaveAttendance": "You don't have an attendance record in the system at the moment.", + "attendedAndCommunicated": "[2] Attended and Communicated", + "didntAttendButCommunicated": "[1] Didn't attend but communicated", + "didntAttendAndCommunicate": "[0] Didn't attend and didn't communicate" + }, + "days": { + "mon": "Mon", + "tue": "Tue", + "wed": "Wed", + "thu": "Thu", + "fri": "Fri" + }, + "documentation": { + "pageTitle": "App Documentation" + } } - -} \ No newline at end of file diff --git a/internationalization/locales/fr.json b/internationalization/locales/fr.json index 20b9f50..20745df 100644 --- a/internationalization/locales/fr.json +++ b/internationalization/locales/fr.json @@ -60,7 +60,7 @@ "submitButton": "Continuer", "successMessage": "Demande de réinitialisation de mot de passe réussie! Veuillez vérifier votre email pour un lien pour réinitialiser votre mot de passe.", "errorMessage": "Une erreur s'est produite. Veuillez réessayer.", - "errorEmail" : "E-mail invalide" + "errorEmail": "E-mail invalide" }, "registerSchema": { "firstName": { @@ -101,31 +101,31 @@ "signOut": "Déconnexion" }, "tickets": { - "title": "Billets", - "filter": "Filtre", - "subject": "SUJET", - "message": "MESSAGE", - "createDate": "CRÉÉ LE", - "assigner": "EMAIL DU ASSIGNEUR", - "assignee": "EMAIL DU ASSIGNÉ", - "action": "ACTIONS", - "noTickets": "Aucun ticket disponible", - "ticketDetails": "Détails du ticket", - "ticketId": "ID du ticket :", - "sub": "Sujet :", - "mess": "Message :", - "status": "Statut :", - "assignedUser": "Utilisateur assigné", - "close": "Fermer", - "view": "Voir", - "copy": "Copier l'ID", - "show": "Afficher", - "goToPage": "Aller à la page :", - "page": "Page", - "copySuccess": "ID du ticket copié dans le presse-papiers", - "copyFail": "Échec de la copie de l'ID du ticket", - "idNotFound": "ID du ticket non disponible." -}, + "title": "Billets", + "filter": "Filtre", + "subject": "SUJET", + "message": "MESSAGE", + "createDate": "CRÉÉ LE", + "assigner": "EMAIL DU ASSIGNEUR", + "assignee": "EMAIL DU ASSIGNÉ", + "action": "ACTIONS", + "noTickets": "Aucun ticket disponible", + "ticketDetails": "Détails du ticket", + "ticketId": "ID du ticket :", + "sub": "Sujet :", + "mess": "Message :", + "status": "Statut :", + "assignedUser": "Utilisateur assigné", + "close": "Fermer", + "view": "Voir", + "copy": "Copier l'ID", + "show": "Afficher", + "goToPage": "Aller à la page :", + "page": "Page", + "copySuccess": "ID du ticket copié dans le presse-papiers", + "copyFail": "Échec de la copie de l'ID du ticket", + "idNotFound": "ID du ticket non disponible." + }, "performance": { "performance_scores": "Scores de performance", "average": "MOYENNE", @@ -192,136 +192,98 @@ }, "editProfile": { "editProfile": "MODIFIER LE PROFIL", - "backToProfile" : "Retour au Profil", - "city" : "Ville", - "country" : "Pays", - "updateProfile" : "Mettre à Jour le Profil", - "uploadResume" : "TÉLÉCHARGER CV", - "uploadFromPhone" : "Télécharger depuis le Téléphone", - "uploadResumeFromPhone" : "Téléchargez le CV depuis votre téléphone", - "addLink" : "Ajouter lien externe", - "enterLink" : "Entrer lien externe", - "uploadLink" : "Télécharger le CV à partir d'un lien externe", - "chooseFile" : "Choisir le Fichier", - "upload" : "Télécharger", + "backToProfile": "Retour au Profil", + "city": "Ville", + "country": "Pays", + "updateProfile": "Mettre à Jour le Profil", + "uploadResume": "TÉLÉCHARGER CV", + "uploadFromPhone": "Télécharger depuis le Téléphone", + "uploadResumeFromPhone": "Téléchargez le CV depuis votre téléphone", + "addLink": "Ajouter lien externe", + "enterLink": "Entrer lien externe", + "uploadLink": "Télécharger le CV à partir d'un lien externe", + "chooseFile": "Choisir le Fichier", + "upload": "Télécharger", "edit": "Modifier", "photo": "Photo" -}, -"settings": { - "title" : "Paramètres", - "profile": "Profil", - "editProfile": "Modifier le profil, exporter le compte, données…", - "change": "Modifier", - "appearance": "Apparence", - "themePreferences": "Préférences de thème", - "language": "Langue", - "languagePreference": "Préférence de langue", - "emailNotify": "Notifications par e-mail", - "emailFeeds": "E-mails de retour, rappels, actualités", - "pushNotify": "Notifications poussées", - "pushUpdates": "Mises à jour des notes, rappels de session, commentaires de performance", - "privacy": "Confidentialité et Sécurité", - "login": "Activité de connexion", - "loginHistory": "Historique de vos sessions de connexion", - "view": "Voir" -}, -"toasts": { - "auth": { - "registerErr": "Jeton invalide ou expiré", - "unknownErr": "Erreur : Erreur inconnue", - "invalidToken": "Jeton invalide ou expiré", - "terms": "Veuillez accepter les conditions générales", - "invalidCredentials": "Identifiants invalides", - "error": "Erreur", - "networkError": "Un problème est survenu lors de la connexion au serveur", - "generalError": "Une erreur inattendue s'est produite.", - "authError": "Veuillez attendre d'être ajouté à un programme ou à une cohorte", - "loginErr": "Cette application est réservée aux stagiaires ! Connectez-vous via le web", - "logSuccess": "Bienvenue ! Connectez-vous pour continuer", - "checkEmail": "Vérifiez votre e-mail pour continuer !", -"resetSuccess": "Vous avez réinitialisé votre mot de passe avec succès !" }, -"dashboard": { - "tokenNotFound": "Jeton utilisateur introuvable.", - "failedToken": "Échec de la récupération du jeton.", - "profileErr": "Erreur lors de la récupération du profil.", - "updateSuccess": "Le profil a été mis à jour", - "updateFailed": "Échec de la mise à jour du profil", - "decodeErr": "Échec du décodage du jeton.", - "uploadCvError": "Erreur de téléchargement", - "uploadCvSuccess": "CV téléchargé avec succès", - "mutationFail": "La mise à jour du cache GET_TRAINEE_PROFILE a échoué.", - "fileErr": "Veuillez choisir un fichier", - "linkErr": "Veuillez entrer un lien externe valide", - "logoutErr": "Erreur de déconnexion", - "navigationErr": "Échec de la navigation", - "updatePassSuccess": "Mot de passe mis à jour avec succès", - "updatePassFail": "Oups, quelque chose s'est mal passé", - "permissionDenied": "Permission pour accéder aux photos a été refusée", - "avatarUpdated": "Photo de profil mise à jour avec succès", - "avatarError": "Erreur lors de la mise à jour de la photo de profil", - "imagePickerError": "Erreur lors de la sélection de l'image" -} -}, -"notifications": { - "deleteSuccess": "Notification supprimée avec succès", - "deleteFailed": "Échec de la suppression de la notification", - "markAllAsRead": "Marquer tout comme lu", - "markAllAsReadSuccess": "Toutes les notifications marquées comme lues", - "markAllAsReadFailed": "Échec du marquage de toutes les notifications comme lues", - "markAsReadSuccess": "Notification marquée comme lue", - "markAsReadFailed": "Échec du marquage de la notification comme lue", - "errorLoadingNotifications": "Erreur de chargement des notifications", - "errorDeletingNotification": "Échec de la suppression de la notification", - "errorMarkingAsRead": "Échec du marquage de la notification comme lue", - "errorMarkingAllAsRead": "Échec du marquage de toutes les notifications comme lues", - "unread": "Non lu", - "all": "Tous", - "loading": "Chargement des notifications...", - "noNotifications": "Aucune notification pour le moment", - "delete": "Supprimer", - "notifications": "Notifications" - -}, -"loginActivity":{ - "title": "Activités de connexion", - "Date": "Date", - "CountryName": "Nom du pays", - "City": "Ville", - "State": "État", - "IPv4": "IPv4", - "Attempt": "Tentative", - "Nologinactivitiesyet": "Pas encore d'activités de connexion.", - "Failed": "Échec", - "Success": "Succès", - "Page{page}of{totalPages}": "Page {{page}} sur {{totalPages}}", - "Previous": "Précédent", - "Next": "Suivant" -}, -"attendance":{ - "attendance": "Votre présence", - "week": "Semaine:", - "day": "Jour", - "date": "Date", - "score": "Score", - "attendanceAverages": "Moyennes de présence:", - "phaseName": "Nom de la phase", - "allPhasesAverage": "Moyenne de toutes les phases:", - "youDontHaveAttendance": "Vous n'avez pas d'enregistrement de présence dans le système pour le moment.", - "attendedAndCommunicated": "[2] Présent et communiqué", - "didntAttendButCommunicated": "[1] N'a pas assisté mais a communiqué", - "didntAttendAndCommunicate": "[0] N'a pas assisté et n'a pas communiqué" -}, -"days": { - "mon": "Lundi", - "tue": "Mardi", - "wed": "Mercredi", - "thu": "Jeudi", - "fri": "Vendredi" + "dashboard": { + "tokenNotFound": "Jeton utilisateur introuvable.", + "failedToken": "Échec de la récupération du jeton.", + "profileErr": "Erreur lors de la récupération du profil.", + "updateSuccess": "Le profil a été mis à jour", + "updateFailed": "Échec de la mise à jour du profil", + "decodeErr": "Échec du décodage du jeton.", + "uploadCvError": "Erreur de téléchargement", + "uploadCvSuccess": "CV téléchargé avec succès", + "mutationFail": "La mise à jour du cache GET_TRAINEE_PROFILE a échoué.", + "fileErr": "Veuillez choisir un fichier", + "linkErr": "Veuillez entrer un lien externe valide", + "logoutErr": "Erreur de déconnexion", + "navigationErr": "Échec de la navigation", + "updatePassSuccess": "Mot de passe mis à jour avec succès", + "updatePassFail": "Oups, quelque chose s'est mal passé", + "permissionDenied": "Permission pour accéder aux photos a été refusée", + "avatarUpdated": "Photo de profil mise à jour avec succès", + "avatarError": "Erreur lors de la mise à jour de la photo de profil", + "imagePickerError": "Erreur lors de la sélection de l'image" + }, + "notifications": { + "deleteSuccess": "Notification supprimée avec succès", + "deleteFailed": "Échec de la suppression de la notification", + "markAllAsRead": "Marquer tout comme lu", + "markAllAsReadSuccess": "Toutes les notifications marquées comme lues", + "markAllAsReadFailed": "Échec du marquage de toutes les notifications comme lues", + "markAsReadSuccess": "Notification marquée comme lue", + "markAsReadFailed": "Échec du marquage de la notification comme lue", + "errorLoadingNotifications": "Erreur de chargement des notifications", + "errorDeletingNotification": "Échec de la suppression de la notification", + "errorMarkingAsRead": "Échec du marquage de la notification comme lue", + "errorMarkingAllAsRead": "Échec du marquage de toutes les notifications comme lues", + "unread": "Non lu", + "all": "Tous", + "loading": "Chargement des notifications...", + "noNotifications": "Aucune notification pour le moment", + "delete": "Supprimer", + "notifications": "Notifications" + }, + "loginActivity": { + "title": "Activités de connexion", + "Date": "Date", + "CountryName": "Nom du pays", + "City": "Ville", + "State": "État", + "IPv4": "IPv4", + "Attempt": "Tentative", + "Nologinactivitiesyet": "Pas encore d'activités de connexion.", + "Failed": "Échec", + "Success": "Succès", + "Page{page}of{totalPages}": "Page {{page}} sur {{totalPages}}", + "Previous": "Précédent", + "Next": "Suivant" + }, + "attendance": { + "attendance": "Votre présence", + "week": "Semaine:", + "day": "Jour", + "date": "Date", + "score": "Score", + "attendanceAverages": "Moyennes de présence:", + "phaseName": "Nom de la phase", + "allPhasesAverage": "Moyenne de toutes les phases:", + "youDontHaveAttendance": "Vous n'avez pas d'enregistrement de présence dans le système pour le moment.", + "attendedAndCommunicated": "[2] Présent et communiqué", + "didntAttendButCommunicated": "[1] N'a pas assisté mais a communiqué", + "didntAttendAndCommunicate": "[0] N'a pas assisté et n'a pas communiqué" + }, + "days": { + "mon": "Lundi", + "tue": "Mardi", + "wed": "Mercredi", + "thu": "Jeudi", + "fri": "Vendredi" }, "documentation": { "pageTitle": "Documentation de l'application" } - - } diff --git a/internationalization/locales/kin.json b/internationalization/locales/kin.json index 1cdcb28..3667b4f 100644 --- a/internationalization/locales/kin.json +++ b/internationalization/locales/kin.json @@ -60,7 +60,7 @@ "submitButton": "Komeza", "successMessage": "Gusaba gusubiramo ijambo ry'ibanga byakozwe neza! Nyamuneka reba imeri yawe kugirango usubiremo ijambo ry'ibanga.", "errorMessage": "Habaye ikibazo. Ongera ugerageze.", - "errorEmail" : "Imeri itemewe" + "errorEmail": "Imeri itemewe" }, "registerSchema": { "firstName": { @@ -101,31 +101,31 @@ "signOut": "Gusohoka" }, "tickets": { - "title": "Itike", - "filter": "muyunguruzi", - "subject": "UMUTWE", - "message": "UBUTUMWA", - "createDate": "YAREMWE KU", - "assigner": "EMAIL Y'UWAYIHAYE", - "assignee": "EMAIL Y'UWAYISHYIZWEHO", - "action": "IBIKORWA", - "noTickets": "Nta itike ihari", - "ticketDetails": "Ibisobanuro by'itike", - "ticketId": "ID y'itike :", - "sub": "Umutwe :", - "mess": "Ubutumwa :", - "status": "Status :", - "assignedUser": "Umukoresha washyizweho", - "close": "Funga", - "view": "Reba", - "copy": "Gukopa ID", - "show": "Erekana", - "goToPage": "Genda ku paje :", - "page": "Ipaji", - "copySuccess": "ID y'itike yakopuwe muri clipboard", - "copyFail": "Byanze gukopa ID y'itike", - "idNotFound": "ID y'itike ntiboneka." -}, + "title": "Itike", + "filter": "muyunguruzi", + "subject": "UMUTWE", + "message": "UBUTUMWA", + "createDate": "YAREMWE KU", + "assigner": "EMAIL Y'UWAYIHAYE", + "assignee": "EMAIL Y'UWAYISHYIZWEHO", + "action": "IBIKORWA", + "noTickets": "Nta itike ihari", + "ticketDetails": "Ibisobanuro by'itike", + "ticketId": "ID y'itike :", + "sub": "Umutwe :", + "mess": "Ubutumwa :", + "status": "Status :", + "assignedUser": "Umukoresha washyizweho", + "close": "Funga", + "view": "Reba", + "copy": "Gukopa ID", + "show": "Erekana", + "goToPage": "Genda ku paje :", + "page": "Ipaji", + "copySuccess": "ID y'itike yakopuwe muri clipboard", + "copyFail": "Byanze gukopa ID y'itike", + "idNotFound": "ID y'itike ntiboneka." + }, "performance": { "performance_scores": "Amanota y'umusaruro", "average": "Ugereranyije", @@ -192,133 +192,98 @@ }, "editProfile": { "editProfile": "HINDURA UMWIRONDORO", - "backToProfile" : "Subira ku mwirondoro", - "city" : "Umujyi", - "country" : "Igihugu", - "updateProfile" : "Kuvugurura Umwirondoro", - "uploadResume" : "SHYIRAHO CV", - "uploadFromPhone" : "Kura Muri Telefoni", - "uploadResumeFromPhone" : "Kura CV muri Telefoni", - "addLink" : "Ongeraho Ihuza ryo hanze", - "enterLink" : "Injiza ihuza ryo hanze", - "uploadLink" : "Shyiraho CV uhereye kumurongo wo hanze", - "chooseFile" : "Hitamo Dosiye", - "upload" : "Shyiraho", + "backToProfile": "Subira ku mwirondoro", + "city": "Umujyi", + "country": "Igihugu", + "updateProfile": "Kuvugurura Umwirondoro", + "uploadResume": "SHYIRAHO CV", + "uploadFromPhone": "Kura Muri Telefoni", + "uploadResumeFromPhone": "Kura CV muri Telefoni", + "addLink": "Ongeraho Ihuza ryo hanze", + "enterLink": "Injiza ihuza ryo hanze", + "uploadLink": "Shyiraho CV uhereye kumurongo wo hanze", + "chooseFile": "Hitamo Dosiye", + "upload": "Shyiraho", "edit": "Hindura", "photo": "IFoto" -}, -"settings": { - "title" : "Igenamiterere", - "profile": "Umwirondoro", - "editProfile": "Hindura umwirondoro, ohereza konti, amakuru…", - "change": "Hindura", - "appearance": "Kugaragara", - "themePreferences": "Ibyifuzo by’inyandiko", - "language": "Ururimi", - "languagePreference": "Ibyifuzo by'ururimi", - "emailNotify": "Ibyanditswe ku Imeyili", - "emailFeeds": "Imeyili z'ibitekerezo, kwibutsa, amakuru", - "pushNotify": "Gutanga amatangazo", - "pushUpdates": "Amakuru ku manota, kwibutsa amasomo, ibisobanuro ku myitwarire", - "privacy": "Ubuzima bwite n'Umutekano", - "login": "Ibikorwa byo kwinjira", - "loginHistory": "Amateka y'ibihe wakoresheje winjira", - "view": "Reba" -}, -"toasts": { - "auth":{ - "registerErr": "Ikimenyetso kirarangiye cyangwa ntigikora", - "unknownErr": "Ikosa: Ikosa ritazwi", - "invalidToken": "Ikimenyetso kirarangiye cyangwa ntigikora", - "terms": "Nyamuneka emera amabwiriza n'amategeko", - "invalidCredentials": "Amakuru ya konti ntabwo ari yo", - "error": "Ikosa", - "networkError": "Habaye ikibazo cyo kuvugana n'umukozi wa seriveri", - "generalError": "Habaye ikosa ritunguranye.", - "authError": "Tegereza kugira ngo wongerwe muri gahunda cyangwa itsinda", - "loginErr": "Iyi porogaramu n'iy'abanyeshuri gusa! Injira ukoresheje urubuga", - "logSuccess": "Murakaza neza! Injira kugira ngo ukomeze", -"checkEmail": "Reba email yawe kugira ngo ukomeze!", -"resetSuccess": "Wongeye gushyiraho ijambo ry'ibanga neza!" }, -"dashboard": { - "tokenNotFound": "Ikimenyetso cya konti nticyabonetse.", - "failedToken": "Byanze kubona ikimenyetso.", - "profileErr": "Ikosa mu kubona umwirondoro.", - "updateSuccess": "Umwirondoro wahinduwe neza", - "updateFailed": "Ntibyakunze guhindura umwirondoro", - "decodeErr": "Byanze gusobanura ikimenyetso.", - "uploadCvError": "Ikosa mu gushyira CV", - "uploadCvSuccess": "CV yashyizweho neza", - "mutationFail": "Guhindura GET_TRAINEE_PROFILE byanze.", - "fileErr": "Nyamuneka hitamo dosiye", - "linkErr": "Nyamuneka shyiramo link y'inyuma ikwiye", - "logoutErr": "Ikosa mu gusohoka", - "navigationErr": "Byanze kugera aho ushaka", - "updatePassSuccess": "Ijambo ry'ibanga ryongewe neza", - "updatePassFail": "Yooo, habaye ikibazo", - "permissionDenied": "Ibitabwirwa by'amakuru biri kuva kuva", - "avatarUpdated": "Foto ya umwirondoro yashyizweho neza", - "avatarError": "Ikosa mu kuvugurura foto ya umwirondoro", - "imagePickerError": "Ikosa mu kuvugurura foto ya umwirondoro" -} -}, -"notifications": { - "deleteSuccess": "Itangazo ryasibwe neza", - "deleteFailed": "Kunanirwa gusiba itangazo", - "markAllAsRead": "Emeza ko byose byasomwe", - "markAllAsReadSuccess": "Amatangazo yose yashyizwe nk'ibyasomwe", - "markAllAsReadFailed": "Byanze gushyira amatangazo yose nk'ibyasomwe", - "markAsReadSuccess": "Itangazo ryashyizwe nk'iryasomwe", - "markAsReadFailed": "Byanze gushyira itangazo nk'iryasomwe", - "errorLoadingNotifications": "Ikosa ryo gupakira amatangazo", - "errorDeletingNotification": "Kunanirwa gusiba itangazo", - "errorMarkingAsRead": "Kunanirwa gushyira itangazo nk'iryasomwe", - "errorMarkingAllAsRead": "Kunanirwa gushyira amatangazo yose nk'ibyasomwe", - "unread": "Ibitasomwe", - "all": "Byose", - "loading": "Gushakisha amatangazo...", - "noNotifications": "Nta matagazo yabonetse", - "delete": "Siba", - "notifications": "Amatangazo" -}, -"loginActivity":{ - "title": "Ibikorwa byo Kwinjira", - "Date": "Itariki", - "CountryName": "Izina ry'Igihugu", - "City": "Umujyi", - "State": "Intara", - "IPv4": "IPv4", - "Attempt": "Gererageza", - "Nologinactivitiesyet": "Nta bikorwa byo kwinjira birabaho.", - "Failed": "Byanze", - "Success": "Byakunze", - "Page{page}of{totalPages}": "Urupapuro {{page}} muri {{totalPages}}", - "Previous": "Ibyabanje", - "Next": "Ibikurikira" -}, -"attendance":{ - "attendance": "Kwitabira kwawe", - "week": "Icyumweru:", - "day": "Umunsi", - "date": "Itariki", - "score": "Amanota", - "attendanceAverages": "Amanota y'ibitabo by'ukwitabira:", - "phaseName": "Izina ry'igihe", - "allPhasesAverage": "Inota rusange ry'ibice byose:", - "youDontHaveAttendance": "Nta gitabo cy'ukwitabira ufite muri sisitemu ubu.", - "attendedAndCommunicated": "[2] Yitabiriye kandi yaganiriye", - "didntAttendButCommunicated": "[1] Ntiyitabiriye ariko yaganiriye", - "didntAttendAndCommunicate": "[0] Ntiyitabiriye kandi ntiyaganiriye" -}, -"days":{ - "mon": "Kuwa 1", - "tue": "Kuwa 2", - "wed": "Kuwa 3", - "thu": "Kuwa 4", - "fri": "Kuwa 5" -}, -"documentation": { - "pageTitle": "Inyandiko z'Application" -} + "dashboard": { + "tokenNotFound": "Ikimenyetso cya konti nticyabonetse.", + "failedToken": "Byanze kubona ikimenyetso.", + "profileErr": "Ikosa mu kubona umwirondoro.", + "updateSuccess": "Umwirondoro wahinduwe neza", + "updateFailed": "Ntibyakunze guhindura umwirondoro", + "decodeErr": "Byanze gusobanura ikimenyetso.", + "uploadCvError": "Ikosa mu gushyira CV", + "uploadCvSuccess": "CV yashyizweho neza", + "mutationFail": "Guhindura GET_TRAINEE_PROFILE byanze.", + "fileErr": "Nyamuneka hitamo dosiye", + "linkErr": "Nyamuneka shyiramo link y'inyuma ikwiye", + "logoutErr": "Ikosa mu gusohoka", + "navigationErr": "Byanze kugera aho ushaka", + "updatePassSuccess": "Ijambo ry'ibanga ryongewe neza", + "updatePassFail": "Yooo, habaye ikibazo", + "permissionDenied": "Ibitabwirwa by'amakuru biri kuva kuva", + "avatarUpdated": "Foto ya umwirondoro yashyizweho neza", + "avatarError": "Ikosa mu kuvugurura foto ya umwirondoro", + "imagePickerError": "Ikosa mu kuvugurura foto ya umwirondoro" + }, + "notifications": { + "deleteSuccess": "Itangazo ryasibwe neza", + "deleteFailed": "Kunanirwa gusiba itangazo", + "markAllAsRead": "Emeza ko byose byasomwe", + "markAllAsReadSuccess": "Amatangazo yose yashyizwe nk'ibyasomwe", + "markAllAsReadFailed": "Byanze gushyira amatangazo yose nk'ibyasomwe", + "markAsReadSuccess": "Itangazo ryashyizwe nk'iryasomwe", + "markAsReadFailed": "Byanze gushyira itangazo nk'iryasomwe", + "errorLoadingNotifications": "Ikosa ryo gupakira amatangazo", + "errorDeletingNotification": "Kunanirwa gusiba itangazo", + "errorMarkingAsRead": "Kunanirwa gushyira itangazo nk'iryasomwe", + "errorMarkingAllAsRead": "Kunanirwa gushyira amatangazo yose nk'ibyasomwe", + "unread": "Ibitasomwe", + "all": "Byose", + "loading": "Gushakisha amatangazo...", + "noNotifications": "Nta matagazo yabonetse", + "delete": "Siba", + "notifications": "Amatangazo" + }, + "loginActivity": { + "title": "Ibikorwa byo Kwinjira", + "Date": "Itariki", + "CountryName": "Izina ry'Igihugu", + "City": "Umujyi", + "State": "Intara", + "IPv4": "IPv4", + "Attempt": "Gererageza", + "Nologinactivitiesyet": "Nta bikorwa byo kwinjira birabaho.", + "Failed": "Byanze", + "Success": "Byakunze", + "Page{page}of{totalPages}": "Urupapuro {{page}} muri {{totalPages}}", + "Previous": "Ibyabanje", + "Next": "Ibikurikira" + }, + "attendance": { + "attendance": "Kwitabira kwawe", + "week": "Icyumweru:", + "day": "Umunsi", + "date": "Itariki", + "score": "Amanota", + "attendanceAverages": "Amanota y'ibitabo by'ukwitabira:", + "phaseName": "Izina ry'igihe", + "allPhasesAverage": "Inota rusange ry'ibice byose:", + "youDontHaveAttendance": "Nta gitabo cy'ukwitabira ufite muri sisitemu ubu.", + "attendedAndCommunicated": "[2] Yitabiriye kandi yaganiriye", + "didntAttendButCommunicated": "[1] Ntiyitabiriye ariko yaganiriye", + "didntAttendAndCommunicate": "[0] Ntiyitabiriye kandi ntiyaganiriye" + }, + "days": { + "mon": "Kuwa 1", + "tue": "Kuwa 2", + "wed": "Kuwa 3", + "thu": "Kuwa 4", + "fri": "Kuwa 5" + }, + "documentation": { + "pageTitle": "Inyandiko z'Application" + } } diff --git a/metro.config.js b/metro.config.js index 4a15a61..f3321ba 100644 --- a/metro.config.js +++ b/metro.config.js @@ -1,6 +1,6 @@ const { getDefaultConfig } = require('expo/metro-config'); const { withNativeWind } = require('nativewind/metro'); -const defaultConfig = getDefaultConfig(__dirname); +const config = getDefaultConfig(__dirname); -module.exports = withNativeWind(defaultConfig, { input: './global.css' }); +module.exports = withNativeWind(config, { input: './global.css' }); diff --git a/package-lock.json b/package-lock.json index e03127d..2c82a8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,72 +9,67 @@ "version": "1.0.1", "dependencies": { "@apollo/client": "^3.11.8", - "@babel/core": "^7.20.0", - "@dev-plugins/apollo-client": "^0.0.6", "@expo-google-fonts/inter": "^0.2.3", "@expo/vector-icons": "^14.0.2", "@react-native-async-storage/async-storage": "1.23.1", - "@react-native-picker/picker": "2.7.5", - "@react-navigation/drawer": "^6.7.2", - "@react-navigation/native": "^6.1.18", + "@react-native-picker/picker": "2.9.0", + "@react-navigation/drawer": "^7.0.0", + "@react-navigation/native": "^7.0.0", "@types/react-native-calendars": "^1.1264.7", - "apollo-server": "^3.13.0", "axios": "^1.7.7", "date-fns": "^4.1.0", "dayjs": "^1.11.13", - "expo": "~51.0.37", - "expo-blur": "~13.0.2", - "expo-checkbox": "~3.0.0", - "expo-clipboard": "~6.0.3", - "expo-document-picker": "~12.0.2", - "expo-font": "~12.0.10", - "expo-image": "~1.13.0", - "expo-image-picker": "~15.0.7", - "expo-linking": "~6.3.1", - "expo-localization": "~15.0.3", - "expo-router": "~3.5.24", - "expo-splash-screen": "~0.27.7", - "expo-status-bar": "~1.12.1", - "expo-system-ui": "~3.0.7", + "expo": "~52.0.9", + "expo-blur": "~14.0.1", + "expo-checkbox": "~4.0.0", + "expo-constants": "~17.0.3", + "expo-device": "~7.0.1", + "expo-document-picker": "~13.0.1", + "expo-font": "~13.0.1", + "expo-image": "~2.0.1", + "expo-image-picker": "~16.0.2", + "expo-linking": "~7.0.3", + "expo-localization": "~16.0.0", + "expo-notifications": "~0.29.8", + "expo-router": "~4.0.7", + "expo-splash-screen": "~0.29.12", + "expo-status-bar": "~2.0.0", + "expo-system-ui": "~4.0.3", "formik": "^2.4.6", "graphql": "^15.9.0", "graphql-ws": "^5.16.0", "i18next": "^23.16.0", "jwt-decode": "^4.0.0", - "nativewind": "^4.1.10", - "react": "18.2.0", + "nativewind": "^4.1.23", + "react": "18.3.1", "react-i18next": "^15.0.3", - "react-native": "0.74.5", + "react-native": "0.76.3", "react-native-asset": "^2.1.1", "react-native-calendars": "^1.1307.0", "react-native-chart-kit": "^6.12.0", "react-native-country-flag": "^2.0.2", "react-native-date-picker": "^5.0.7", "react-native-dropdown-picker": "^5.4.6", - "react-native-element-dropdown": "^2.12.2", - "react-native-gesture-handler": "~2.16.1", - "react-native-pager-view": "6.3.0", + "react-native-gesture-handler": "~2.20.2", + "react-native-pager-view": "6.5.1", "react-native-popover-view": "^5.1.9", - "react-native-reanimated": "~3.10.1", - "react-native-safe-area-context": "4.10.5", - "react-native-screens": "3.31.1", - "react-native-svg": "15.2.0", + "react-native-reanimated": "~3.16.1", + "react-native-safe-area-context": "4.12.0", + "react-native-screens": "~4.1.0", + "react-native-svg": "15.8.0", "react-native-toast-notifications": "^3.4.0", "react-native-vector-icons": "^10.2.0", - "react-test-renderer": "^18.2.0", "vector-icons": "^0.1.0", "yup": "^1.4.0" }, "devDependencies": { - "@babel/core": "^7.25.2", - "@react-native-community/cli": "latest", - "@testing-library/jest-native": "^5.4.3", - "@testing-library/react-native": "^12.7.2", - "@types/jest": "^29.5.13", + "@babel/core": "^7.20.0", + "@dev-plugins/apollo-client": "^0.0.6", + "@testing-library/react-native": "^12.8.1", + "@types/jest": "^29.5.14", "@types/jwt-decode": "^3.1.0", - "@types/react": "~18.2.79", + "@types/react": "~18.3.12", "@types/react-native-vector-icons": "^6.4.18", - "@types/react-test-renderer": "^18.3.0", "@typescript-eslint/eslint-plugin": "^8.6.0", "@typescript-eslint/parser": "^8.6.0", "coveralls": "^3.1.1", @@ -83,13 +78,26 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.35.1", "jest": "~29.7.0", - "jest-expo": "~51.0.4", + "jest-expo": "~52.0.2", "prettier": "^3.3.3", - "react-test-renderer": "18.2.0", - "tailwindcss": "3.3.2", + "tailwindcss": "^3.3.2", "typescript": "~5.3.3" } }, + "node_modules/@0no-co/graphql.web": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.11.tgz", + "integrity": "sha512-xuSJ9WXwTmtngWkbdEoopMo6F8NLtjy84UNAMsAr5C3/2SgAL/dEU10TMqTIsipqPQ8HA/7WzeqQ9DEQxSvPPA==", + "license": "MIT", + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "graphql": { + "optional": true + } + } + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -293,170 +301,6 @@ } } }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", - "license": "MIT", - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "license": "MIT", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "license": "MIT", - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.keyvaluecache/node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", - "license": "MIT" - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "license": "MIT", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "license": "MIT", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "license": "MIT", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "license": "MIT", - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "license": "MIT", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "license": "MIT", - "dependencies": { - "xss": "^1.0.8" - } - }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -639,18 +483,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", @@ -1014,25 +846,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", @@ -1082,23 +895,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -1116,60 +912,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", @@ -1217,7 +959,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1230,7 +971,6 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" @@ -1243,7 +983,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1347,7 +1086,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -1360,7 +1098,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1460,7 +1197,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1476,7 +1212,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1540,7 +1275,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-remap-async-to-generator": "^7.25.9", @@ -1606,7 +1340,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.25.9", "@babel/helper-plugin-utils": "^7.25.9" @@ -1805,7 +1538,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" @@ -1870,7 +1602,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -2019,7 +1750,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -2069,7 +1799,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, @@ -2260,7 +1989,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" @@ -2736,6 +2464,25 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", @@ -2760,6 +2507,7 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/@dev-plugins/apollo-client/-/apollo-client-0.0.6.tgz", "integrity": "sha512-W6fvZ9jSbFGUnX+PirTeBri0nrNUAq7pYAHr8jzqPuw1GVujLG5Po0tW2J8IlU7fXjeLwEIwpD7fnFtKdmN3Rw==", + "dev": true, "license": "MIT", "peerDependencies": { "expo": "*" @@ -2879,6 +2627,13 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2903,6 +2658,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2967,77 +2735,62 @@ "node": ">=0.10.0" } }, - "node_modules/@expo/bunyan/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@expo/cli": { - "version": "0.18.31", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.31.tgz", - "integrity": "sha512-v9llw9fT3Uv+TCM6Xllo54t672CuYtinEQZ2LPJ2EJsCwuTc4Cd2gXQaouuIVD21VoeGQnr5JtJuWbF97sBKzQ==", + "version": "0.21.8", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.21.8.tgz", + "integrity": "sha512-gU+NlL/XS9r7LEfLhjDDKuv3jEtOh+rVnk/k7Lp8WrUwaMCoEGfmQpSqLXetFCCC4UFXSaj1cdMGoy2UBw4rew==", "license": "MIT", "dependencies": { + "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", - "@expo/code-signing-certificates": "0.0.5", - "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.8", - "@expo/devcert": "^1.0.0", - "@expo/env": "~0.3.0", - "@expo/image-utils": "^0.5.0", - "@expo/json-file": "^8.3.0", - "@expo/metro-config": "0.18.11", + "@expo/code-signing-certificates": "^0.0.5", + "@expo/config": "~10.0.4", + "@expo/config-plugins": "~9.0.10", + "@expo/devcert": "^1.1.2", + "@expo/env": "~0.4.0", + "@expo/image-utils": "^0.6.0", + "@expo/json-file": "^9.0.0", + "@expo/metro-config": "~0.19.0", "@expo/osascript": "^2.0.31", "@expo/package-manager": "^1.5.0", - "@expo/plist": "^0.1.0", - "@expo/prebuild-config": "7.0.9", - "@expo/rudder-sdk-node": "1.1.1", + "@expo/plist": "^0.2.0", + "@expo/prebuild-config": "^8.0.17", + "@expo/rudder-sdk-node": "^1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.74.85", - "@urql/core": "2.3.6", - "@urql/exchange-retry": "0.3.0", + "@react-native/dev-middleware": "0.76.3", + "@urql/core": "^5.0.6", + "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", - "arg": "5.0.2", + "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.0.7", "bplist-parser": "^0.3.1", "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", + "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "fast-glob": "^3.3.2", - "find-yarn-workspace-root": "~2.0.0", "form-data": "^3.0.1", - "freeport-async": "2.0.0", + "freeport-async": "^2.0.0", "fs-extra": "~8.1.0", "getenv": "^1.0.0", - "glob": "^7.1.7", - "graphql": "15.8.0", - "graphql-tag": "^2.10.1", - "https-proxy-agent": "^5.0.1", - "internal-ip": "4.3.0", + "glob": "^10.4.2", + "internal-ip": "^4.3.0", "is-docker": "^2.0.0", "is-wsl": "^2.1.1", - "js-yaml": "^3.13.1", - "json-schema-deref-sync": "^0.13.0", "lodash.debounce": "^4.0.8", - "md5hex": "^1.0.0", "minimatch": "^3.0.4", - "node-fetch": "^2.6.7", "node-forge": "^1.3.1", - "npm-package-arg": "^7.0.0", - "open": "^8.3.0", - "ora": "3.4.0", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", "picomatch": "^3.0.1", - "pretty-bytes": "5.6.0", - "progress": "2.0.3", + "pretty-bytes": "^5.6.0", + "pretty-format": "^29.7.0", + "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", @@ -3046,17 +2799,17 @@ "resolve-from": "^5.0.0", "resolve.exports": "^2.0.2", "semver": "^7.6.0", - "send": "^0.18.0", + "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", - "tar": "^6.0.5", + "tar": "^6.2.1", "temp-dir": "^2.0.0", "tempy": "^0.7.1", "terminal-link": "^2.1.1", - "text-table": "^0.2.0", - "url-join": "4.0.0", + "undici": "^6.18.2", + "unique-string": "~2.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, @@ -3064,27 +2817,6 @@ "expo-internal": "build/bin/cli" } }, - "node_modules/@expo/cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@expo/cli/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3095,42 +2827,6 @@ "concat-map": "0.0.1" } }, - "node_modules/@expo/cli/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@expo/cli/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/@expo/cli/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@expo/cli/node_modules/form-data": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", @@ -3145,72 +2841,6 @@ "node": ">= 6" } }, - "node_modules/@expo/cli/node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "license": "MIT", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/@expo/cli/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@expo/cli/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@expo/cli/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3223,66 +2853,6 @@ "node": "*" } }, - "node_modules/@expo/cli/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@expo/cli/node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@expo/cli/node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@expo/cli/node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -3300,19 +2870,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@expo/cli/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@expo/cli/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3325,39 +2882,6 @@ "node": ">=10" } }, - "node_modules/@expo/cli/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/cli/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@expo/code-signing-certificates": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", @@ -3369,39 +2893,40 @@ } }, "node_modules/@expo/config": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.4.tgz", - "integrity": "sha512-g5ns5u1JSKudHYhjo1zaSfkJ/iZIcWmUmIQptMJZ6ag1C0ShL2sj8qdfU8MmAMuKLOgcIfSaiWlQnm4X3VJVkg==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.5.tgz", + "integrity": "sha512-wq48h3HlAPq5v/gMprarAiVY1aEXNBVJ+Em0vrHcYFO8UyxzR6oIao2E4Ed3VWHqhTzPXkMPH4hKCKlzFVBFwQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/json-file": "^8.3.0", + "@expo/config-plugins": "~9.0.10", + "@expo/config-types": "^52.0.0", + "@expo/json-file": "^9.0.0", + "deepmerge": "^4.3.1", "getenv": "^1.0.0", - "glob": "7.1.6", + "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", + "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", - "sucrase": "3.34.0" + "sucrase": "3.35.0" } }, "node_modules/@expo/config-plugins": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.11.tgz", - "integrity": "sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.10.tgz", + "integrity": "sha512-4piPSylJ8z3to+YZpl/6M2mLxASOdIFANA8FYihsTf9kWlyimV9L/+MGgPXJcieaHXYZZqOryf8hQFVeg/68+A==", "license": "MIT", "dependencies": { - "@expo/config-types": "^51.0.3", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", + "@expo/config-types": "^52.0.0", + "@expo/json-file": "~9.0.0", + "@expo/plist": "^0.2.0", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", + "debug": "^4.3.5", "getenv": "^1.0.0", - "glob": "7.1.6", + "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", @@ -3410,49 +2935,6 @@ "xml2js": "0.6.0" } }, - "node_modules/@expo/config-plugins/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@expo/config-plugins/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config-plugins/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@expo/config-plugins/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3466,9 +2948,9 @@ } }, "node_modules/@expo/config-types": { - "version": "51.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.3.tgz", - "integrity": "sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==", + "version": "52.0.1", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.1.tgz", + "integrity": "sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ==", "license": "MIT" }, "node_modules/@expo/config/node_modules/@babel/code-frame": { @@ -3480,49 +2962,6 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/@expo/config/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@expo/config/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@expo/config/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -3564,36 +3003,10 @@ "ms": "^2.1.1" } }, - "node_modules/@expo/devcert/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/devcert/node_modules/sudo-prompt": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", - "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", - "license": "MIT" - }, "node_modules/@expo/env": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz", - "integrity": "sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.0.tgz", + "integrity": "sha512-g2JYFqck3xKIwJyK+8LxZ2ENZPWtRgjFWpeht9abnKgzXVXBeSNECFBkg+WQjQocSIdxXhEWM6hz4ZAe7Tc4ng==", "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -3603,10 +3016,65 @@ "getenv": "^1.0.0" } }, + "node_modules/@expo/fingerprint": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.11.2.tgz", + "integrity": "sha512-WPibADqymGSKkNNnrGfw4dRipz7F8DwMSv7zb6T9oTGtdRiObrUpGmtBXmvo6z9MqWkNRprEJNxPjvkkvMvwhQ==", + "license": "MIT", + "dependencies": { + "@expo/spawn-async": "^1.7.2", + "arg": "^5.0.2", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "find-up": "^5.0.0", + "getenv": "^1.0.0", + "minimatch": "^3.0.4", + "p-limit": "^3.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0" + }, + "bin": { + "fingerprint": "bin/cli.js" + } + }, + "node_modules/@expo/fingerprint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@expo/fingerprint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@expo/fingerprint/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@expo/image-utils": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz", - "integrity": "sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.3.tgz", + "integrity": "sha512-v/JbCKBrHeudxn1gN1TgfPE/pWJSlLPrl29uXJBgrJFQVkViQvUHQNDhaS+UEa9wYI5HHh7XYmtzAehyG4L+GA==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -3614,20 +3082,11 @@ "fs-extra": "9.0.0", "getenv": "^1.0.0", "jimp-compact": "0.16.1", - "node-fetch": "^2.6.0", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", - "tempy": "0.3.0" - } - }, - "node_modules/@expo/image-utils/node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", - "license": "MIT", - "engines": { - "node": ">=4" + "temp-dir": "~2.0.0", + "unique-string": "~2.0.0" } }, "node_modules/@expo/image-utils/node_modules/fs-extra": { @@ -3678,50 +3137,6 @@ "node": ">=10" } }, - "node_modules/@expo/image-utils/node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/image-utils/node_modules/tempy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", - "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", - "license": "MIT", - "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/image-utils/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=6" - } - }, - "node_modules/@expo/image-utils/node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@expo/image-utils/node_modules/universalify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", @@ -3732,13 +3147,13 @@ } }, "node_modules/@expo/json-file": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz", - "integrity": "sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.0.tgz", + "integrity": "sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", + "json5": "^2.2.3", "write-file-atomic": "^2.3.0" } }, @@ -3752,31 +3167,41 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz", - "integrity": "sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.4.tgz", + "integrity": "sha512-2SWwYN8MZvMIRawWEr+1RBYncitPwu2VMACRYig+wBycJ9fsPb6BMVmBYi+3MHDUlJHNy/Bqfw++jn1eqBFETQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "@expo/config": "~9.0.0-beta.0", - "@expo/env": "~0.3.0", - "@expo/json-file": "~8.3.0", + "@expo/config": "~10.0.4", + "@expo/env": "~0.4.0", + "@expo/json-file": "~9.0.0", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "debug": "^4.3.2", - "find-yarn-workspace-root": "~2.0.0", "fs-extra": "^9.1.0", "getenv": "^1.0.0", - "glob": "^7.2.3", + "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.19.0", + "lightningcss": "~1.27.0", + "minimatch": "^3.0.4", "postcss": "~8.4.32", "resolve-from": "^5.0.0" } }, + "node_modules/@expo/metro-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@expo/metro-config/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -3804,6 +3229,18 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@expo/metro-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@expo/metro-config/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -3814,9 +3251,9 @@ } }, "node_modules/@expo/metro-runtime": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz", - "integrity": "sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-4.0.0.tgz", + "integrity": "sha512-+zgCyuXqIzgZVN8h0g36sursGXBy3xqtJW9han7t/iR2HTTrrbEoep5ftW1a27bdSINU96ng+rSsPLbyHYeBvw==", "license": "MIT", "peerDependencies": { "react-native": "*" @@ -3843,251 +3280,16 @@ "dependencies": { "@expo/json-file": "^9.0.0", "@expo/spawn-async": "^1.7.2", - "ansi-regex": "^5.0.0", - "chalk": "^4.0.0", - "find-up": "^5.0.0", - "js-yaml": "^3.13.1", - "micromatch": "^4.0.8", - "npm-package-arg": "^11.0.0", - "ora": "^3.4.0", - "resolve-workspace-root": "^2.0.0", - "split": "^1.0.1", - "sudo-prompt": "9.1.1" - } - }, - "node_modules/@expo/package-manager/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@expo/package-manager/node_modules/@expo/json-file": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.0.tgz", - "integrity": "sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.3", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/package-manager/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@expo/package-manager/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@expo/package-manager/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/@expo/package-manager/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@expo/package-manager/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@expo/package-manager/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@expo/package-manager/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@expo/package-manager/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@expo/package-manager/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@expo/package-manager/node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "ansi-regex": "^5.0.0", + "chalk": "^4.0.0", + "find-up": "^5.0.0", + "js-yaml": "^3.13.1", + "micromatch": "^4.0.8", + "npm-package-arg": "^11.0.0", + "ora": "^3.4.0", + "resolve-workspace-root": "^2.0.0", + "split": "^1.0.1", + "sudo-prompt": "9.1.1" } }, "node_modules/@expo/package-manager/node_modules/sudo-prompt": { @@ -4096,31 +3298,10 @@ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", "license": "MIT" }, - "node_modules/@expo/package-manager/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/package-manager/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@expo/plist": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz", - "integrity": "sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.0.tgz", + "integrity": "sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ==", "license": "MIT", "dependencies": { "@xmldom/xmldom": "~0.7.7", @@ -4129,25 +3310,22 @@ } }, "node_modules/@expo/prebuild-config": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.9.tgz", - "integrity": "sha512-9i6Cg7jInpnGEHN0jxnW0P+0BexnePiBzmbUvzSbRXpdXihYUX2AKMu73jgzxn5P1hXOSkzNS7umaY+BZ+aBag==", + "version": "8.0.20", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-8.0.20.tgz", + "integrity": "sha512-2N2R3qP12Jitmi8V0UG/5s6Se2Fq9RKIdlOTrVA5TzJeHkhCcvQRaRUlojwqjlYh4B3cByLjhTXyWoxM6+wpXQ==", "license": "MIT", "dependencies": { - "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.8", - "@expo/config-types": "^51.0.3", - "@expo/image-utils": "^0.5.0", - "@expo/json-file": "^8.3.0", - "@react-native/normalize-colors": "0.74.85", + "@expo/config": "~10.0.4", + "@expo/config-plugins": "~9.0.10", + "@expo/config-types": "^52.0.0", + "@expo/image-utils": "^0.6.0", + "@expo/json-file": "^9.0.0", + "@react-native/normalize-colors": "0.76.3", "debug": "^4.3.1", "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" - }, - "peerDependencies": { - "expo-modules-autolinking": ">=0.8.1" } }, "node_modules/@expo/prebuild-config/node_modules/fs-extra": { @@ -4216,15 +3394,6 @@ "node": ">=12" } }, - "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@expo/sdk-runtime-versions": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", @@ -4232,12 +3401,12 @@ "license": "MIT" }, "node_modules/@expo/server": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.4.4.tgz", - "integrity": "sha512-q9ADBzMN5rZ/fgQ2mz5YIJuZ8gelQlhG2CQqToD+UvBLZvbaHCNxTTSs2KI1LzJvAaW5CWgWMatGvGF6iUQ0LA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@expo/server/-/server-0.5.0.tgz", + "integrity": "sha512-bfo5udr9C2feCn+vGQ9LvjRD2zFjMyBEnMWDZLYr5D8eCjqLjazGBpPKOVjWOhFR2SshKA3hUBkWEYrVpun0NQ==", "license": "MIT", "dependencies": { - "@remix-run/node": "^2.7.2", + "@remix-run/node": "^2.12.0", "abort-controller": "^3.0.0", "debug": "^4.3.4", "source-map-support": "~0.5.21" @@ -4288,121 +3457,22 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "license": "MIT", - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "license": "MIT", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "license": "MIT", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "license": "MIT", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "license": "MIT", - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } + "node_modules/@expo/xcpretty/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, - "node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "node_modules/@expo/xcpretty/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" + "argparse": "^2.0.1" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@graphql-typed-document-node/core": { @@ -4414,21 +3484,6 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -4495,6 +3550,12 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@ide/backoff": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz", + "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g==", + "license": "MIT" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -4512,18 +3573,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -4536,44 +3585,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -4604,7 +3615,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, "license": "ISC", "dependencies": { "camelcase": "^5.3.1", @@ -4617,21 +3627,10 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -4641,25 +3640,10 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -4672,7 +3656,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -4688,7 +3671,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -4701,7 +3683,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4773,41 +3754,6 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/core/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4941,15 +3887,61 @@ "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": "*" } }, "node_modules/@jest/reporters/node_modules/strip-ansi": { @@ -5028,7 +4020,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", @@ -5051,11 +4042,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/transform/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, "node_modules/@jest/transform/node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", @@ -5082,432 +4078,112 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", - "license": "ISC" - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", - "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", - "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/@react-native-async-storage/async-storage": { - "version": "1.23.1", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.23.1.tgz", - "integrity": "sha512-Qd2kQ3yi6Y3+AcUlrHxSLlnBvpdCEMVGFlVBneVOjaFaPU61g1huc38g339ysXspwY1QZA2aNhrk/KlHGO+ewA==", - "license": "MIT", - "dependencies": { - "merge-options": "^3.0.4" - }, - "peerDependencies": { - "react-native": "^0.0.0-0 || >=0.60 <1.0" - } - }, - "node_modules/@react-native-community/cli": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-15.1.2.tgz", - "integrity": "sha512-c19lBE22JQ3yuk/ImzRrKknla0GbtA3t3stKwZn+U1py+PLMRw54ggwY5XK46fFFot5m2qIhR+xdoWCZMDnr3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-native-community/cli-clean": "15.1.2", - "@react-native-community/cli-config": "15.1.2", - "@react-native-community/cli-debugger-ui": "15.1.2", - "@react-native-community/cli-doctor": "15.1.2", - "@react-native-community/cli-server-api": "15.1.2", - "@react-native-community/cli-tools": "15.1.2", - "@react-native-community/cli-types": "15.1.2", - "chalk": "^4.1.2", - "commander": "^9.4.1", - "deepmerge": "^4.3.0", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "fs-extra": "^8.1.0", - "graceful-fs": "^4.1.3", - "prompts": "^2.4.2", - "semver": "^7.5.2" - }, - "bin": { - "rnc-cli": "build/bin.js" + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=18" + "node": ">=6.0.0" } }, - "node_modules/@react-native-community/cli-clean": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-15.1.2.tgz", - "integrity": "sha512-URtbl7O/Kw5obAUvU7JtGBjkeIoFRnfEhbjXgrh8FDlXyBfJB2mnESDKZGxKMxueTCEsJNYvrziVK0QFiyJ4lQ==", - "dev": true, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@react-native-community/cli-config": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-15.1.2.tgz", - "integrity": "sha512-XFeGcLzipI1YD9uq4nBecRoKzoSBrVG59bs6Xv3EJ/cmgiTynUE6hzSqVTadDS+PTJzUaG7tdeweXJyfdH1vcQ==", - "dev": true, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "cosmiconfig": "^9.0.0", - "deepmerge": "^4.3.0", - "fast-glob": "^3.3.2", - "joi": "^17.2.1" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@react-native-community/cli-config-android": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-15.1.2.tgz", - "integrity": "sha512-A6YQPl+0pTG0vuTcYLHJODkLy8qgZ2YIfy5XiZEAyxAbkSFbyOf7XR7hzjTw6S0BUJzF+eizHeAsKQ2b1bO75A==", - "dev": true, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.4.1" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@react-native-community/cli-config-apple": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-15.1.2.tgz", - "integrity": "sha512-BoCLHAFyPwYV9GcbXd9tzrmjJbuRFhuMQ808+gR9exGqVhcK16z60V71z44I5tvOcwvnOtu5fmiVMC5FvcxyNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, - "node_modules/@react-native-community/cli-debugger-ui": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-15.1.2.tgz", - "integrity": "sha512-GSncUVzyhNAVg/uTFdjf5nERKCg7E/rPbpz4FZS6NeOtgrd/eJXXJEEfn1AU3bHZblr/wf9hl6V2yfBHtJ/wlw==", - "dev": true, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "license": "MIT", "dependencies": { - "serve-static": "^1.13.1" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@react-native-community/cli-doctor": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-15.1.2.tgz", - "integrity": "sha512-A5xxyYxo9TsrBrjImyQSEOTr88MBP3TV3ewnku4TqynAav4pKZVYtXH/fVQ9OQjVkiWN1hoh4cfGuzIWZUfIXw==", - "dev": true, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "license": "MIT", "dependencies": { - "@react-native-community/cli-config": "15.1.2", - "@react-native-community/cli-platform-android": "15.1.2", - "@react-native-community/cli-platform-apple": "15.1.2", - "@react-native-community/cli-platform-ios": "15.1.2", - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "deepmerge": "^4.3.0", - "envinfo": "^7.13.0", - "execa": "^5.0.0", - "node-stream-zip": "^1.9.1", - "ora": "^5.4.1", - "semver": "^7.5.2", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yaml": "^2.2.1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/@react-native-community/cli-hermes": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.9.tgz", - "integrity": "sha512-GvwiwgvFw4Ws+krg2+gYj8sR3g05evmNjAHkKIKMkDTJjZ8EdyxbkifRUs1ZCq3TMZy2oeblZBXCJVOH4W7ZbA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "license": "MIT", - "dependencies": { - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6" + "engines": { + "node": ">= 8" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz", - "integrity": "sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", - "logkitty": "^0.7.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-tools": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz", - "integrity": "sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ==", - "license": "MIT", + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "license": "ISC", "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/semver": { + "node_modules/@npmcli/fs/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", @@ -5519,122 +4195,70 @@ "node": ">=10" } }, - "node_modules/@react-native-community/cli-platform-android": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-15.1.2.tgz", - "integrity": "sha512-LZ+0g7iQ8iniTJmogNe0yrvy03Jh07S02ISrW8rDI/ttdlZgK8Kq+UDoz+isV2Ayjnpj85N1z2PotWlDbLmvAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@react-native-community/cli-config-android": "15.1.2", - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "logkitty": "^0.7.1" - } - }, - "node_modules/@react-native-community/cli-platform-apple": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-15.1.2.tgz", - "integrity": "sha512-qiEQOgJ3yDJOGPfNdybvg71hbyc2aIef1TKWCKs5mIVqteUUHGAE5TGtum/v0L1nYk4GGXKU/5D4M2K6EJo0yw==", - "dev": true, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "license": "MIT", - "dependencies": { - "@react-native-community/cli-config-apple": "15.1.2", - "@react-native-community/cli-tools": "15.1.2", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-xml-parser": "^4.4.1" + "optional": true, + "engines": { + "node": ">=14" } }, - "node_modules/@react-native-community/cli-platform-ios": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-15.1.2.tgz", - "integrity": "sha512-nepoibxXylztx3xR2CTn3vYyCvn8bdityo1QsTdgSkEyB/7n3CkSHqh6sWZeGUPcujBy3xJdYDNrMz06qUVz/A==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, "license": "MIT", - "dependencies": { - "@react-native-community/cli-platform-apple": "15.1.2" + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@react-native-community/cli-server-api": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-15.1.2.tgz", - "integrity": "sha512-UqM4+nCYClhsIvCGoyBA/th5PNt/AcFbUL4BaizShvI+oNVUUwZoK84hGqsPB9k1co6EFNXd1PefY7DGGrGzFg==", - "dev": true, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", + "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-debugger-ui": "15.1.2", - "@react-native-community/cli-tools": "15.1.2", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.3" + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@react-native-community/cli-tools": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-15.1.2.tgz", - "integrity": "sha512-eShBHf/K1e2xJTumiy7CF/akh0DiKfW3YSJ/jpp0RVBgwaXPK6JMrVdGRdbSVad6VqaXVFVtPOe3gSDRa5GDKg==", - "dev": true, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz", + "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==", "license": "MIT", "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "open": "^6.2.0", - "ora": "^5.4.1", - "prompts": "^2.4.2", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@react-native-community/cli-types": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-15.1.2.tgz", - "integrity": "sha512-sPF4MteFp4V3VIBmhQwflFwRQrZOvPz1XAXKkkoVW8oN7KuCTp+VNsiIZOx4Fn9gWAsrRWlybxQVzuzfX7aqww==", - "dev": true, + "node_modules/@react-native-async-storage/async-storage": { + "version": "1.23.1", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.23.1.tgz", + "integrity": "sha512-Qd2kQ3yi6Y3+AcUlrHxSLlnBvpdCEMVGFlVBneVOjaFaPU61g1huc38g339ysXspwY1QZA2aNhrk/KlHGO+ewA==", "license": "MIT", "dependencies": { - "joi": "^17.2.1" - } - }, - "node_modules/@react-native-community/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "merge-options": "^3.0.4" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.60 <1.0" } }, "node_modules/@react-native-picker/picker": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.7.5.tgz", - "integrity": "sha512-vhMaOLkXSUb+YKVbukMJToU4g+89VMhBG2U9+cLYF8X8HtFRidrHjohGqT8/OyesDuKIXeLIP+UFYI9Q9CRA9Q==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.9.0.tgz", + "integrity": "sha512-khEhIW/uhfMqq/+tvg4rEAiPGT8GX+Y6QydlP2TSMSmRHoSJK+ShXvXZXSr4Sii4imkj4BwvLunGywwtQDODqg==", "license": "MIT", "peerDependencies": { "react": "*", @@ -5642,73 +4266,75 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.87.tgz", - "integrity": "sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.3.tgz", + "integrity": "sha512-7Fnc3lzCFFpnoyL1egua6d/qUp0KiIpeSLbfOMln4nI2g2BMzyFHdPjJnpLV2NehmS0omOOkrfRqK5u1F/MXzA==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", - "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.3.tgz", + "integrity": "sha512-mZ7jmIIg4bUnxCqY3yTOkoHvvzsDyrZgfnIKiTGm5QACrsIGa5eT3pMFpMm2OpxGXRDrTMsYdPXE2rCyDX52VQ==", "license": "MIT", "dependencies": { - "@react-native/codegen": "0.74.87" + "@react-native/codegen": "0.76.3" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", - "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.3.tgz", + "integrity": "sha512-zi2nPlQf9q2fmfPyzwWEj6DU96v8ziWtEfG7CTAX2PG/Vjfsr94vn/wWrCdhBVvLRQ6Kvd/MFAuDYpxmQwIiVQ==", "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.87", + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.76.3", + "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -5720,18 +4346,19 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", - "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.3.tgz", + "integrity": "sha512-oJCH/jbYeGmFJql8/y76gqWCCd74pyug41yzYAjREso1Z7xL88JhDyKMvxEnfhSdMOZYVl479N80xFiXPy3ZYA==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.20.0", + "@babel/parser": "^7.25.3", "glob": "^7.1.1", - "hermes-parser": "0.19.1", + "hermes-parser": "0.23.1", "invariant": "^2.2.4", "jscodeshift": "^0.14.0", "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" }, "engines": { "node": ">=18" @@ -5740,138 +4367,162 @@ "@babel/preset-env": "^7.1.6" } }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.87.tgz", - "integrity": "sha512-EgJG9lSr8x3X67dHQKQvU6EkO+3ksVlJHYIVv6U/AmW9dN80BEFxgYbSJ7icXS4wri7m4kHdgeq2PQ7/3vvrTQ==", + "node_modules/@react-native/codegen/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/codegen/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.3.tgz", + "integrity": "sha512-vgsLixHS24jR0d0QqPykBWFaC+V8x9cM3cs4oYXw3W199jgBNGP9MWcUJLazD2vzrT/lUTVBVg0rBeB+4XR6fg==", + "license": "MIT", + "dependencies": { + "@react-native/dev-middleware": "0.76.3", + "@react-native/metro-babel-transformer": "0.76.3", + "chalk": "^4.0.0", + "execa": "^5.1.1", + "invariant": "^2.2.4", + "metro": "^0.81.0", + "metro-config": "^0.81.0", + "metro-core": "^0.81.0", + "node-fetch": "^2.2.0", + "readline": "^1.3.0", + "semver": "^7.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@react-native-community/cli-server-api": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli-server-api": { + "optional": true + } + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "license": "MIT", "dependencies": { - "@react-native-community/cli-server-api": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "@react-native/dev-middleware": "0.74.87", - "@react-native/metro-babel-transformer": "0.74.87", - "chalk": "^4.0.0", - "execa": "^5.1.1", - "metro": "^0.80.3", - "metro-config": "^0.80.3", - "metro-core": "^0.80.3", - "node-fetch": "^2.2.0", - "querystring": "^0.2.1", - "readline": "^1.3.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-debugger-ui": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz", - "integrity": "sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw==", + "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "license": "MIT", - "dependencies": { - "serve-static": "^1.13.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-server-api": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz", - "integrity": "sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug==", + "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", - "dependencies": { - "@react-native-community/cli-debugger-ui": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.2" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native-community/cli-tools": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz", - "integrity": "sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ==", + "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "license": "MIT", - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.87.tgz", - "integrity": "sha512-MN95DJLYTv4EqJc+9JajA3AJZSBYJz2QEJ3uWlHrOky2vKrbbRVaW1ityTmaZa2OXIvNc6CZwSRSE7xCoHbXhQ==", - "license": "BSD-3-Clause", "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.87.tgz", - "integrity": "sha512-7TmZ3hTHwooYgIHqc/z87BMe1ryrIqAUi+AF7vsD+EHCGxHFdMjSpf1BZ2SUPXuLnF2cTiTfV2RwhbPzx0tYIA==", + "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "license": "MIT", "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.87", - "@rnx-kit/chromium-edge-launcher": "^1.0.0", - "chrome-launcher": "^0.15.2", - "connect": "^3.6.5", - "debug": "^2.2.0", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", - "ws": "^6.2.2" + "path-key": "^3.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/@react-native/community-cli-plugin/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -5884,34 +4535,38 @@ "node": ">=10" } }, + "node_modules/@react-native/community-cli-plugin/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, "node_modules/@react-native/debugger-frontend": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", - "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.3.tgz", + "integrity": "sha512-pMHQ3NpPB28RxXciSvm2yD+uDx3pkhzfuWkc7VFgOduyzPSIr0zotUiOJzsAtrj8++bPbOsAraCeQhCqoOTWQw==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", - "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.3.tgz", + "integrity": "sha512-b+2IpW40z1/S5Jo5JKrWPmucYU/PzeGyGBZZ/SJvmRnBDaP3txb9yIqNZAII1EWsKNhedh8vyRO5PSuJ9Juqzw==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.85", - "@rnx-kit/chromium-edge-launcher": "^1.0.0", + "@react-native/debugger-frontend": "0.76.3", "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", - "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", "open": "^7.0.3", "selfsigned": "^2.4.1", "serve-static": "^1.13.1", - "temp-dir": "^2.0.0", - "ws": "^6.2.2" + "ws": "^6.2.3" }, "engines": { "node": ">=18" @@ -5932,49 +4587,42 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "async-limiter": "~1.0.0" } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.87.tgz", - "integrity": "sha512-T+VX0N1qP+U9V4oAtn7FTX7pfsoVkd1ocyw9swYXgJqU2fK7hC9famW7b3s3ZiufPGPr1VPJe2TVGtSopBjL6A==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.3.tgz", + "integrity": "sha512-t0aYZ8ND7+yc+yIm6Yp52bInneYpki6RSIFZ9/LMUzgMKvEB62ptt/7sfho9QkKHCNxE1DJSWIqLIGi/iHHkyg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.87.tgz", - "integrity": "sha512-M5Evdn76CuVEF0GsaXiGi95CBZ4IWubHqwXxV9vG9CC9kq0PSkoM2Pn7Lx7dgyp4vT7ccJ8a3IwHbe+5KJRnpw==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.3.tgz", + "integrity": "sha512-pubJFArMMrdZiytH+W95KngcSQs+LsxOBsVHkwgMnpBfRUxXPMK4fudtBwWvhnwN76Oe+WhxSq7vOS5XgoPhmw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.87.tgz", - "integrity": "sha512-UsJCO24sNax2NSPBmV1zLEVVNkS88kcgAiYrZHtYSwSjpl4WZ656tIeedBfiySdJ94Hr3kQmBYLipV5zk0NI1A==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.3.tgz", + "integrity": "sha512-b2zQPXmW7avw/7zewc9nzMULPIAjsTwN03hskhxHUJH5pzUf7pIklB3FrgYPZrRhJgzHiNl3tOPu7vqiKzBYPg==", "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.87", - "hermes-parser": "0.19.1", + "@babel/core": "^7.25.2", + "@react-native/babel-preset": "0.76.3", + "hermes-parser": "0.23.1", "nullthrows": "^1.1.1" }, "engines": { @@ -5991,15 +4639,15 @@ "license": "MIT" }, "node_modules/@react-native/normalize-colors": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", - "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.3.tgz", + "integrity": "sha512-Yrpmrh4IDEupUUM/dqVxhAN8QW1VEUR3Qrk2lzJC1jB2s46hDe0hrMP2vs12YJqlzshteOthjwXQlY0TgIzgbg==", "license": "MIT" }, "node_modules/@react-native/virtualized-lists": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.87.tgz", - "integrity": "sha512-lsGxoFMb0lyK/MiplNKJpD+A1EoEUumkLrCjH4Ht+ZlG8S0BfCxmskLZ6qXn3BiDSkLjfjI/qyZ3pnxNBvkXpQ==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.3.tgz", + "integrity": "sha512-wTGv9pVh3vAOWb29xFm+J9VRe9dUcUcb9FyaMLT/Hxa88W4wqa5ZMe1V9UvrrBiA1G5DKjv8/1ZcDsJhyugVKA==", "license": "MIT", "dependencies": { "invariant": "^2.2.4", @@ -6020,112 +4668,123 @@ } }, "node_modules/@react-navigation/bottom-tabs": { - "version": "6.5.20", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz", - "integrity": "sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.0.7.tgz", + "integrity": "sha512-ZosKpDjalic/MiOu0kRJe9s0aGzDJcTR6wCWdJ0Ncnd3FXu3V55jS0502HjFCbaVXRItww4r3O0e5nc0Nq86NA==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^1.3.30", - "color": "^4.2.3", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.1.1", + "color": "^4.2.3" }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-navigation/native": "^7.0.4", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, "node_modules/@react-navigation/core": { - "version": "6.4.17", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.17.tgz", - "integrity": "sha512-Nd76EpomzChWAosGqWOYE3ItayhDzIEzzZsT7PfGcRFDgW5miHV2t4MZcq9YIK4tzxZjVVpYbIynOOQQd1e0Cg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.0.4.tgz", + "integrity": "sha512-Olz6Y1Kf7SslTMcir4j3oo9GlFAZBUo5DAks/CsMAQHFJN+BYDQJTX5H8kEfPoKThIbKOLZozVMLQlC866u9HA==", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^6.1.9", + "@react-navigation/routers": "^7.0.0", "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.23", + "nanoid": "3.3.7", "query-string": "^7.1.3", - "react-is": "^16.13.0", - "use-latest-callback": "^0.2.1" + "react-is": "^18.2.0", + "use-latest-callback": "^0.2.1", + "use-sync-external-store": "^1.2.2" }, "peerDependencies": { - "react": "*" + "react": ">= 18.2.0" } }, "node_modules/@react-navigation/drawer": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.7.2.tgz", - "integrity": "sha512-o4g2zgTZa2+oLd+8V33etrSM38KIqu8S/zCBTsdsHUoQyVE7JNRiv3Qgq/jMvEb8PZCqWmm7jHItcgzrBuwyOQ==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-7.0.7.tgz", + "integrity": "sha512-tfPZcd3TYBt9fT2+VzLPjWEpMZmgt7kZabch0zq1RNUAwm+uMaOluu+VhcTewDhfXX+1o7rU52MMXDVNUoPm2Q==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^1.3.31", + "@react-navigation/elements": "^2.1.1", "color": "^4.2.3", - "warn-once": "^0.1.0" + "react-native-drawer-layout": "^4.0.2", + "use-latest-callback": "^0.2.1" }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-navigation/native": "^7.0.4", + "react": ">= 18.2.0", "react-native": "*", - "react-native-gesture-handler": ">= 1.0.0", - "react-native-reanimated": ">= 1.0.0", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" + "react-native-gesture-handler": ">= 2.0.0", + "react-native-reanimated": ">= 2.0.0", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, "node_modules/@react-navigation/elements": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", - "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.1.1.tgz", + "integrity": "sha512-5ENc4tFpSpSDECaIq0j4+TT8BDjF6Wc3qvLrWxsY+UCG8veFY+SunDQG5HmHZ91CFXXsj7zBUQ8Q14b1J7tOIA==", "license": "MIT", + "dependencies": { + "color": "^4.2.3" + }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.0.4", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } } }, "node_modules/@react-navigation/native": { - "version": "6.1.18", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.18.tgz", - "integrity": "sha512-mIT9MiL/vMm4eirLcmw2h6h/Nm5FICtnYSdohq4vTLA2FF/6PNhByM7s8ffqoVfE5L0uAa6Xda1B7oddolUiGg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.0.4.tgz", + "integrity": "sha512-0K9AqV+qWjAzcielVClMltFr5e8bYppxM9f7GmG6R8+yUv9l60k/VEQFH5eKIyyld7u2PkWCLRKE3ghlUjMt/w==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^6.4.17", + "@react-navigation/core": "^7.0.4", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", - "nanoid": "^3.1.23" + "nanoid": "3.3.7", + "use-latest-callback": "^0.2.1" }, "peerDependencies": { - "react": "*", + "react": ">= 18.2.0", "react-native": "*" } }, "node_modules/@react-navigation/native-stack": { - "version": "6.9.26", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz", - "integrity": "sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.1.1.tgz", + "integrity": "sha512-IM2u3nYSfb/K7gOyMn/5Lg3kaZtrwcamyMvM+x4CzEuZIL2CzeCOKHXlmdiwJpW2kBYt/FDZmWwgOH38OwVJ0Q==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^1.3.30", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.1.1", + "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-navigation/native": "^7.0.4", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, "node_modules/@react-navigation/routers": { - "version": "6.1.9", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz", - "integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.0.0.tgz", + "integrity": "sha512-b2ehNmgAfDziTd0EERm0C9JI9JH1kdRS4SNBWbKQOVPv23WG+5ExovwWet26sGtMabLJ5lxSE8Z2/fByfggjNQ==", "license": "MIT", "dependencies": { - "nanoid": "^3.1.23" + "nanoid": "3.3.7" } }, "node_modules/@remix-run/node": { @@ -6245,50 +4904,6 @@ "web-streams-polyfill": "^3.1.1" } }, - "node_modules/@rnx-kit/chromium-edge-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", - "integrity": "sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "^18.0.0", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=14.15" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.64", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.64.tgz", - "integrity": "sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "license": "MIT" - }, "node_modules/@segment/loosely-validate-event": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", @@ -6298,27 +4913,6 @@ "join-component": "^1.1.0" } }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -6343,60 +4937,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@testing-library/jest-native": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-native/-/jest-native-5.4.3.tgz", - "integrity": "sha512-/sSDGaOuE+PJ1Z9Kp4u7PQScSVVXGud59I/qsBFFJvIbcn4P6yYw6cBnBmbPF+X9aRIsTJRDl6gzw5ZkJNm66w==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "jest-diff": "^29.0.1", - "jest-matcher-utils": "^29.0.1", - "pretty-format": "^29.0.3", - "redent": "^3.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-native": ">=0.59", - "react-test-renderer": ">=16.0.0" - } - }, - "node_modules/@testing-library/jest-native/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-native/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@testing-library/jest-native/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@testing-library/react-native": { "version": "12.8.1", "resolved": "https://registry.npmjs.org/@testing-library/react-native/-/react-native-12.8.1.tgz", @@ -6414,47 +4954,12 @@ "react-native": ">=0.59", "react-test-renderer": ">=16.8.0" }, - "peerDependenciesMeta": { - "jest": { - "optional": true - } - } - }, - "node_modules/@testing-library/react-native/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/react-native/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependenciesMeta": { + "jest": { + "optional": true + } } }, - "node_modules/@testing-library/react-native/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -6465,20 +4970,10 @@ "node": ">= 10" } }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", @@ -6492,7 +4987,6 @@ "version": "7.6.8", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -6502,7 +4996,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", @@ -6513,79 +5006,52 @@ "version": "7.20.6", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "license": "MIT" }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "license": "MIT", + "peer": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "@types/eslint": "*", + "@types/estree": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" @@ -6607,12 +5073,6 @@ "hoist-non-react-statics": "^3.3.0" } }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "license": "MIT" - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -6648,41 +5108,6 @@ "pretty-format": "^29.0.0" } }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", @@ -6712,22 +5137,10 @@ "jwt-decode": "*" } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, "node_modules/@types/node": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", - "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", "license": "MIT", "dependencies": { "undici-types": "~6.19.8" @@ -6748,22 +5161,10 @@ "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", "license": "MIT" }, - "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -6802,37 +5203,6 @@ "@types/react-native": "^0.70" } }, - "node_modules/@types/react-test-renderer": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.3.0.tgz", - "integrity": "sha512-HW4MuEYxfDbOHQsVlY/XtOvNHftCVEPhJF2pQXXwcUiUF+Oyb0usgp48HSgpK5rt8m9KZb22yqOeZm+rrVG8gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -7019,110 +5389,283 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", + "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/typescript-estree": "8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", + "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.15.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@urql/core": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.0.8.tgz", + "integrity": "sha512-1GOnUw7/a9bzkcM0+U8U5MmxW2A7FE5YquuEmcJzTtW5tIs2EoS4F2ITpuKBjRBbyRjZgO860nWFPo1m4JImGA==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5", + "wonka": "^6.3.2" + } + }, + "node_modules/@urql/exchange-retry": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.0.tgz", + "integrity": "sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ==", + "license": "MIT", + "dependencies": { + "@urql/core": "^5.0.0", + "wonka": "^6.3.2" + }, + "peerDependencies": { + "@urql/core": "^5.0.0" + } + }, + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "license": "MIT", + "peer": true }, - "node_modules/@typescript-eslint/utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", - "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", - "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/types": "8.15.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, - "node_modules/@urql/core": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", - "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@graphql-typed-document-node/core": "^3.1.0", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/@urql/exchange-retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", - "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@urql/core": ">=2.3.1", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/@web3-storage/multipart-parser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", - "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", - "license": "(Apache-2.0 AND MIT)" - }, "node_modules/@wry/caches": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz", @@ -7181,6 +5724,22 @@ "node": ">=10.0.0" } }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", @@ -7254,6 +5813,19 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-loose": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.4.0.tgz", + "integrity": "sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -7271,6 +5843,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -7348,6 +5921,17 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/anser": { "version": "1.4.10", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", @@ -7369,17 +5953,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-fragments": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", - "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "license": "MIT", - "dependencies": { - "colorette": "^1.0.7", - "slice-ansi": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -7435,249 +6008,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "license": "MIT" - }, - "node_modules/apollo-server": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.13.0.tgz", - "integrity": "sha512-hgT/MswNB5G1r+oBhggVX4Fjw53CFLqG15yB5sN+OrYkCVWF5YwPbJWHfSWa7699JMEXJGaoVfFzcvLZK0UlDg==", - "deprecated": "The `apollo-server` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@types/express": "4.17.14", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "express": "^4.17.1" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", - "deprecated": "The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/apollo-server-core/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", - "deprecated": "The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.13.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express/node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/apollo-server-express/node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "license": "MIT", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/appdirsjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", - "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", - "license": "MIT" - }, "node_modules/application-config-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", @@ -7694,47 +6024,11 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", + "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { - "safe-buffer": "~5.1.0" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "node_modules/arg": { @@ -7744,15 +6038,19 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -7765,12 +6063,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, "node_modules/array-includes": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", @@ -7887,6 +6179,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -7921,6 +6214,19 @@ "safer-buffer": "~2.1.0" } }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -7943,30 +6249,12 @@ "node": ">=4" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "license": "MIT" }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "license": "MIT", - "dependencies": { - "retry": "0.13.1" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -8038,7 +6326,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", @@ -8060,7 +6347,6 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -8077,7 +6363,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", @@ -8094,7 +6379,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", @@ -8145,145 +6429,36 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-react-compiler": { - "version": "0.0.0-experimental-592953e-20240517", - "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-592953e-20240517.tgz", - "integrity": "sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==", - "license": "MIT", - "dependencies": { - "@babel/generator": "7.2.0", - "@babel/types": "^7.19.0", - "chalk": "4", - "invariant": "^2.2.4", - "pretty-format": "^24", - "zod": "^3.22.4", - "zod-validation-error": "^2.1.0" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@babel/generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", - "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.2.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.10", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/babel-plugin-react-native-web": { + "version": "0.19.13", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", + "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", + "license": "MIT" }, - "node_modules/babel-plugin-react-compiler/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "hermes-parser": "0.25.1" } }, - "node_modules/babel-plugin-react-compiler/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", "license": "MIT" }, - "node_modules/babel-plugin-react-compiler/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", "license": "MIT", "dependencies": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-plugin-react-compiler/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "hermes-estree": "0.25.1" } }, - "node_modules/babel-plugin-react-native-web": { - "version": "0.19.13", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", - "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", - "license": "MIT" - }, "node_modules/babel-plugin-transform-flow-enums": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", @@ -8297,7 +6472,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -8321,9 +6495,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "11.0.15", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.15.tgz", - "integrity": "sha512-rgiMTYwqIPULaO7iZdqyL7aAff9QLOX6OWUtLZBlOrOTreGY1yHah/5+l8MvI6NVc/8Zj5LY4Y5uMSnJIuzTLw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-12.0.2.tgz", + "integrity": "sha512-WLApoPw4sOnwwJY+tzp270ndUNfq6xXcZEQUjEQJr8YyDd6uacz7/4iyt2Wl4wEQTabm9DYIZ3GVuNkZzL0M1g==", "license": "MIT", "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", @@ -8332,17 +6506,27 @@ "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.74.87", - "babel-plugin-react-compiler": "0.0.0-experimental-592953e-20240517", - "babel-plugin-react-native-web": "~0.19.10", + "@react-native/babel-preset": "0.76.3", + "babel-plugin-react-native-web": "~0.19.13", "react-refresh": "^0.14.2" + }, + "peerDependencies": { + "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", + "react-compiler-runtime": "^19.0.0-beta-8a03594-20241020" + }, + "peerDependenciesMeta": { + "babel-plugin-react-compiler": { + "optional": true + }, + "react-compiler-runtime": { + "optional": true + } } }, "node_modules/babel-preset-jest": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", @@ -8355,6 +6539,12 @@ "@babel/core": "^7.0.0" } }, + "node_modules/badgin": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.3.tgz", + "integrity": "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw==", + "license": "MIT" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8441,56 +6631,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -8632,12 +6772,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "license": "MIT" - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -8670,26 +6804,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/cacache/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -8777,9 +6891,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", "funding": [ { "type": "opencollective", @@ -8901,6 +7015,43 @@ "node": ">=12.13.0" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "node_modules/chromium-edge-launcher/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -8933,15 +7084,15 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/cli-spinners": { @@ -8956,6 +7107,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -8970,14 +7127,11 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", @@ -9006,9 +7160,9 @@ } }, "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "license": "MIT", "engines": { "node": ">=0.8" @@ -9096,12 +7250,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "license": "MIT" - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -9121,12 +7269,12 @@ "license": "MIT" }, "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">= 10" } }, "node_modules/comment-json": { @@ -9256,27 +7404,6 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "license": "ISC" }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -9320,44 +7447,54 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "license": "MIT" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=4" } }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", "license": "MIT", "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/coveralls": { @@ -9380,30 +7517,6 @@ "node": ">=6" } }, - "node_modules/coveralls/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/coveralls/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -9529,12 +7642,6 @@ "node": ">=4" } }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "license": "MIT" - }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -9568,12 +7675,6 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, - "node_modules/dag-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", - "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", - "license": "MIT" - }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -9615,6 +7716,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -9632,6 +7734,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -9649,6 +7752,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -9695,15 +7799,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", @@ -9773,124 +7868,6 @@ "node": ">=6" } }, - "node_modules/default-gateway/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/default-gateway/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -9903,15 +7880,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -10236,15 +8204,15 @@ } }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "license": "MIT", "engines": { "node": ">= 0.8" @@ -10259,47 +8227,40 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "license": "BSD-2-Clause", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "node_modules/env-editor": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", + "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", "license": "MIT", - "bin": { - "envinfo": "dist/cli.js" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/eol": { @@ -10326,23 +8287,11 @@ "stackframe": "^1.3.4" } }, - "node_modules/errorhandler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.7", - "escape-html": "~1.0.3" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/es-abstract": { "version": "1.23.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -10447,10 +8396,19 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -10463,6 +8421,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", @@ -10487,6 +8446,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.1.4", @@ -10895,6 +8855,17 @@ "node": ">=6" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/exec-async": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", @@ -10902,26 +8873,94 @@ "license": "MIT" }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, "node_modules/exit": { @@ -10951,374 +8990,248 @@ } }, "node_modules/expo": { - "version": "51.0.39", - "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.39.tgz", - "integrity": "sha512-Cs/9xopyzJrpXWbyVUZnr37rprdFJorRgfSp6cdBfvbjxZeKnw2MEu7wJwV/s626i5lZTPGjZPHUF9uQvt51cg==", + "version": "52.0.11", + "resolved": "https://registry.npmjs.org/expo/-/expo-52.0.11.tgz", + "integrity": "sha512-flUffjURDVufsMpoHrgsp+QDvR6xG/hjeMbzeSyFUcPP64uh3Av1/EJ4uUXhmHYV6/8YbHMwEgUbmko85vBtKQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.18.31", - "@expo/config": "9.0.4", - "@expo/config-plugins": "8.0.11", - "@expo/metro-config": "0.18.11", - "@expo/vector-icons": "^14.0.3", - "babel-preset-expo": "~11.0.15", - "expo-asset": "~10.0.10", - "expo-file-system": "~17.0.1", - "expo-font": "~12.0.10", - "expo-keep-awake": "~13.0.2", - "expo-modules-autolinking": "1.11.3", - "expo-modules-core": "1.12.26", + "@expo/cli": "0.21.8", + "@expo/config": "~10.0.5", + "@expo/config-plugins": "~9.0.10", + "@expo/fingerprint": "0.11.2", + "@expo/metro-config": "0.19.4", + "@expo/vector-icons": "^14.0.0", + "babel-preset-expo": "~12.0.2", + "expo-asset": "~11.0.1", + "expo-constants": "~17.0.3", + "expo-file-system": "~18.0.4", + "expo-font": "~13.0.1", + "expo-keep-awake": "~14.0.1", + "expo-modules-autolinking": "2.0.2", + "expo-modules-core": "2.0.6", "fbemitter": "^3.0.0", + "web-streams-polyfill": "^3.3.2", "whatwg-url-without-unicode": "8.0.0-3" }, "bin": { "expo": "bin/cli" - } - }, - "node_modules/expo-asset": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz", - "integrity": "sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==", - "license": "MIT", - "dependencies": { - "expo-constants": "~16.0.0", - "invariant": "^2.2.4", - "md5-file": "^3.2.3" }, "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-asset/node_modules/expo-constants": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz", - "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==", - "license": "MIT", - "dependencies": { - "@expo/config": "~9.0.0", - "@expo/env": "~0.3.0" + "@expo/dom-webview": "*", + "@expo/metro-runtime": "*", + "react": "*", + "react-native": "*", + "react-native-webview": "*" }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-blur": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-13.0.2.tgz", - "integrity": "sha512-t2p7BChO3Reykued++QJRMZ/og6J3aXtSQ+bU31YcBeXhZLkHwjWEhiPKPnJka7J2/yTs4+jOCNDY0kCZmcE3w==", - "license": "MIT", - "peerDependencies": { - "expo": "*" + "peerDependenciesMeta": { + "@expo/dom-webview": { + "optional": true + }, + "@expo/metro-runtime": { + "optional": true + }, + "react-native-webview": { + "optional": true + } } }, - "node_modules/expo-checkbox": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/expo-checkbox/-/expo-checkbox-3.0.0.tgz", - "integrity": "sha512-ZfNUawE0Bp/Xa5Gwtn04yfg6rCnKdqdmBXvEGbYg5U+IfRfLh+ocLiiBAcx760DfdYpzMGQOGpUtWQeEVmJwNw==", - "license": "MIT" - }, - "node_modules/expo-clipboard": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/expo-clipboard/-/expo-clipboard-6.0.3.tgz", - "integrity": "sha512-RIKDsuHkYfaspifbFpVC8sBVFKR05L7Pj7mU2/XkbrW9m01OBNvdpGraXEMsTFCx97xMGsZpEw9pPquL4j4xVg==", + "node_modules/expo-application": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-6.0.1.tgz", + "integrity": "sha512-w+1quSmKp8SYKT+GAFHSN5c6u+PqoVRIfpsLyRQrQdOnBA9dA8Hw6JT9sHNFmA30A2v1b/sdYZE3qKuRJFNSWQ==", "license": "MIT", "peerDependencies": { "expo": "*" } }, - "node_modules/expo-constants": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.3.tgz", - "integrity": "sha512-lnbcX2sAu8SucHXEXxSkhiEpqH+jGrf+TF+MO6sHWIESjwOUVVYlT8qYdjR9xbxWmqFtrI4KV44FkeJf2DaFjQ==", + "node_modules/expo-asset": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.1.tgz", + "integrity": "sha512-WatvD7JVC89EsllXFYcS/rji3ajVzE2B/USo0TqedsETixwyVCQfrrvCdCPQyuKghrxVNEj8bQ/Qbea/RZLYjg==", "license": "MIT", - "peer": true, "dependencies": { - "@expo/config": "~10.0.4", - "@expo/env": "~0.4.0" + "@expo/image-utils": "^0.6.0", + "expo-constants": "~17.0.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3" }, "peerDependencies": { "expo": "*", + "react": "*", "react-native": "*" } }, - "node_modules/expo-constants/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/expo-constants/node_modules/@expo/config": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.5.tgz", - "integrity": "sha512-wq48h3HlAPq5v/gMprarAiVY1aEXNBVJ+Em0vrHcYFO8UyxzR6oIao2E4Ed3VWHqhTzPXkMPH4hKCKlzFVBFwQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.10", - "@expo/config-types": "^52.0.0", - "@expo/json-file": "^9.0.0", - "deepmerge": "^4.3.1", - "getenv": "^1.0.0", - "glob": "^10.4.2", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "resolve-workspace-root": "^2.0.0", - "semver": "^7.6.0", - "slugify": "^1.3.4", - "sucrase": "3.35.0" - } - }, - "node_modules/expo-constants/node_modules/@expo/config-plugins": { - "version": "9.0.10", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.10.tgz", - "integrity": "sha512-4piPSylJ8z3to+YZpl/6M2mLxASOdIFANA8FYihsTf9kWlyimV9L/+MGgPXJcieaHXYZZqOryf8hQFVeg/68+A==", - "license": "MIT", - "peer": true, - "dependencies": { - "@expo/config-types": "^52.0.0", - "@expo/json-file": "~9.0.0", - "@expo/plist": "^0.2.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.5", - "getenv": "^1.0.0", - "glob": "^10.4.2", - "resolve-from": "^5.0.0", - "semver": "^7.5.4", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" - } - }, - "node_modules/expo-constants/node_modules/@expo/config-types": { - "version": "52.0.1", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.1.tgz", - "integrity": "sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ==", - "license": "MIT", - "peer": true - }, - "node_modules/expo-constants/node_modules/@expo/env": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.0.tgz", - "integrity": "sha512-g2JYFqck3xKIwJyK+8LxZ2ENZPWtRgjFWpeht9abnKgzXVXBeSNECFBkg+WQjQocSIdxXhEWM6hz4ZAe7Tc4ng==", - "license": "MIT", - "peer": true, - "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0" - } - }, - "node_modules/expo-constants/node_modules/@expo/json-file": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.0.tgz", - "integrity": "sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.3", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/expo-constants/node_modules/@expo/plist": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.0.tgz", - "integrity": "sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ==", + "node_modules/expo-blur": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.0.1.tgz", + "integrity": "sha512-3Q6jFBLbY8n2vwk28ycUC+eIlVhnlqwkXUKk/Lfaj+SGV3AZMQyrixe7OYwJdUfwqETBrnYYMB6uNrJzOSbG+g==", "license": "MIT", - "peer": true, - "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" } }, - "node_modules/expo-constants/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/expo-checkbox": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/expo-checkbox/-/expo-checkbox-4.0.0.tgz", + "integrity": "sha512-kgmdau1cmlztRVEdjAQkdBCBSvI3W1Z6B+gTTr5ickbItxz07qt3j6dQEB3VDL69/bnIN/h9/iwNLVxuSn/C2Q==", "license": "MIT", - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/expo-constants/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "peer": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-web": "*" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "react-native-web": { + "optional": true + } } }, - "node_modules/expo-constants/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/expo-constants": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.3.tgz", + "integrity": "sha512-lnbcX2sAu8SucHXEXxSkhiEpqH+jGrf+TF+MO6sHWIESjwOUVVYlT8qYdjR9xbxWmqFtrI4KV44FkeJf2DaFjQ==", + "license": "MIT", + "dependencies": { + "@expo/config": "~10.0.4", + "@expo/env": "~0.4.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "expo": "*", + "react-native": "*" } }, - "node_modules/expo-constants/node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "node_modules/expo-device": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/expo-device/-/expo-device-7.0.1.tgz", + "integrity": "sha512-/3lk0f9wvle+6svHqWSCBC1B5NYFmXp1D7hmIyecJJVYRLwzrwwTDyNs76oG/UDU5Appdu8QyDKycsx2hqv71w==", "license": "MIT", - "peer": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "ua-parser-js": "^0.7.33" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "peerDependencies": { + "expo": "*" } }, "node_modules/expo-document-picker": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-12.0.2.tgz", - "integrity": "sha512-tmwuRWoCPv6SmNDSMEWcttMBJ95k8/g5sMWnHdmvOx0UKp0pFXP8FI+55HKtQpo6k2+118MkdDDhQSwKqASVAw==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-13.0.1.tgz", + "integrity": "sha512-M3O3SDqubsRbVyY+Xu6V45K0/G1S1IqEdmVAnPkOiUU2eIEFfF5oP4KON4CsvEhO9IIunnpRr/oq9NQxb3SrEA==", "license": "MIT", "peerDependencies": { "expo": "*" } }, "node_modules/expo-file-system": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz", - "integrity": "sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.4.tgz", + "integrity": "sha512-aAWEDwnu0XHOBYvQ9Q0+QIa+483vYJaC4IDsXyWQ73Rtsg273NZh5kYowY+cAocvoSmA99G6htrLBn11ax2bTQ==", "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.3.2" + }, "peerDependencies": { - "expo": "*" + "expo": "*", + "react-native": "*" } }, "node_modules/expo-font": { - "version": "12.0.10", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.10.tgz", - "integrity": "sha512-Q1i2NuYri3jy32zdnBaHHCya1wH1yMAsI+3CCmj9zlQzlhsS9Bdwcj2W3c5eU5FvH2hsNQy4O+O1NnM6o/pDaQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.1.tgz", + "integrity": "sha512-8JE47B+6cLeKWr5ql8gU6YsPHjhrz1vMrTqYMm72No/8iW8Sb/uL4Oc0dpmbjq3hLLXBY0xPBQOgU7FQ6Y04Vg==", "license": "MIT", "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { - "expo": "*" + "expo": "*", + "react": "*" } }, "node_modules/expo-image": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-1.13.0.tgz", - "integrity": "sha512-0NLDcFmEn4Nh1sXeRvNzDHT+Fl6FXtTol6ki6kYYH0/iDeSFWyIy/Fek6kzDDYAmhipSMR7buPf7VVoHseTbAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-2.0.2.tgz", + "integrity": "sha512-LkjdE5ij48Yu7eE5E1ruXpxgmyRw33oaapPkNpDx/AKh1GEGQ0wQ4genvV1QXZmlNrzaRurzuVUvwz8n3abwdg==", "license": "MIT", "peerDependencies": { - "expo": "*" + "expo": "*", + "react": "*", + "react-native": "*", + "react-native-web": "*" + }, + "peerDependenciesMeta": { + "react-native-web": { + "optional": true + } } }, "node_modules/expo-image-loader": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.7.0.tgz", - "integrity": "sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-5.0.0.tgz", + "integrity": "sha512-Eg+5FHtyzv3Jjw9dHwu2pWy4xjf8fu3V0Asyy42kO+t/FbvW/vjUixpTjPtgKQLQh+2/9Nk4JjFDV6FwCnF2ZA==", "license": "MIT", "peerDependencies": { "expo": "*" } }, "node_modules/expo-image-picker": { - "version": "15.0.7", - "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-15.0.7.tgz", - "integrity": "sha512-u8qiPZNfDb+ap6PJ8pq2iTO7JKX+ikAUQ0K0c7gXGliKLxoXgDdDmXxz9/6QdICTshJBJlBvI0MwY5NWu7A/uw==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-16.0.3.tgz", + "integrity": "sha512-c4IOqIQOtx8puWWU4fVsJhuGiAhH6gAIdrVzhimOXSEUHnfxCckRYzvznbd/0cuvaA5y9H0CSYrxpTUc/0WNVw==", "license": "MIT", "dependencies": { - "expo-image-loader": "~4.7.0" + "expo-image-loader": "~5.0.0" }, "peerDependencies": { "expo": "*" } }, "node_modules/expo-keep-awake": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz", - "integrity": "sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.1.tgz", + "integrity": "sha512-c5mGCAIk2YM+Vsdy90BlEJ4ZX+KG5Au9EkJUIxXWlpnuKmDAJ3N+5nEZ7EUO1ZTheqoSBeAo4jJ8rTWPU+JXdw==", "license": "MIT", "peerDependencies": { - "expo": "*" + "expo": "*", + "react": "*" } }, "node_modules/expo-linking": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-6.3.1.tgz", - "integrity": "sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-7.0.3.tgz", + "integrity": "sha512-YiDacNzeQZd/bdOwGyi+YlawM4GGbcSRkuFCpDGIK7D1KUGqLinBHwJvxUMb9Zert2Ois5IHtmZaZ1et6g229g==", "license": "MIT", "dependencies": { - "expo-constants": "~16.0.0", + "expo-constants": "~17.0.0", "invariant": "^2.2.4" - } - }, - "node_modules/expo-linking/node_modules/expo-constants": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz", - "integrity": "sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==", - "license": "MIT", - "dependencies": { - "@expo/config": "~9.0.0", - "@expo/env": "~0.3.0" }, "peerDependencies": { - "expo": "*" + "react": "*", + "react-native": "*" } }, "node_modules/expo-localization": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-15.0.3.tgz", - "integrity": "sha512-IfcmlKuKRlowR9qIzL0e+nGHBeNoF7l2GQaOJstc7HZiPjNJ4J1R4D53ZNf483dt7JSkTRJBihdTadOtOEjRdg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-16.0.0.tgz", + "integrity": "sha512-PaWDUs6sNaEbFwQc6QKsTfYCg9GDo3bBl+cWnoG0G7pn1A623CcMwWyV7jD5jpqz0s1gHmwSRjR3vKOqhouRWg==", "license": "MIT", "dependencies": { "rtl-detect": "^1.0.2" }, "peerDependencies": { - "expo": "*" + "expo": "*", + "react": "*" } }, "node_modules/expo-modules-autolinking": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.3.tgz", - "integrity": "sha512-oYh8EZEvYF5TYppxEKUTTJmbr8j7eRRnrIxzZtMvxLTXoujThVPMFS/cbnSnf2bFm1lq50TdDNABhmEi7z0ngQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.0.2.tgz", + "integrity": "sha512-n3jC7VoJLfOLGk8NWhEAvM5zSjbLh1kMUSo76nJupx5/vASxDdzihppYebrKrNXPHq5mcw8Jr+r7YB+8xHx7QQ==", "license": "MIT", "dependencies": { + "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", "fast-glob": "^3.2.5", @@ -11331,15 +9244,6 @@ "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, - "node_modules/expo-modules-autolinking/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/expo-modules-autolinking/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -11377,36 +9281,59 @@ } }, "node_modules/expo-modules-core": { - "version": "1.12.26", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.26.tgz", - "integrity": "sha512-y8yDWjOi+rQRdO+HY+LnUlz8qzHerUaw/LUjKPU/mX8PRXP4UUPEEp5fjAwBU44xjNmYSHWZDwet4IBBE+yQUA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.0.6.tgz", + "integrity": "sha512-IsFDn8TqhmnxNUWxkhyVqJ07x/vLlaUN1f2R4eYaP9NFoSWb0c2bTf99a03NGxnfuQ9G7Jrzu+VafSHzCKUxxQ==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, + "node_modules/expo-notifications": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.29.8.tgz", + "integrity": "sha512-WdpbWtbNFiszvpRN5aSp+M6xoAQLo1eNf1VivNe7odJMPRBUhG+OnhUWI9IqLESuNtRD/sfkMT7bYJxPqchBVw==", + "license": "MIT", + "dependencies": { + "@expo/image-utils": "^0.6.0", + "@ide/backoff": "^1.0.0", + "abort-controller": "^3.0.0", + "assert": "^2.0.0", + "badgin": "^1.1.5", + "expo-application": "~6.0.0", + "expo-constants": "~17.0.0" + }, + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, "node_modules/expo-router": { - "version": "3.5.24", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.24.tgz", - "integrity": "sha512-wFi+PIUrOntF5cgg0PgBMlkxEZlWedIv5dWnPFEzN6Tr3A3bpsqdDLgOEIwvwd+pxn5DLzykTmg9EkQ1pPGspw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-4.0.9.tgz", + "integrity": "sha512-bZupRd2nUWolihwhW2kqTTAVyhMaHJbtEFn49bOHtrfl0gkIHld+IecUIh+eJW6QTAcTOHCu5gVHLoJeM0mwjA==", "license": "MIT", "dependencies": { - "@expo/metro-runtime": "3.2.3", - "@expo/server": "^0.4.0", + "@expo/metro-runtime": "4.0.0", + "@expo/server": "^0.5.0", "@radix-ui/react-slot": "1.0.1", - "@react-navigation/bottom-tabs": "~6.5.7", - "@react-navigation/native": "~6.1.6", - "@react-navigation/native-stack": "~6.9.12", - "expo-splash-screen": "0.27.7", + "@react-navigation/bottom-tabs": "^7.0.0", + "@react-navigation/native": "^7.0.0", + "@react-navigation/native-stack": "^7.0.0", + "client-only": "^0.0.1", + "react-helmet-async": "^1.3.0", "react-native-helmet-async": "2.0.4", - "schema-utils": "^4.0.1" + "react-native-is-edge-to-edge": "^1.1.6", + "schema-utils": "^4.0.1", + "semver": "~7.6.3", + "server-only": "^0.0.1" }, "peerDependencies": { - "@react-navigation/drawer": "^6.5.8", + "@react-navigation/drawer": "^7.0.0", "expo": "*", "expo-constants": "*", "expo-linking": "*", - "expo-status-bar": "*", "react-native-reanimated": "*", "react-native-safe-area-context": "*", "react-native-screens": "*" @@ -11423,177 +9350,65 @@ } } }, - "node_modules/expo-splash-screen": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.7.tgz", - "integrity": "sha512-s+eGcG185878nixlrjhhLD6UDYrvoqBUaBkIEozBVWFg3pkdsKpONPiUAco4XR3h7I/9ODq4quN28RJLFO+s0Q==", - "license": "MIT", - "dependencies": { - "@expo/prebuild-config": "7.0.9" + "node_modules/expo-router/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "expo": "*" + "engines": { + "node": ">=10" } }, - "node_modules/expo-status-bar": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz", - "integrity": "sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==", - "license": "MIT" - }, - "node_modules/expo-system-ui": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz", - "integrity": "sha512-KAs72F5JKhdIfPR9ZNVlRubTPK9uUuevPy5oYEp12xNEzSQcjZKvypH5NpwJuNWkXzrp3n3vZ+3pXsudA7J3KA==", + "node_modules/expo-splash-screen": { + "version": "0.29.13", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.29.13.tgz", + "integrity": "sha512-OTaW6v2ErKTlguFDNi4PN+qrEFRA4TIEyFag4204CiFIpAB+13PqQiW4Ovt29aYlLERIjWD++PyoHeSdLSiZwg==", "license": "MIT", "dependencies": { - "@react-native/normalize-colors": "0.74.85", - "debug": "^4.3.2" + "@expo/prebuild-config": "^8.0.17" }, "peerDependencies": { "expo": "*" } }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "license": "Apache-2.0" - }, - "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/debug/node_modules/ms": { + "node_modules/expo-status-bar": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-2.0.0.tgz", + "integrity": "sha512-vxxdpvpNDMTEc5uTiIrbTvySKKUsOACmfl8OZuUdjNle05oGqwtq3v5YObwym/njSByjoyuZX8UpXBZnxvarwQ==", "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" + "peerDependencies": { + "react": "*", + "react-native": "*" } }, - "node_modules/express/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/expo-system-ui": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-4.0.4.tgz", + "integrity": "sha512-HShVNcHhdxl2zwlophX2ghjDr40Kexxa2hdeDhZliBoQkOkVrmp28agY+2W8pibAmQDIjjGAEYai07C0U8xQ8w==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "@react-native/normalize-colors": "0.76.3", + "debug": "^4.3.2" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "expo": "*", + "react-native": "*", + "react-native-web": "*" + }, + "peerDependenciesMeta": { + "react-native-web": { + "optional": true + } } }, - "node_modules/express/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "license": "Apache-2.0" }, "node_modules/extend": { "version": "3.0.2", @@ -11672,28 +9487,6 @@ "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "license": "BSD-3-Clause" }, - "node_modules/fast-xml-parser": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", - "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "license": "MIT", - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -11742,6 +9535,32 @@ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", "license": "MIT" }, + "node_modules/fbjs/node_modules/ua-parser-js": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/fetch-retry": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", @@ -11809,42 +9628,12 @@ "ms": "2.0.0" } }, - "node_modules/finalhandler/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/finalhandler/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", @@ -11979,15 +9768,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2" - } - }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -12016,9 +9796,9 @@ "license": "MIT" }, "node_modules/flow-parser": { - "version": "0.254.1", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.254.1.tgz", - "integrity": "sha512-dyUrQD6ZyI4PVQppj8PP5kj6BVThK8FprAcPCnJNLIZM7zcAL6/xGS1EE1haWv2HcO/dHy7GSwOAO59uaffjYw==", + "version": "0.254.2", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.254.2.tgz", + "integrity": "sha512-18xCQaVdKNCY0TAEhwUdk1HmRdgsPSraWwu0Zifqo5M4Ubi9LjWTAdlfBFb07Os+fQ9TmzxlyZN6OxK0m9xrBw==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -12075,18 +9855,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -12145,15 +9913,6 @@ "node": ">=0.10.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/freeport-async": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", @@ -12231,6 +9990,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -12249,6 +10009,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12280,6 +10041,38 @@ "node": ">=0.10.0" } }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -12333,7 +10126,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -12349,21 +10141,22 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "pump": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6" } }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -12397,21 +10190,20 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12429,27 +10221,13 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true }, "node_modules/globals": { "version": "11.12.0", @@ -12464,6 +10242,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -12589,6 +10368,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12682,30 +10462,18 @@ } }, "node_modules/hermes-estree": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz", - "integrity": "sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", + "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", "license": "MIT" }, "node_modules/hermes-parser": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz", - "integrity": "sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.19.1" - } - }, - "node_modules/hermes-profile-transformer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", - "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", + "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", "license": "MIT", "dependencies": { - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=8" + "hermes-estree": "0.23.1" } }, "node_modules/hoist-non-react-statics": { @@ -12717,34 +10485,28 @@ "react-is": "^16.7.0" } }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, "node_modules/html-encoding-sniffer": { @@ -12792,6 +10554,15 @@ "node": ">= 0.8" } }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -12827,6 +10598,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -12869,12 +10641,13 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -13029,6 +10802,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -13086,6 +10860,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -13108,6 +10883,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -13123,6 +10899,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" @@ -13147,6 +10924,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -13196,6 +10974,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" @@ -13211,6 +10990,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -13256,24 +11036,28 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-generator-fn": { @@ -13313,53 +11097,28 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "license": "MIT", - "dependencies": { - "is-glob": "^2.0.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "license": "MIT", "dependencies": { - "is-extglob": "^1.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -13371,6 +11130,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -13392,6 +11152,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -13453,6 +11214,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -13469,6 +11231,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -13481,6 +11244,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7" @@ -13493,21 +11257,19 @@ } }, "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -13523,6 +11285,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" @@ -13556,34 +11319,11 @@ "dev": true, "license": "MIT" }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "license": "MIT", - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -13596,6 +11336,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2" @@ -13608,6 +11349,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -13633,9 +11375,9 @@ } }, "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "license": "MIT" }, "node_modules/isexe": { @@ -13664,7 +11406,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=8" @@ -13828,6 +11569,102 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", @@ -13860,41 +11697,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", @@ -13975,41 +11777,52 @@ } } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "*" } }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", @@ -14026,41 +11839,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", @@ -14091,41 +11869,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", @@ -14172,29 +11915,90 @@ } }, "node_modules/jest-expo": { - "version": "51.0.4", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.4.tgz", - "integrity": "sha512-WmlR4rUur1TNF/F14brKCmPdX3TWf7Bno/6A1PuxnflN79LEIXpXuPKMlMWwCCChTohGB5FRniknRibblWu1ug==", + "version": "52.0.2", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.2.tgz", + "integrity": "sha512-6xV/+IRw93Org1UlgIqu89Ex3vuPRozD5VqTS95AonHMgjb0XTHHhMmn+TdR1d3i3ziy7JFbWAMoBLwminIalw==", "dev": true, "license": "MIT", "dependencies": { - "@expo/config": "~9.0.0-beta.0", - "@expo/json-file": "^8.3.0", + "@expo/config": "~10.0.4", + "@expo/json-file": "^9.0.0", "@jest/create-cache-key-function": "^29.2.1", + "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", + "fbemitter": "^3.0.0", "find-up": "^5.0.0", "jest-environment-jsdom": "^29.2.1", + "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", - "react-test-renderer": "18.2.0", + "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", + "react-test-renderer": "18.3.1", + "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "bin": { "jest": "bin/jest.js" + }, + "peerDependencies": { + "expo": "*", + "react-native": "*" + } + }, + "node_modules/jest-expo/node_modules/react": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-SMgWGY//7nO7F3HMuBfmC15Cr4vTe2tlpSCATfnz/wymSftDOKUqc+0smjRhcUeCFCc1zhOAWJ+N//U5CrmOzQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-expo/node_modules/react-dom": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-56G4Pum5E7FeGL1rwHX5IxidSJxQnXP4yORRo0pVeOJuu5DQJvNKpUwmJoftMP/ez0AiglYTY77L2Gs8iyt1Hg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "0.25.0-rc-6230622a1a-20240610" + }, + "peerDependencies": { + "react": "19.0.0-rc-6230622a1a-20240610" + } + }, + "node_modules/jest-expo/node_modules/react-server-dom-webpack": { + "version": "19.0.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-nr+IsOVD07QdeCr4BLvR5TALfLaZLi9AIaoa6vXymBc051iDPWedJujYYrjRJy5+9jp9oCx3G8Tt/Bs//TckJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-loose": "^8.3.0", + "neo-async": "^2.6.1" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "19.0.0-rc-6230622a1a-20240610", + "react-dom": "19.0.0-rc-6230622a1a-20240610", + "webpack": "^5.59.0" } }, + "node_modules/jest-expo/node_modules/scheduler": { + "version": "0.25.0-rc-6230622a1a-20240610", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-6230622a1a-20240610.tgz", + "integrity": "sha512-GTIQdJXthps5mgkIFo7yAq03M0QQYTfN8z+GrnMC/SCKFSuyFP5tk2BMaaWUsVy4u4r+dTLdiXH8JEivVls0Bw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", @@ -14208,7 +12012,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -14244,41 +12047,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -14295,41 +12063,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", @@ -14350,38 +12083,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", @@ -14418,7 +12119,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -14562,7 +12262,53 @@ "strip-bom": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/jest-snapshot": { @@ -14597,41 +12343,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -14691,18 +12402,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -14715,26 +12414,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, "node_modules/jest-watch-select-projects": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz", @@ -14796,19 +12475,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/jest-watch-typeahead/node_modules/char-regex": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", @@ -14849,22 +12515,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", @@ -14930,19 +12580,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, "node_modules/join-component": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", @@ -14956,12 +12593,13 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -15065,28 +12703,6 @@ } } }, - "node_modules/jsdom/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -15126,36 +12742,6 @@ "dev": true, "license": "(AFL-2.1 OR BSD-3-Clause)" }, - "node_modules/json-schema-deref-sync": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", - "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", - "license": "MIT", - "dependencies": { - "clone": "^2.1.2", - "dag-map": "~1.0.0", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.13", - "md5": "~2.2.0", - "memory-cache": "~0.2.0", - "traverse": "~0.6.6", - "valid-url": "~1.0.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/json-schema-deref-sync/node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", - "license": "BSD-3-Clause", - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -15326,9 +12912,9 @@ "license": "MIT" }, "node_modules/lightningcss": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", - "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", + "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", "license": "MPL-2.0", "dependencies": { "detect-libc": "^1.0.3" @@ -15341,20 +12927,22 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.19.0", - "lightningcss-darwin-x64": "1.19.0", - "lightningcss-linux-arm-gnueabihf": "1.19.0", - "lightningcss-linux-arm64-gnu": "1.19.0", - "lightningcss-linux-arm64-musl": "1.19.0", - "lightningcss-linux-x64-gnu": "1.19.0", - "lightningcss-linux-x64-musl": "1.19.0", - "lightningcss-win32-x64-msvc": "1.19.0" + "lightningcss-darwin-arm64": "1.27.0", + "lightningcss-darwin-x64": "1.27.0", + "lightningcss-freebsd-x64": "1.27.0", + "lightningcss-linux-arm-gnueabihf": "1.27.0", + "lightningcss-linux-arm64-gnu": "1.27.0", + "lightningcss-linux-arm64-musl": "1.27.0", + "lightningcss-linux-x64-gnu": "1.27.0", + "lightningcss-linux-x64-musl": "1.27.0", + "lightningcss-win32-arm64-msvc": "1.27.0", + "lightningcss-win32-x64-msvc": "1.27.0" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", - "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz", + "integrity": "sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==", "cpu": [ "arm64" ], @@ -15372,9 +12960,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", - "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz", + "integrity": "sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==", "cpu": [ "x64" ], @@ -15392,9 +12980,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.1.tgz", - "integrity": "sha512-b7sF89B31kYYijxVcFO7l5u6UNA862YstNu+3YbLl/IQKzveL4a5cwR5cdpG+OOhErg/c2u9WCmzZoX2I5GBvw==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz", + "integrity": "sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==", "cpu": [ "x64" ], @@ -15412,9 +13000,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", - "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz", + "integrity": "sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==", "cpu": [ "arm" ], @@ -15432,9 +13020,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", - "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz", + "integrity": "sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==", "cpu": [ "arm64" ], @@ -15452,9 +13040,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", - "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz", + "integrity": "sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==", "cpu": [ "arm64" ], @@ -15472,9 +13060,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", - "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz", + "integrity": "sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==", "cpu": [ "x64" ], @@ -15492,9 +13080,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", - "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz", + "integrity": "sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==", "cpu": [ "x64" ], @@ -15512,9 +13100,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.1.tgz", - "integrity": "sha512-Erm72kHmMg/3h350PTseskz+eEGBM17Fuu79WW2Qqt0BfWSF1jHHc12lkJCWMYl5jcBHPs5yZdgNHtJ7IJS3Uw==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz", + "integrity": "sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==", "cpu": [ "arm64" ], @@ -15532,9 +13120,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", - "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz", + "integrity": "sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==", "cpu": [ "x64" ], @@ -15566,270 +13154,156 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "license": "MIT" - }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=0.8.6" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/logkitty": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", - "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "license": "MIT", - "dependencies": { - "ansi-fragments": "^0.2.1", - "dayjs": "^1.8.15", - "yargs": "^15.1.0" - }, - "bin": { - "logkitty": "bin/logkitty.js" - } - }, - "node_modules/logkitty/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/logkitty/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, + "peer": true, "engines": { - "node": ">=8" + "node": ">=6.11.5" } - }, - "node_modules/logkitty/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/logkitty/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=0.8.6" + } + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "chalk": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/logkitty/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/logkitty/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/logkitty/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "color-name": "1.1.3" } }, - "node_modules/logkitty/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, - "node_modules/logkitty/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/logkitty/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "license": "MIT", - "engines": { - "node": ">= 0.6.0" + "dependencies": { + "has-flag": "^3.0.0" }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "engines": { + "node": ">=4" } }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "license": "Apache-2.0" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -15921,48 +13395,18 @@ "node": ">=0.10" } }, - "node_modules/md5hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", - "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", - "license": "MIT" - }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "license": "CC0-1.0" }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", "license": "MIT" }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", - "license": "BSD-2-Clause" - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", @@ -15990,28 +13434,19 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/metro": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz", - "integrity": "sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.81.0.tgz", + "integrity": "sha512-kzdzmpL0gKhEthZ9aOV7sTqvg6NuTxDV8SIm9pf9sO8VVEbKrQk5DNcwupOUjgPPFAuKUc2NkT0suyT62hm2xg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", @@ -16021,24 +13456,24 @@ "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.23.1", + "hermes-parser": "0.24.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.6.3", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.80.12", - "metro-cache": "0.80.12", - "metro-cache-key": "0.80.12", - "metro-config": "0.80.12", - "metro-core": "0.80.12", - "metro-file-map": "0.80.12", - "metro-resolver": "0.80.12", - "metro-runtime": "0.80.12", - "metro-source-map": "0.80.12", - "metro-symbolicate": "0.80.12", - "metro-transform-plugins": "0.80.12", - "metro-transform-worker": "0.80.12", + "metro-babel-transformer": "0.81.0", + "metro-cache": "0.81.0", + "metro-cache-key": "0.81.0", + "metro-config": "0.81.0", + "metro-core": "0.81.0", + "metro-file-map": "0.81.0", + "metro-resolver": "0.81.0", + "metro-runtime": "0.81.0", + "metro-source-map": "0.81.0", + "metro-symbolicate": "0.81.0", + "metro-transform-plugins": "0.81.0", + "metro-transform-worker": "0.81.0", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", @@ -16052,174 +13487,102 @@ "metro": "src/cli.js" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-babel-transformer": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz", - "integrity": "sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.0.tgz", + "integrity": "sha512-Dc0QWK4wZIeHnyZ3sevWGTnnSkIDDn/SWyfrn99zbKbDOCoCYy71PAn9uCRrP/hduKLJQOy+tebd63Rr9D8tXg==", "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", + "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.23.1", + "hermes-parser": "0.24.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", + "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", "license": "MIT" }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", + "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", "license": "MIT", "dependencies": { - "hermes-estree": "0.23.1" + "hermes-estree": "0.24.0" } }, "node_modules/metro-cache": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz", - "integrity": "sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.0.tgz", + "integrity": "sha512-DyuqySicHXkHUDZFVJmh0ygxBSx6pCKUrTcSgb884oiscV/ROt1Vhye+x+OIHcsodyA10gzZtrVtxIFV4l9I4g==", "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", - "metro-core": "0.80.12" + "metro-core": "0.81.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-cache-key": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz", - "integrity": "sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.0.tgz", + "integrity": "sha512-qX/IwtknP9bQZL78OK9xeSvLM/xlGfrs6SlUGgHvrxtmGTRSsxcyqxR+c+7ch1xr05n62Gin/O44QKg5V70rNQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-config": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz", - "integrity": "sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.81.0.tgz", + "integrity": "sha512-6CinEaBe3WLpRlKlYXXu8r1UblJhbwD6Gtnoib5U8j6Pjp7XxMG9h/DGMeNp9aGLDu1OieUqiXpFo7O0/rR5Kg==", "license": "MIT", "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.6.3", - "metro": "0.80.12", - "metro-cache": "0.80.12", - "metro-core": "0.80.12", - "metro-runtime": "0.80.12" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/metro-config/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "license": "MIT", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/metro-config/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "metro": "0.81.0", + "metro-cache": "0.81.0", + "metro-core": "0.81.0", + "metro-runtime": "0.81.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/metro-config/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=18.18" } }, "node_modules/metro-core": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz", - "integrity": "sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.81.0.tgz", + "integrity": "sha512-CVkM5YCOAFkNMvJai6KzA0RpztzfEKRX62/PFMOJ9J7K0uq/UkOFLxcgpcncMIrfy0PbfEj811b69tjULUQe1Q==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.80.12" + "metro-resolver": "0.81.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-file-map": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz", - "integrity": "sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.0.tgz", + "integrity": "sha512-zMDI5uYhQCyxbye/AuFx/pAbsz9K+vKL7h1ShUXdN2fz4VUPiyQYRsRqOoVG1DsiCgzd5B6LW0YW77NFpjDQeg==", "license": "MIT", "dependencies": { "anymatch": "^3.0.3", @@ -16235,7 +13598,7 @@ "walker": "^1.0.7" }, "engines": { - "node": ">=18" + "node": ">=18.18" }, "optionalDependencies": { "fsevents": "^2.3.2" @@ -16257,61 +13620,62 @@ "license": "MIT" }, "node_modules/metro-minify-terser": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz", - "integrity": "sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.0.tgz", + "integrity": "sha512-U2ramh3W822ZR1nfXgIk+emxsf5eZSg10GbQrT0ZizImK8IZ5BmJY+BHRIkQgHzWFpExOVxC7kWbGL1bZALswA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-resolver": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz", - "integrity": "sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.0.tgz", + "integrity": "sha512-Uu2Q+buHhm571cEwpPek8egMbdSTqmwT/5U7ZVNpK6Z2ElQBBCxd7HmFAslKXa7wgpTO2FAn6MqGeERbAtVDUA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-runtime": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz", - "integrity": "sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.0.tgz", + "integrity": "sha512-6oYB5HOt37RuGz2eV4A6yhcl+PUTwJYLDlY9vhT+aVjbUWI6MdBCf69vc4f5K5Vpt+yOkjy+2LDwLS0ykWFwYw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-source-map": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz", - "integrity": "sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.0.tgz", + "integrity": "sha512-TzsVxhH83dyxg4A4+L1nzNO12I7ps5IHLjKGZH3Hrf549eiZivkdjYiq/S5lOB+p2HiQ+Ykcwtmcja95LIC62g==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.80.12", + "metro-symbolicate": "0.81.0", "nullthrows": "^1.1.1", - "ob1": "0.80.12", + "ob1": "0.81.0", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-source-map/node_modules/source-map": { @@ -16324,14 +13688,14 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz", - "integrity": "sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.0.tgz", + "integrity": "sha512-C/1rWbNTPYp6yzID8IPuQPpVGzJ2rbWYBATxlvQ9dfK5lVNoxcwz77hjcY8ISLsRRR15hyd/zbjCNKPKeNgE1Q==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.80.12", + "metro-source-map": "0.81.0", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -16341,7 +13705,7 @@ "metro-symbolicate": "src/index.js" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-symbolicate/node_modules/source-map": { @@ -16354,44 +13718,44 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz", - "integrity": "sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.0.tgz", + "integrity": "sha512-uErLAPBvttGCrmGSCa0dNHlOTk3uJFVEVWa5WDg6tQ79PRmuYRwzUgLhVzn/9/kyr75eUX3QWXN79Jvu4txt6Q==", "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro-transform-worker": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz", - "integrity": "sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.0.tgz", + "integrity": "sha512-HrQ0twiruhKy0yA+9nK5bIe3WQXZcC66PXTvRIos61/EASLAP2DzEmW7IxN/MGsfZegN2UzqL2CG38+mOB45vg==", "license": "MIT", "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "metro": "0.80.12", - "metro-babel-transformer": "0.80.12", - "metro-cache": "0.80.12", - "metro-cache-key": "0.80.12", - "metro-minify-terser": "0.80.12", - "metro-source-map": "0.80.12", - "metro-transform-plugins": "0.80.12", + "metro": "0.81.0", + "metro-babel-transformer": "0.81.0", + "metro-cache": "0.81.0", + "metro-cache-key": "0.81.0", + "metro-minify-terser": "0.81.0", + "metro-source-map": "0.81.0", + "metro-transform-plugins": "0.81.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/metro/node_modules/ci-info": { @@ -16410,18 +13774,18 @@ } }, "node_modules/metro/node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", + "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", "license": "MIT" }, "node_modules/metro/node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", + "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", "license": "MIT", "dependencies": { - "hermes-estree": "0.23.1" + "hermes-estree": "0.24.0" } }, "node_modules/metro/node_modules/ms": { @@ -16498,15 +13862,15 @@ } }, "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=4" } }, "node_modules/mime-db": { @@ -16540,12 +13904,12 @@ } }, "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/min-indent": { @@ -16811,15 +14175,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "license": "MIT" }, - "node_modules/nocache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", - "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -16923,19 +14278,6 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "license": "MIT" }, - "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -16946,36 +14288,51 @@ } }, "node_modules/npm-package-arg": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", - "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "license": "ISC", "dependencies": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/npmlog": { @@ -17036,15 +14393,15 @@ } }, "node_modules/ob1": { - "version": "0.80.12", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz", - "integrity": "sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw==", + "version": "0.81.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.81.0.tgz", + "integrity": "sha512-6Cvrkxt1tqaRdWqTAMcVYEiO5i1xcF9y7t06nFdjFqkfPsEloCf8WwhXdwBpNUkVYSQlSGS7cDgVQR86miBfBQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }, "node_modules/object-assign": { @@ -17069,7 +14426,24 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, "engines": { "node": ">= 0.4" }, @@ -17157,9 +14531,9 @@ } }, "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "license": "MIT", "dependencies": { "ee-first": "1.1.1" @@ -17187,39 +14561,31 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^1.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "license": "MIT", "dependencies": { - "is-wsl": "^1.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "engines": { "node": ">=8" - } - }, - "node_modules/open/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "license": "MIT", - "engines": { - "node": ">=4" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optimism": { @@ -17253,47 +14619,112 @@ } }, "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "license": "MIT", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/os-tmpdir": { @@ -17305,17 +14736,6 @@ "node": ">=0.10.0" } }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "deprecated": "This package is no longer supported.", - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -17516,12 +14936,6 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, - "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "license": "MIT" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -17932,51 +15346,31 @@ } }, "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/pretty-format/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", @@ -18034,25 +15428,18 @@ "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/property-expr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", "license": "MIT" }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -18114,18 +15501,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, "engines": { "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/query-string": { @@ -18146,16 +15528,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "license": "MIT", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -18192,6 +15564,17 @@ ], "license": "MIT" }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -18201,21 +15584,6 @@ "node": ">= 0.6" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -18241,9 +15609,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -18283,6 +15651,20 @@ } } }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", @@ -18301,6 +15683,29 @@ "react": ">=17.0.0" } }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-helmet-async/node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, "node_modules/react-i18next": { "version": "15.1.1", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.1.tgz", @@ -18324,53 +15729,54 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, "node_modules/react-native": { - "version": "0.74.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.5.tgz", - "integrity": "sha512-Bgg2WvxaGODukJMTZFTZBNMKVaROHLwSb8VAGEdrlvKwfb1hHg/3aXTUICYk7dwgAnb+INbGMwnF8yeAgIUmqw==", + "version": "0.76.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.76.3.tgz", + "integrity": "sha512-0TUhgmlouRNf6yuDIIAdbQl0g1VsONgCMsLs7Et64hjj5VLMCA7np+4dMrZvGZ3wRNqzgeyT9oWJsUm49AcwSQ==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.9", - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-platform-ios": "13.6.9", - "@react-native/assets-registry": "0.74.87", - "@react-native/codegen": "0.74.87", - "@react-native/community-cli-plugin": "0.74.87", - "@react-native/gradle-plugin": "0.74.87", - "@react-native/js-polyfills": "0.74.87", - "@react-native/normalize-colors": "0.74.87", - "@react-native/virtualized-lists": "0.74.87", + "@react-native/assets-registry": "0.76.3", + "@react-native/codegen": "0.76.3", + "@react-native/community-cli-plugin": "0.76.3", + "@react-native/gradle-plugin": "0.76.3", + "@react-native/js-polyfills": "0.76.3", + "@react-native/normalize-colors": "0.76.3", + "@react-native/virtualized-lists": "0.76.3", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "^0.23.1", "base64-js": "^1.5.1", "chalk": "^4.0.0", + "commander": "^12.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "^0.80.3", - "metro-source-map": "^0.80.3", + "metro-runtime": "^0.81.0", + "metro-source-map": "^0.81.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", - "pretty-format": "^26.5.2", + "pretty-format": "^29.7.0", "promise": "^8.3.0", - "react-devtools-core": "^5.0.0", + "react-devtools-core": "^5.3.1", "react-refresh": "^0.14.0", - "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.24.0-canary-efb381bbf-20230505", + "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", - "ws": "^6.2.2", + "ws": "^6.2.3", "yargs": "^17.6.2" }, "bin": { @@ -18381,7 +15787,7 @@ }, "peerDependencies": { "@types/react": "^18.2.6", - "react": "18.2.0" + "react": "^18.2.0" }, "peerDependenciesMeta": { "@types/react": { @@ -18461,248 +15867,60 @@ "xdate": "^0.8.0" }, "optionalDependencies": { - "moment": "^2.29.4" - } - }, - "node_modules/react-native-chart-kit": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/react-native-chart-kit/-/react-native-chart-kit-6.12.0.tgz", - "integrity": "sha512-nZLGyCFzZ7zmX0KjYeeSV1HKuPhl1wOMlTAqa0JhlyW62qV/1ZPXHgT8o9s8mkFaGxdqbspOeuaa6I9jUQDgnA==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.13", - "paths-js": "^0.4.10", - "point-in-polygon": "^1.0.1" - }, - "peerDependencies": { - "react": "> 16.7.0", - "react-native": ">= 0.50.0", - "react-native-svg": "> 6.4.1" - } - }, - "node_modules/react-native-country-flag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/react-native-country-flag/-/react-native-country-flag-2.0.2.tgz", - "integrity": "sha512-5LMWxS79ZQ0Q9ntYgDYzWp794+HcQGXQmzzZNBR1AT7z5HcJHtX7rlk8RHi7RVzfp5gW6plWSZ4dKjRpu/OafQ==", - "license": "MIT" - }, - "node_modules/react-native-css-interop": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/react-native-css-interop/-/react-native-css-interop-0.1.22.tgz", - "integrity": "sha512-Mu01e+H9G+fxSWvwtgWlF5MJBJC4VszTCBXopIpeR171lbeBInHb8aHqoqRPxmJpi3xIHryzqKFOJYAdk7PBxg==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.3.7", - "lightningcss": "^1.27.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": ">=18", - "react-native": "*", - "react-native-reanimated": ">=3.6.2", - "tailwindcss": "~3" - }, - "peerDependenciesMeta": { - "react-native-safe-area-context": { - "optional": true - }, - "react-native-svg": { - "optional": true - } - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.1.tgz", - "integrity": "sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ==", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.28.1", - "lightningcss-darwin-x64": "1.28.1", - "lightningcss-freebsd-x64": "1.28.1", - "lightningcss-linux-arm-gnueabihf": "1.28.1", - "lightningcss-linux-arm64-gnu": "1.28.1", - "lightningcss-linux-arm64-musl": "1.28.1", - "lightningcss-linux-x64-gnu": "1.28.1", - "lightningcss-linux-x64-musl": "1.28.1", - "lightningcss-win32-arm64-msvc": "1.28.1", - "lightningcss-win32-x64-msvc": "1.28.1" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-arm64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.1.tgz", - "integrity": "sha512-VG3vvzM0m/rguCdm76DdobNeNJnHK+jWcdkNLFWHLh9YCotRvbRIt45JxwcHlIF8TDqWStVLTdghq5NaigVCBQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-darwin-x64": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.1.tgz", - "integrity": "sha512-O7ORdislvKfMohFl4Iq7fxKqdJOuuxArcglVI3amuFO5DJ0wfV3Gxgi1JRo49slfr7OVzJQEHLG4muTWYM5cTQ==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.1.tgz", - "integrity": "sha512-p61kXwvhUDLLzkWHjzSFfUBW/F0iy3jr3CWi3k8SKULtJEsJXTI9DqRm9EixxMSe2AMBQBt4auTYiQL4B1N51A==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.1.tgz", - "integrity": "sha512-iO+fN9hOMmzfwqcG2/BgUtMKD48H2JO/SXU44fyIwpY2veb65QF5xiRrQ9l1FwIxbGK3231KBYCtAqv+xf+NsQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-arm64-musl": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.1.tgz", - "integrity": "sha512-dnMHeXEmCUzHHZjaDpQBYuBKcN9nPC3nPFKl70bcj5Bkn5EmkcgEqm5p035LKOgvAwk1XwLpQCML6pXmCwz0NQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-gnu": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.1.tgz", - "integrity": "sha512-7vWDISaMUn+oo2TwRdf2hl/BLdPxvywv9JKEqNZB/0K7bXwV4XE9wN/C2sAp1gGuh6QBA8lpjF4JIPt3HNlCHA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "moment": "^2.29.4" } }, - "node_modules/react-native-css-interop/node_modules/lightningcss-linux-x64-musl": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.1.tgz", - "integrity": "sha512-IHCu9tVGP+x5BCpA2rF3D04DBokcBza/a8AuHQU+1AiMKubuMegPwcL7RatBgK4ztFHeYnnD5NdhwhRfYMAtNA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "node_modules/react-native-chart-kit": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/react-native-chart-kit/-/react-native-chart-kit-6.12.0.tgz", + "integrity": "sha512-nZLGyCFzZ7zmX0KjYeeSV1HKuPhl1wOMlTAqa0JhlyW62qV/1ZPXHgT8o9s8mkFaGxdqbspOeuaa6I9jUQDgnA==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.13", + "paths-js": "^0.4.10", + "point-in-polygon": "^1.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "react": "> 16.7.0", + "react-native": ">= 0.50.0", + "react-native-svg": "> 6.4.1" } }, - "node_modules/react-native-css-interop/node_modules/lightningcss-win32-x64-msvc": { - "version": "1.28.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.1.tgz", - "integrity": "sha512-ZPQtvx+uQBzrSdHH8p4H3M9Alue+x369TPZAA3b4K3d92FPhpZCuBG04+HQzspam9sVeID9mI6f3VRAs2ezaEA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], + "node_modules/react-native-country-flag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-native-country-flag/-/react-native-country-flag-2.0.2.tgz", + "integrity": "sha512-5LMWxS79ZQ0Q9ntYgDYzWp794+HcQGXQmzzZNBR1AT7z5HcJHtX7rlk8RHi7RVzfp5gW6plWSZ4dKjRpu/OafQ==", + "license": "MIT" + }, + "node_modules/react-native-css-interop": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/react-native-css-interop/-/react-native-css-interop-0.1.22.tgz", + "integrity": "sha512-Mu01e+H9G+fxSWvwtgWlF5MJBJC4VszTCBXopIpeR171lbeBInHb8aHqoqRPxmJpi3xIHryzqKFOJYAdk7PBxg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.3.7", + "lightningcss": "^1.27.0", + "semver": "^7.6.3" + }, "engines": { - "node": ">= 12.0.0" + "node": ">=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "react": ">=18", + "react-native": "*", + "react-native-reanimated": ">=3.6.2", + "tailwindcss": "~3" + }, + "peerDependenciesMeta": { + "react-native-safe-area-context": { + "optional": true + }, + "react-native-svg": { + "optional": true + } } }, "node_modules/react-native-css-interop/node_modules/semver": { @@ -18727,42 +15945,40 @@ "react-native": ">= 0.64.3" } }, - "node_modules/react-native-dropdown-picker": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz", - "integrity": "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA==", + "node_modules/react-native-drawer-layout": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/react-native-drawer-layout/-/react-native-drawer-layout-4.0.2.tgz", + "integrity": "sha512-VkDpOquZQ+R2JkC9dRIO0NZrJSqRl3h/ryG+S23m3G2EenXVAXho/JuAhuM1LgO9sQuiu0hmgnOfa48ghufsfg==", "license": "MIT", + "dependencies": { + "use-latest-callback": "^0.2.1" + }, "peerDependencies": { - "react": "*", - "react-native": "*" + "react": ">= 18.2.0", + "react-native": "*", + "react-native-gesture-handler": ">= 2.0.0", + "react-native-reanimated": ">= 2.0.0" } }, - "node_modules/react-native-element-dropdown": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/react-native-element-dropdown/-/react-native-element-dropdown-2.12.2.tgz", - "integrity": "sha512-Tf8hfRuniYEXo+LGoVgIMoItKWuPLX6jbqlwAFgMbBhmWGTuV+g1OVOAx/ny16kgnwp+NhgJoWpxhVvr7HSmXA==", + "node_modules/react-native-dropdown-picker": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz", + "integrity": "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA==", "license": "MIT", - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">= 16.0.0" - }, "peerDependencies": { "react": "*", "react-native": "*" } }, "node_modules/react-native-gesture-handler": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz", - "integrity": "sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==", + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.20.2.tgz", + "integrity": "sha512-HqzFpFczV4qCnwKlvSAvpzEXisL+Z9fsR08YV5LfJDkzuArMhBu2sOoSPUF/K62PCoAb+ObGlTC83TKHfUd0vg==", "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4", - "lodash": "^4.17.21", "prop-types": "^15.7.2" }, "peerDependencies": { @@ -18790,10 +16006,20 @@ "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", "license": "MIT" }, + "node_modules/react-native-is-edge-to-edge": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.1.6.tgz", + "integrity": "sha512-1pHnFTlBahins6UAajXUqeCOHew9l9C2C8tErnpGC3IyLJzvxD+TpYAixnCbrVS52f7+NvMttbiSI290XfwN0w==", + "license": "MIT", + "peerDependencies": { + "react": ">=18.2.0", + "react-native": ">=0.73.0" + } + }, "node_modules/react-native-pager-view": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.3.0.tgz", - "integrity": "sha512-ufJOoVa9pFL1J/yb4hpsCqp8n1qTlcF5VvwqvCacHX//D7hSeRscsiIXg1u1pXNWwllvACb+mqxec/3Uj2mxrA==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.5.1.tgz", + "integrity": "sha512-YdX7bP+rPYvATMU7HzlMq9JaG3ui/+cVRbFZFGW+QshDULANFg9ECR1BA7H7JTIcO/ZgWCwF+1aVmYG5yBA9Og==", "license": "MIT", "peerDependencies": { "react": "*", @@ -18811,16 +16037,19 @@ } }, "node_modules/react-native-reanimated": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz", - "integrity": "sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==", + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.16.2.tgz", + "integrity": "sha512-Jk8y+iOLcK3J8YK3Qj/U+zclwfetgM1fFhlYaxFrJ5TPvuwdRG5YY1pvO91FcZ3C1+0meGHR6BZGl9d/Z0xh3Q==", "license": "MIT", "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-class-properties": "^7.0.0-0", + "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "invariant": "^2.2.4" @@ -18832,9 +16061,9 @@ } }, "node_modules/react-native-safe-area-context": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.5.tgz", - "integrity": "sha512-Wyb0Nqw2XJ6oZxW/cK8k5q7/UAhg/wbEG6UVf89rQqecDZTDA5ic//P9J6VvJRVZerzGmxWQpVuM7f+PRYUM4g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.12.0.tgz", + "integrity": "sha512-ukk5PxcF4p3yu6qMZcmeiZgowhb5AsKRnil54YFUUAXVIS7PJcMHGGC+q44fCiBg44/1AJk5njGMez1m9H0BVQ==", "license": "MIT", "peerDependencies": { "react": "*", @@ -18842,9 +16071,9 @@ } }, "node_modules/react-native-screens": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.31.1.tgz", - "integrity": "sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.1.0.tgz", + "integrity": "sha512-tCBwe7fRMpoi/nIgZxE86N8b2SH8d5PlfGaQO8lgqlXqIyvwqm3u1HJCaA0tsacPyzhW7vVtRfQyq9e1j0S2gA==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", @@ -18856,13 +16085,14 @@ } }, "node_modules/react-native-svg": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.2.0.tgz", - "integrity": "sha512-R0E6IhcJfVLsL0lRmnUSm72QO+mTqcAOM5Jb8FVGxJqX3NfJMlMP0YyvcajZiaRR8CqQUpEoqrY25eyZb006kw==", + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.8.0.tgz", + "integrity": "sha512-KHJzKpgOjwj1qeZzsBjxNdoIgv2zNCO9fVcoq2TEhTRsVV5DGTZ9JzUZwybd7q4giT/H3RdtqC3u44dWdO0Ffw==", "license": "MIT", "dependencies": { "css-select": "^5.1.0", - "css-tree": "^1.1.3" + "css-tree": "^1.1.3", + "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", @@ -18912,14 +16142,11 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/react-native-vector-icons/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/react-native-vector-icons/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/react-native-vector-icons/node_modules/string-width": { "version": "4.2.3", @@ -18932,340 +16159,107 @@ "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/react-native-vector-icons/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-native-vector-icons/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native-vector-icons/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.9.tgz", - "integrity": "sha512-hFJL4cgLPxncJJd/epQ4dHnMg5Jy/7Q56jFvA3MHViuKpzzfTCJCB+pGY54maZbtym53UJON9WTGpM3S81UfjQ==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-clean": "13.6.9", - "@react-native-community/cli-config": "13.6.9", - "@react-native-community/cli-debugger-ui": "13.6.9", - "@react-native-community/cli-doctor": "13.6.9", - "@react-native-community/cli-hermes": "13.6.9", - "@react-native-community/cli-server-api": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "@react-native-community/cli-types": "13.6.9", - "chalk": "^4.1.2", - "commander": "^9.4.1", - "deepmerge": "^4.3.0", - "execa": "^5.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "graceful-fs": "^4.1.3", - "prompts": "^2.4.2", - "semver": "^7.5.2" - }, - "bin": { - "rnc-cli": "build/bin.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-clean": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.9.tgz", - "integrity": "sha512-7Dj5+4p9JggxuVNOjPbduZBAP1SUgNhLKVw5noBUzT/3ZpUZkDM+RCSwyoyg8xKWoE4OrdUAXwAFlMcFDPKykA==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-config": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.9.tgz", - "integrity": "sha512-rFfVBcNojcMm+KKHE/xqpqXg8HoKl4EC7bFHUrahMJ+y/tZll55+oX/PGG37rzB8QzP2UbMQ19DYQKC1G7kXeg==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "cosmiconfig": "^5.1.0", - "deepmerge": "^4.3.0", - "fast-glob": "^3.3.2", - "joi": "^17.2.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-debugger-ui": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz", - "integrity": "sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw==", - "license": "MIT", - "dependencies": { - "serve-static": "^1.13.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-doctor": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.9.tgz", - "integrity": "sha512-5quFaLdWFQB+677GXh5dGU9I5eg2z6Vg4jOX9vKnc9IffwyIFAyJfCZHrxLSRPDGNXD7biDQUdoezXYGwb6P/A==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-config": "13.6.9", - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/cli-platform-apple": "13.6.9", - "@react-native-community/cli-platform-ios": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "deepmerge": "^4.3.0", - "envinfo": "^7.10.0", - "execa": "^5.0.0", - "hermes-profile-transformer": "^0.0.6", - "node-stream-zip": "^1.9.1", - "ora": "^5.4.1", - "semver": "^7.5.2", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yaml": "^2.2.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-platform-android": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz", - "integrity": "sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.2.4", - "logkitty": "^0.7.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-platform-apple": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.9.tgz", - "integrity": "sha512-KoeIHfhxMhKXZPXmhQdl6EE+jGKWwoO9jUVWgBvibpVmsNjo7woaG/tfJMEWfWF3najX1EkQAoJWpCDBMYWtlA==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-tools": "13.6.9", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-glob": "^3.3.2", - "fast-xml-parser": "^4.0.12", - "ora": "^5.4.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-platform-ios": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.9.tgz", - "integrity": "sha512-CiUcHlGs8vE0CAB4oi1f+dzniqfGuhWPNrDvae2nm8dewlahTBwIcK5CawyGezjcJoeQhjBflh9vloska+nlnw==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-platform-apple": "13.6.9" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-server-api": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz", - "integrity": "sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-debugger-ui": "13.6.9", - "@react-native-community/cli-tools": "13.6.9", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^6.2.2" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-tools": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz", - "integrity": "sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ==", - "license": "MIT", - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli-types": { - "version": "13.6.9", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.9.tgz", - "integrity": "sha512-RLxDppvRxXfs3hxceW/mShi+6o5yS+kFPnPqZTaMKKR5aSg7LwDpLQW4K2D22irEG8e6RKDkZUeH9aL3vO2O0w==", - "license": "MIT", - "dependencies": { - "joi": "^17.2.1" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-native/node_modules/@react-native/normalize-colors": { - "version": "0.74.87", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.87.tgz", - "integrity": "sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA==", - "license": "MIT" - }, - "node_modules/react-native/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/react-native/node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/react-native/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "node_modules/react-native-vector-icons/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/react-native/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/react-native-vector-icons/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" } }, - "node_modules/react-native/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/react-native-vector-icons/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/react-native/node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz", + "integrity": "sha512-uNLD0tk2tLUjGFdmCk+u/3FEw2o+BAwW4g+z2QVlxJrzZYOOPADroEcNtTPt5lNiScctaUmnsTkVEnOwZUOLhA==", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "hermes-parser": "0.23.1" } }, - "node_modules/react-native/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/react-native/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/react-native/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/react-native/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/react-native/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { - "p-limit": "^2.2.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-native/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "license": "MIT", + "node_modules/react-native/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=4" + "node": "*" } }, "node_modules/react-native/node_modules/promise": { @@ -19283,13 +16277,13 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, - "node_modules/react-native/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "node_modules/react-native/node_modules/scheduler": { + "version": "0.24.0-canary-efb381bbf-20230505", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", + "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "loose-envify": "^1.1.0" } }, "node_modules/react-native/node_modules/semver": { @@ -19304,6 +16298,15 @@ "node": ">=10" } }, + "node_modules/react-native/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -19317,6 +16320,7 @@ "version": "16.15.0", "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, "license": "MIT", "dependencies": { "object-assign": "^4.1.1", @@ -19327,35 +16331,18 @@ } }, "node_modules/react-test-renderer": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz", - "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", + "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", "dev": true, "license": "MIT", "dependencies": { - "react-is": "^18.2.0", + "react-is": "^18.3.1", "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-test-renderer/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-test-renderer/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" + "react": "^18.3.1" } }, "node_modules/read-cache": { @@ -19368,19 +16355,26 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -19465,18 +16459,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" }, "engines": { "node": ">= 0.4" @@ -19514,7 +16509,6 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -19523,6 +16517,7 @@ "version": "1.5.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -19653,16 +16648,6 @@ "node": ">= 0.12" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, "node_modules/request/node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -19706,12 +16691,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, "node_modules/requireg": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", @@ -19806,26 +16785,23 @@ } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "license": "MIT", "dependencies": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/reusify": { "version": "1.0.4", @@ -19853,6 +16829,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rtl-detect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", @@ -19895,6 +16914,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -19909,6 +16929,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -19933,6 +16960,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.6", @@ -19950,6 +16978,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, "license": "MIT" }, "node_modules/sax": { @@ -19972,9 +17001,9 @@ } }, "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -20056,15 +17085,15 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", + "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", @@ -20095,24 +17124,33 @@ "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "ee-first": "1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, "node_modules/serialize-error": { @@ -20124,6 +17162,17 @@ "node": ">=0.10.0" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -20154,16 +17203,25 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", - "bin": { - "mime": "cli.js" + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.8" } }, "node_modules/serve-static/node_modules/send": { @@ -20199,6 +17257,21 @@ "node": ">= 0.8" } }, + "node_modules/serve-static/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", + "license": "MIT" + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -20232,6 +17305,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -20255,19 +17329,6 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/sha1-file": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/sha1-file/-/sha1-file-1.0.4.tgz", @@ -20327,6 +17388,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -20342,10 +17404,16 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-plist": { "version": "1.3.1", @@ -20409,47 +17477,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", @@ -20653,12 +17680,12 @@ } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, "node_modules/stream-buffers": { @@ -20686,14 +17713,20 @@ } }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -20722,17 +17755,20 @@ } }, "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "license": "MIT", "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -20750,14 +17786,11 @@ "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", @@ -20771,39 +17804,6 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", @@ -20846,6 +17846,7 @@ "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -20864,6 +17865,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -20878,6 +17880,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -20892,15 +17895,18 @@ } }, "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { @@ -20917,12 +17923,15 @@ } }, "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/strip-bom": { @@ -20979,12 +17988,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "license": "MIT" - }, "node_modules/structured-headers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", @@ -20992,14 +17995,14 @@ "license": "MIT" }, "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -21007,68 +18010,25 @@ }, "bin": { "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", "engines": { - "node": "*" + "node": ">= 6" } }, "node_modules/sudo-prompt": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", - "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", "license": "MIT" }, "node_modules/supports-color": { @@ -21142,34 +18102,33 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", - "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.21.6", "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -21196,6 +18155,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -21285,6 +18255,49 @@ "node": ">=8" } }, + "node_modules/temp/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/temp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/temp/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -21317,6 +18330,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tempy/node_modules/type-fest": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", @@ -21363,6 +18388,95 @@ "node": ">=10" } }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -21373,7 +18487,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", @@ -21388,18 +18501,37 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -21408,12 +18540,6 @@ "node": "*" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -21457,42 +18583,6 @@ "xtend": "~4.0.1" } }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/tiny-case": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", @@ -21589,36 +18679,10 @@ "node": ">=12" } }, - "node_modules/traverse": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.10.tgz", - "integrity": "sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==", - "license": "MIT", - "dependencies": { - "gopd": "^1.0.1", - "typedarray.prototype.slice": "^1.0.3", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.1.tgz", + "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==", "dev": true, "license": "MIT", "engines": { @@ -21718,23 +18782,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -21749,6 +18801,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -21768,6 +18821,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -21776,27 +18830,7 @@ "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -21805,18 +18839,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", - "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-errors": "^1.3.0", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-offset": "^1.0.2" + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -21840,9 +18875,9 @@ } }, "node_modules/ua-parser-js": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", - "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", + "version": "0.7.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", + "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", "funding": [ { "type": "opencollective", @@ -21869,6 +18904,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -22029,12 +19065,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==", - "license": "MIT" - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -22055,6 +19085,15 @@ "react": ">=16.8" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -22084,13 +19123,9 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", "bin": { "uuid": "dist/bin/uuid" @@ -22111,27 +19146,13 @@ "node": ">=10.12.0" } }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "license": "MIT", "engines": { - "node": ">=12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vary": { @@ -22226,6 +19247,21 @@ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", "license": "MIT" }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -22266,30 +19302,122 @@ "node": ">=12" } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "iconv-lite": "0.6.3" + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" }, "engines": { - "node": ">=12" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" } }, "node_modules/whatwg-fetch": { @@ -22302,6 +19430,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -22363,6 +19492,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", @@ -22376,16 +19506,18 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "dev": true, "license": "MIT", "dependencies": { + "call-bind": "^1.0.7", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.1.4", "is-weakref": "^1.0.2", @@ -22401,10 +19533,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, "license": "MIT", "dependencies": { "is-map": "^2.0.3", @@ -22419,12 +19559,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "license": "ISC" - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -22453,10 +19587,42 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wonka": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", - "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.4.tgz", + "integrity": "sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==", "license": "MIT" }, "node_modules/word-wrap": { @@ -22504,14 +19670,11 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", @@ -22539,14 +19702,11 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", @@ -22591,13 +19751,31 @@ "signal-exit": "^3.0.2" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, "node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/xcode": { @@ -22676,28 +19854,6 @@ "dev": true, "license": "MIT" }, - "node_modules/xss": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", - "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", - "license": "MIT", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -22761,14 +19917,11 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", @@ -22847,27 +20000,6 @@ "zen-observable": "0.8.15" } }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-2.1.0.tgz", - "integrity": "sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.18.0" - } - }, "node_modules/zone.js": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", diff --git a/package.json b/package.json index 0b4a642..78ebb15 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", - "start:wsl": "REACT_NATIVE_PACKAGER_HOSTNAME=$(netsh.exe interface ip show address 'Wi-Fi' | grep 'IP Address' | sed -r 's/^.*IP Address:\\W*//') expo start", + "start:wsl": "REACT_NATIVE_PACKAGER_HOSTNAME=$(netsh.exe interface ip show address 'Ethernet' | grep 'IP Address' | sed -r 's/^.*IP Address:\\W*//') expo start", "test": "jest", "test:coverage": "jest --coverage", "lint": "eslint .", @@ -30,72 +30,67 @@ }, "dependencies": { "@apollo/client": "^3.11.8", - "@babel/core": "^7.20.0", - "@dev-plugins/apollo-client": "^0.0.6", "@expo-google-fonts/inter": "^0.2.3", "@expo/vector-icons": "^14.0.2", "@react-native-async-storage/async-storage": "1.23.1", - "@react-native-picker/picker": "2.7.5", - "@react-navigation/drawer": "^6.7.2", - "@react-navigation/native": "^6.1.18", + "@react-native-picker/picker": "2.9.0", + "@react-navigation/drawer": "^7.0.0", + "@react-navigation/native": "^7.0.0", "@types/react-native-calendars": "^1.1264.7", - "apollo-server": "^3.13.0", "axios": "^1.7.7", "date-fns": "^4.1.0", "dayjs": "^1.11.13", - "expo": "~51.0.37", - "expo-blur": "~13.0.2", - "expo-checkbox": "~3.0.0", - "expo-clipboard": "~6.0.3", - "expo-document-picker": "~12.0.2", - "expo-font": "~12.0.10", - "expo-image": "~1.13.0", - "expo-linking": "~6.3.1", - "expo-localization": "~15.0.3", - "expo-router": "~3.5.24", - "expo-splash-screen": "~0.27.7", - "expo-status-bar": "~1.12.1", - "expo-system-ui": "~3.0.7", + "expo": "~52.0.9", + "expo-blur": "~14.0.1", + "expo-checkbox": "~4.0.0", + "expo-constants": "~17.0.3", + "expo-device": "~7.0.1", + "expo-document-picker": "~13.0.1", + "expo-font": "~13.0.1", + "expo-image": "~2.0.1", + "expo-image-picker": "~16.0.2", + "expo-linking": "~7.0.3", + "expo-localization": "~16.0.0", + "expo-notifications": "~0.29.8", + "expo-router": "~4.0.7", + "expo-splash-screen": "~0.29.12", + "expo-status-bar": "~2.0.0", + "expo-system-ui": "~4.0.3", "formik": "^2.4.6", "graphql": "^15.9.0", "graphql-ws": "^5.16.0", "i18next": "^23.16.0", "jwt-decode": "^4.0.0", - "nativewind": "^4.1.10", - "react": "18.2.0", + "nativewind": "^4.1.23", + "react": "18.3.1", "react-i18next": "^15.0.3", - "react-native": "0.74.5", + "react-native": "0.76.3", "react-native-asset": "^2.1.1", "react-native-calendars": "^1.1307.0", "react-native-chart-kit": "^6.12.0", "react-native-country-flag": "^2.0.2", "react-native-date-picker": "^5.0.7", "react-native-dropdown-picker": "^5.4.6", - "react-native-element-dropdown": "^2.12.2", - "react-native-gesture-handler": "~2.16.1", - "react-native-pager-view": "6.3.0", + "react-native-gesture-handler": "~2.20.2", + "react-native-pager-view": "6.5.1", "react-native-popover-view": "^5.1.9", - "react-native-reanimated": "~3.10.1", - "react-native-safe-area-context": "4.10.5", - "react-native-screens": "3.31.1", - "react-native-svg": "15.2.0", + "react-native-reanimated": "~3.16.1", + "react-native-safe-area-context": "4.12.0", + "react-native-screens": "~4.1.0", + "react-native-svg": "15.8.0", "react-native-toast-notifications": "^3.4.0", "react-native-vector-icons": "^10.2.0", - "react-test-renderer": "^18.2.0", "vector-icons": "^0.1.0", - "yup": "^1.4.0", - "expo-image-picker": "~15.0.7" + "yup": "^1.4.0" }, "devDependencies": { - "@babel/core": "^7.25.2", - "@react-native-community/cli": "latest", - "@testing-library/jest-native": "^5.4.3", - "@testing-library/react-native": "^12.7.2", - "@types/jest": "^29.5.13", + "@babel/core": "^7.20.0", + "@dev-plugins/apollo-client": "^0.0.6", + "@testing-library/react-native": "^12.8.1", + "@types/jest": "^29.5.14", "@types/jwt-decode": "^3.1.0", - "@types/react": "~18.2.79", + "@types/react": "~18.3.12", "@types/react-native-vector-icons": "^6.4.18", - "@types/react-test-renderer": "^18.3.0", "@typescript-eslint/eslint-plugin": "^8.6.0", "@typescript-eslint/parser": "^8.6.0", "coveralls": "^3.1.1", @@ -104,10 +99,9 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.35.1", "jest": "~29.7.0", - "jest-expo": "~51.0.4", + "jest-expo": "~52.0.2", "prettier": "^3.3.3", - "react-test-renderer": "18.2.0", - "tailwindcss": "3.3.2", + "tailwindcss": "^3.3.2", "typescript": "~5.3.3" }, "private": true diff --git a/providers/notifications.tsx b/providers/notifications.tsx new file mode 100644 index 0000000..eab089d --- /dev/null +++ b/providers/notifications.tsx @@ -0,0 +1,188 @@ +import { ProfileType } from '@/app/dashboard/_layout'; +import { ADD_PUSH_NOTIFICATION_TOKEN } from '@/graphql/queries/user'; +import { useMutation } from '@apollo/client'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +import Constants from 'expo-constants'; +import * as Device from 'expo-device'; +import * as Notifications from 'expo-notifications'; +import { Href, useRouter } from 'expo-router'; +import React, { useEffect, useRef, useState } from 'react'; +import { Linking, Platform } from 'react-native'; +import { useToast } from 'react-native-toast-notifications'; + +type NotificationData = { + redirectURI?: string; + criteria: { + type: 'PUBLIC' | 'PERSONAL' | 'TEAM' | 'ORGANIZATION'; + value: string; + }; +}; + +export type NotificationContextType = { + state: { + token: string | null; + profile: ProfileType | null; + }; + actions: { + setToken: (token: string) => void; + setProfile: (profile: ProfileType) => void; + reset: () => void; + }; +}; + +export const NotificationContext = React.createContext(null); + +export default function NotificationsProvider({ children }: { children: React.ReactNode }) { + const toast = useToast(); + const router = useRouter(); + const responseListener = useRef(); + const [pushToken, setPushToken] = useState(null); + const [userProfile, setUserProfile] = useState(null); + const [userToken, setUserToken] = useState(null); + const [addPushToken] = useMutation(ADD_PUSH_NOTIFICATION_TOKEN); + + Notifications.setNotificationHandler({ + handleNotification: async (notification: Notifications.Notification) => { + const SHOWN = { shouldShowAlert: true, shouldPlaySound: true, shouldSetBadge: true }; + const HIDDEN = { shouldShowAlert: false, shouldPlaySound: false, shouldSetBadge: false }; + const { criteria } = notification.request.content.data as NotificationData; + + if (criteria.type !== 'PUBLIC') { + const savedProfile = await AsyncStorage.getItem('userProfile'); + setUserProfile(savedProfile ? JSON.parse(savedProfile) : null); + } + + switch (criteria.type) { + case 'PUBLIC': + return SHOWN; + case 'PERSONAL': + return userProfile?.user?.id === criteria.value ? SHOWN : HIDDEN; + case 'TEAM': + return userProfile?.user?.team?.id === criteria.value ? SHOWN : HIDDEN; + case 'ORGANIZATION': + return userProfile?.user?.organizations?.includes(criteria.value) ? SHOWN : HIDDEN; + default: + return HIDDEN; + } + }, + }); + + async function registerForPushNotificationsAsync() { + if (Platform.OS === 'android') { + Notifications.setNotificationChannelAsync('default', { + name: 'default', + importance: Notifications.AndroidImportance.DEFAULT, + vibrationPattern: [0, 250, 250, 250], + lightColor: '#FF231F7C', + }); + } + + if (Device.isDevice) { + const { status: existingStatus } = await Notifications.getPermissionsAsync(); + let finalStatus = existingStatus; + + if (existingStatus !== 'granted') { + const { status } = await Notifications.requestPermissionsAsync(); + finalStatus = status; + } + + if (finalStatus !== 'granted') { + toast.show('Notification permission not granted.', { type: 'warning' }); + return; + } + + const projectId = + Constants?.expoConfig?.extra?.eas?.projectId ?? Constants?.easConfig?.projectId; + + if (!projectId) { + // Handle when projectId is not defined + toast.show('Notification not enabled for this project.', { type: 'warning' }); + } + + try { + const token = await Notifications.getExpoPushTokenAsync({ projectId }); + setPushToken(token.data); + } catch (e: unknown) { + toast.show('Failed to get push token.', { type: 'danger' }); + } + } else { + // Handle when notifications are disabled on emulators + toast.show('Notifications are disabled on this device.', { type: 'warning' }); + } + } + + async function handlePushTokenRegistration() { + if (userProfile) { + if ( + pushToken !== null && + userToken !== null && + userProfile?.user.pushNotificationTokens !== null && + !userProfile?.user.pushNotificationTokens.includes(pushToken) + ) { + const { data, errors } = await addPushToken({ + context: { + headers: { + Authorization: `Bearer ${userToken}`, + }, + }, + variables: { + pushToken: pushToken, + }, + }); + + if (errors) { + toast.show(errors[0].message, { type: 'danger' }); + } + } + } + } + + useEffect(() => { + handlePushTokenRegistration(); + }, [userProfile, pushToken]); + + useEffect(() => { + registerForPushNotificationsAsync(); + // Handle when a notification is opened by tapping on it + responseListener.current = Notifications.addNotificationResponseReceivedListener((response) => { + const { redirectURI } = response.notification.request.content.data as NotificationData; + + if (redirectURI && redirectURI.startsWith('http')) { + Linking.openURL(redirectURI); + } + + if (redirectURI && redirectURI.startsWith('/')) { + router.replace(redirectURI as Href); + } + }); + + return () => { + responseListener.current && + Notifications.removeNotificationSubscription(responseListener.current); + }; + }, []); + + const reset = () => { + setUserProfile(null); + setUserToken(null); + setPushToken(null); + }; + + return ( + + {children} + + ); +} diff --git a/tailwind.config.js b/tailwind.config.js index 6ae3b35..87d3d3c 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -97,7 +97,7 @@ module.exports = { 100: 'var(--color-neutral-100)', 50: 'var(--color-neutral-50)', }, - violet : '#8667F2', + violet: '#8667F2', }, fontFamily: { 'Inter-Regular': ['Inter_400Regular'], diff --git a/tsconfig.json b/tsconfig.json index 9a9c228..a92dab4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,4 +11,4 @@ }, "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts", "nativewind-env.d.ts"], "types": ["nativewind/types"] -} \ No newline at end of file +}