From 8bebdf8962db7884924cbbfb31c8c919423b3e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Mon, 23 Jun 2025 20:00:40 +0100 Subject: [PATCH 01/31] screentime chart e arc progress fix --- src/components/ScreenTimeChart.js | 64 ++++++++++++++--- src/pages/HomePage.js | 12 ++-- src/pages/ReportPage.js | 113 +++++++++++++++--------------- src/redux/screentimeSlice.js | 56 +++++++++++++++ src/redux/store.js | 5 +- 5 files changed, 175 insertions(+), 75 deletions(-) create mode 100644 src/redux/screentimeSlice.js diff --git a/src/components/ScreenTimeChart.js b/src/components/ScreenTimeChart.js index 348c726..a14a012 100644 --- a/src/components/ScreenTimeChart.js +++ b/src/components/ScreenTimeChart.js @@ -1,20 +1,64 @@ -import React from 'react'; -import { Dimensions } from 'react-native'; +import React, { useEffect } from 'react'; +import { Dimensions, View, ActivityIndicator, Text } from 'react-native'; import { LineChart } from 'react-native-chart-kit'; +import { useSelector, useDispatch } from 'react-redux'; +import { fetchLast7DaysScreenTime } from '../redux/screentimeSlice'; export default function ScreenTimeChart() { + const dispatch = useDispatch(); + const { last7Days, loading, error } = useSelector( + (state) => state.screentime + ); + + useEffect(() => { + dispatch(fetchLast7DaysScreenTime()); + }, [dispatch]); + + if (loading) { + return ( + + + Carregando dados... + + ); + } + + if (error) { + return ( + + Erro: {error} + + ); + } + + if (!last7Days || last7Days.length <= 1) { + return ( + + + Dentro de 2 dias, você verá o gráfico de comparação de screentime. + + + ); + } + + // Preparar dados para o gráfico + const chartData = { + labels: last7Days.map((item) => item.date), + datasets: [ + { + data: last7Days.map((item) => { + const minutes = item.total_minutes || 0; + return Math.round(minutes / 60); // Convertendo minutos para horas + }), + }, + ], + }; + return ( <> {/* Line Chart */} - + - O seu relatório está quase terminado! + {perguntas.length * 5 <= 50 + ? 'Responda a mais algumas perguntas para ter uma pontuação mais precisa.' + : 'O seu relatório está quase terminado.'} - + {/* - + */} )} diff --git a/src/pages/ReportPage.js b/src/pages/ReportPage.js index 9850334..11cff6e 100644 --- a/src/pages/ReportPage.js +++ b/src/pages/ReportPage.js @@ -25,67 +25,62 @@ import { fetchUserAnswers } from '../redux/userAnswersSlice'; import { NativeModules } from 'react-native'; export default function ReportPage() { - //importar os módulos nativos de screen time e work manager const { ScreenTimeModule } = NativeModules; //Variaveis para o tempo de ecrã e uso de apps - const [screenTime, setScreenTime] = useState(null); - const [appUsage, setAppUsage] = useState([]); - - //formata o tempo de screen time - function formatTime(minutes) { - if (minutes >= 60) { - const hours = Math.floor(minutes / 60); - const remainingMinutes = minutes % 60; - return remainingMinutes > 0 - ? `${hours}h ${remainingMinutes}min` - : `${hours}h`; - } - return `${minutes}min`; + const [screenTime, setScreenTime] = useState(null); + const [appUsage, setAppUsage] = useState([]); + + //formata o tempo de screen time + function formatTime(minutes) { + if (minutes >= 60) { + const hours = Math.floor(minutes / 60); + const remainingMinutes = minutes % 60; + return remainingMinutes > 0 + ? `${hours}h ${remainingMinutes}min` + : `${hours}h`; } - - - //função de ir buscar o tempo de ecrã - const fetchScreenTime = async () => { - try { - const response = await ScreenTimeModule.getScreenTime(); - //console.log('Screen Time Data:', response); - setScreenTime(Math.floor(response.screenTimeMinutes / 60)); - setAppUsage(response.appScreenTime || {}); - let appUsageData = []; - Object.entries(response.appScreenTime).forEach(([app, time]) => { - if (time > 0) { - let appName; - if (app.split('.').pop() === 'android') { - let splitedAppNames = app.split('.'); - appName = splitedAppNames[splitedAppNames.length - 2]; - } else { - appName = app.split('.').pop(); - } - appUsageData.push({ - id: app, - appName: appName, - time: time, - }); - } + return `${minutes}min`; + } + + //função de ir buscar o tempo de ecrã + const fetchScreenTime = async () => { + try { + const response = await ScreenTimeModule.getScreenTime(); + //console.log('Screen Time Data:', response); + setScreenTime(Math.floor(response.screenTimeMinutes / 60)); + setAppUsage(response.appScreenTime || {}); + let appUsageData = []; + Object.entries(response.appScreenTime).forEach(([app, time]) => { + if (time > 0) { + let appName; + if (app.split('.').pop() === 'android') { + let splitedAppNames = app.split('.'); + appName = splitedAppNames[splitedAppNames.length - 2]; + } else { + appName = app.split('.').pop(); + } + appUsageData.push({ + id: app, + appName: appName, + time: time, }); - - setAppUsage(appUsageData || []); - //console.log(screenTime); - - } catch (error) { - console.error('Error fetching screen time:', error); - // Narrow the type of 'error' - const errorMessage = - error instanceof Error - ? error.message - : 'Could not fetch screen time.'; - - Alert.alert('Error', errorMessage); } - }; - + }); + + setAppUsage(appUsageData || []); + //console.log(screenTime); + } catch (error) { + console.error('Error fetching screen time:', error); + // Narrow the type of 'error' + const errorMessage = + error instanceof Error ? error.message : 'Could not fetch screen time.'; + + Alert.alert('Error', errorMessage); + } + }; + useEffect(() => { fetchScreenTime(); }, []); @@ -373,21 +368,23 @@ export default function ReportPage() { accessibilityLabel="Arco de progresso" /> - O seu relatório está quase terminado. + {perguntas.length * 5 <= 50 + ? 'Responda a mais algumas perguntas para ter uma pontuação mais precisa.' + : 'O seu relatório está quase terminado.'} O LumiScore é apenas uma previsão! - - + */} diff --git a/src/redux/screentimeSlice.js b/src/redux/screentimeSlice.js new file mode 100644 index 0000000..34afbd1 --- /dev/null +++ b/src/redux/screentimeSlice.js @@ -0,0 +1,56 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +// Thunk para buscar screentime dos últimos 7 dias +export const fetchLast7DaysScreenTime = createAsyncThunk( + 'screentime/fetchLast7DaysScreenTime', + async (_, thunkAPI) => { + try { + const userString = await AsyncStorage.getItem('user'); + const user = JSON.parse(userString); + const userId = user.id; + + const response = await fetch(`${API_URL}/screentime/last7days/${userId}`); + + if (!response.ok) { + const err = await response.json(); + throw new Error( + err.detail || 'Erro ao buscar screentime dos últimos 7 dias' + ); + } + + return await response.json(); + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const screentimeSlice = createSlice({ + name: 'screentime', + initialState: { + last7Days: [], + loading: false, + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchLast7DaysScreenTime.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(fetchLast7DaysScreenTime.fulfilled, (state, action) => { + state.loading = false; + state.last7Days = action.payload; + }) + .addCase(fetchLast7DaysScreenTime.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + }); + }, +}); + +export default screentimeSlice.reducer; diff --git a/src/redux/store.js b/src/redux/store.js index 976f7e7..9b3c6c0 100644 --- a/src/redux/store.js +++ b/src/redux/store.js @@ -11,8 +11,8 @@ import isMonitoringReducer from './isMonitoringSlice'; import firebaseTokenReducer from './firebaseTokenSlice'; import answerQuestionReducer from './answerQuestionSlice'; import userReducer from './userSlice'; -` -`; +import screentimeReducer from './screentimeSlice'; + export const store = configureStore({ reducer: { auth: authReducer, @@ -27,5 +27,6 @@ export const store = configureStore({ firebaseToken: firebaseTokenReducer, answerQuestion: answerQuestionReducer, user: userReducer, + screentime: screentimeReducer, }, }); From 542f1c099164aeeab1317b9ad02bc5e6491df84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Mon, 23 Jun 2025 20:40:23 +0100 Subject: [PATCH 02/31] edit profile feito --- src/pages/EditProfile.js | 222 +++++++++++++++++++----- src/redux/store.js | 2 + src/redux/updateUserCredentialsSlice.js | 87 ++++++++++ src/redux/userSlice.js | 10 +- 4 files changed, 265 insertions(+), 56 deletions(-) create mode 100644 src/redux/updateUserCredentialsSlice.js diff --git a/src/pages/EditProfile.js b/src/pages/EditProfile.js index 2e0a7ed..a5bf492 100644 --- a/src/pages/EditProfile.js +++ b/src/pages/EditProfile.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { View, Text, @@ -6,40 +6,145 @@ import { TouchableOpacity, ScrollView, Image, + Alert, } from 'react-native'; import BackgroundGradient from '../components/BackgroundGradient'; import { Ionicons } from '@expo/vector-icons'; -import * as ImagePicker from 'expo-image-picker'; +import { useDispatch, useSelector } from 'react-redux'; +import { + updateUserCredentials, + resetCredentialsState, +} from '../redux/updateUserCredentialsSlice'; +import { loadUserFromStorage } from '../redux/userSlice'; export default function EditProfile({ navigation }) { - const [username, setUname] = useState('Rodrigo'); - const [mail, setMail] = useState('rodrigograca@gmail.com'); + const dispatch = useDispatch(); + const { loading, error, success, updatedFields } = useSelector( + (state) => state.updateUserCredentials + ); + const user = useSelector((state) => state.user.data); + + // Estados inicializados de forma mais segura + const [username, setUsername] = useState(''); + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); const [profileImage, setProfileImage] = useState( require('../../assets/user.png') ); - const [newImage, setNewImage] = useState(null); - - const pickImage = async () => { - const result = await ImagePicker.launchImageLibraryAsync({ - mediaTypes: ['images'], - allowsEditing: true, - aspect: [1, 1], - quality: 1, - }); - - if (!result.canceled) { - setNewImage(result.assets[0].uri); + + // Carrega dados do usuário quando disponível + useEffect(() => { + if (user) { + setUsername(user.username || ''); + setEmail(user.email || ''); + } + }, [user]); + + useEffect(() => { + dispatch(loadUserFromStorage()); + }, [dispatch]); + + useEffect(() => { + if (success) { + Alert.alert('Sucesso', 'Dados atualizados com sucesso!', [ + { text: 'OK', onPress: () => navigation.goBack() }, + ]); + } + }, [success, navigation]); + + // Resetar estado quando sair da tela + useEffect(() => { + return () => { + dispatch(resetCredentialsState()); + }; + }, [dispatch]); + + const handleSaveChanges = async () => { + // Validações básicas + if (!password.trim()) { + Alert.alert( + 'Erro', + 'Por favor, insira sua senha para confirmar as alterações' + ); + return; + } + + if (!user) { + Alert.alert('Erro', 'Dados do usuário não carregados'); + return; + } + + // Validação de formato de email se foi alterado + if (email !== user.email && email && !isValidEmail(email)) { + Alert.alert('Erro', 'Por favor, insira um email válido'); + return; + } + + // Validação de username se foi alterado + if (username !== user.username && username && username.length < 3) { + Alert.alert('Erro', 'Username deve ter pelo menos 3 caracteres'); + return; + } + + const updates = {}; + + // Comparar com os valores originais do usuário + if (username !== user.username && username.trim()) { + updates.newUsername = username.trim(); + } + if (email !== user.email && email.trim()) { + updates.newEmail = email.trim(); + } + + if (Object.keys(updates).length === 0) { + Alert.alert('Aviso', 'Nenhuma alteração foi feita'); + return; } - }; - const handleSaveChanges = () => { - if (newImage) { - setProfileImage({ uri: newImage }); - setNewImage(null); + try { + await dispatch( + updateUserCredentials({ + currentPassword: password, + ...updates, + }) + ).unwrap(); + } catch (err) { + // O erro já é tratado pelo Redux, mas podemos adicionar log aqui se necessário + console.log('Erro ao atualizar credenciais:', err); } - alert('Alterações guardadas com sucesso!'); }; + // Função auxiliar para validar email + const isValidEmail = (email) => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); + }; + + // Função para mapear erros do backend para mensagens em português + const getErrorMessage = (error) => { + if (typeof error !== 'string') return 'Erro desconhecido'; + + const errorMap = { + 'Incorrect password': 'Senha incorreta', + 'Username already taken': 'Username já está em uso', + 'Email already in use': 'Email já está em uso', + 'User not found': 'Usuário não encontrado', + }; + + return errorMap[error] || error; + }; + + // Mostrar loading se user ainda não carregou + if (!user) { + return ( + + + Carregando... + + + ); + } + return ( @@ -53,35 +158,25 @@ export default function EditProfile({ navigation }) { - + - - - - - + Username @@ -90,20 +185,53 @@ export default function EditProfile({ navigation }) { Email + + + Confirmar alterações com password + + + + + {/* Mensagem de erro */} + {error && ( + + + {getErrorMessage(error)} + + + )} + - - Guardar Alterações - + {loading ? ( + + Processando... + + ) : ( + + Guardar Alterações + + )} diff --git a/src/redux/store.js b/src/redux/store.js index 9b3c6c0..3865347 100644 --- a/src/redux/store.js +++ b/src/redux/store.js @@ -12,6 +12,7 @@ import firebaseTokenReducer from './firebaseTokenSlice'; import answerQuestionReducer from './answerQuestionSlice'; import userReducer from './userSlice'; import screentimeReducer from './screentimeSlice'; +import updateUserCredentialsReducer from './updateUserCredentialsSlice'; export const store = configureStore({ reducer: { @@ -28,5 +29,6 @@ export const store = configureStore({ answerQuestion: answerQuestionReducer, user: userReducer, screentime: screentimeReducer, + updateUserCredentials: updateUserCredentialsReducer, }, }); diff --git a/src/redux/updateUserCredentialsSlice.js b/src/redux/updateUserCredentialsSlice.js new file mode 100644 index 0000000..0074b62 --- /dev/null +++ b/src/redux/updateUserCredentialsSlice.js @@ -0,0 +1,87 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +export const updateUserCredentials = createAsyncThunk( + 'user/updateCredentials', + async ({ currentPassword, newUsername, newEmail }, thunkAPI) => { + try { + const token = await AsyncStorage.getItem('token'); + const userData = await AsyncStorage.getItem('user'); + const user = JSON.parse(userData); + const userId = user.id; + + const res = await fetch(`${API_URL}/user/${userId}/updatecredentials`, { + method: 'PUT', + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + current_password: currentPassword, + new_username: newUsername, + new_email: newEmail, + }), + }); + + const data = await res.json(); + + if (!res.ok) { + if (data.detail) { + throw new Error(data.detail); + } + throw new Error('Failed to update credentials'); + } + + // Atualizar localStorage + await AsyncStorage.setItem('user', JSON.stringify(data.user)); + + return data; + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const userCredentialsSlice = createSlice({ + name: 'userCredentials', + initialState: { + loading: false, + error: null, + success: false, + updatedFields: null, + }, + reducers: { + resetCredentialsState: (state) => { + state.loading = false; + state.error = null; + state.success = false; + state.updatedFields = null; + }, + }, + extraReducers: (builder) => { + builder + .addCase(updateUserCredentials.pending, (state) => { + state.loading = true; + state.error = null; + state.success = false; + state.updatedFields = null; + }) + .addCase(updateUserCredentials.fulfilled, (state, action) => { + state.loading = false; + state.success = true; + state.updatedFields = action.payload.updated_fields; + state.error = null; + }) + .addCase(updateUserCredentials.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + state.success = false; + state.updatedFields = null; + }); + }, +}); + +export const { resetCredentialsState } = userCredentialsSlice.actions; +export default userCredentialsSlice.reducer; diff --git a/src/redux/userSlice.js b/src/redux/userSlice.js index 9ccb4fe..cc21e61 100644 --- a/src/redux/userSlice.js +++ b/src/redux/userSlice.js @@ -2,11 +2,6 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const firstCapitalize = (str) => { - if (!str) return ''; - return str.charAt(0).toUpperCase() + str.slice(1); -}; - // AsyncThunk para carregar e processar o user do AsyncStorage export const loadUserFromStorage = createAsyncThunk( 'user/loadUserFromStorage', @@ -14,10 +9,7 @@ export const loadUserFromStorage = createAsyncThunk( const userJson = await AsyncStorage.getItem('user'); if (userJson) { const user = JSON.parse(userJson); - return { - ...user, - username: firstCapitalize(user.username), - }; + return user; } return null; } From d993c1713a91151344dc422cfc01504531d29cf5 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Mon, 23 Jun 2025 20:42:18 +0100 Subject: [PATCH 03/31] Import expo maps --- app.json | 8 ++++++-- package-lock.json | 12 ++++++++++++ package.json | 3 ++- src/pages/HelpPage.js | 2 +- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app.json b/app.json index 5c8ebb5..c19c906 100644 --- a/app.json +++ b/app.json @@ -39,11 +39,15 @@ "bundler": "metro" }, "linking": { - "prefixes": ["lumicheck://", "exp+lumicheck://"] + "prefixes": [ + "lumicheck://", + "exp+lumicheck://" + ] }, "plugins": [ "expo-font", - "expo-dev-client" + "expo-dev-client", + "expo-maps" ] } } diff --git a/package-lock.json b/package-lock.json index 94310ad..c927d34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", + "expo-maps": "~0.11.0", "expo-notifications": "~0.31.2", "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", @@ -6595,6 +6596,17 @@ "expo": "*" } }, + "node_modules/expo-maps": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/expo-maps/-/expo-maps-0.11.0.tgz", + "integrity": "sha512-Ilzteon/QkeUNYf+cUjocyZRbOfIFg+rUx+OAjjZV6eVGlfJRxJW4J8hdDpoRpWG6KFzGBgPB1Dx/UNV1ZAuiQ==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, "node_modules/expo-modules-autolinking": { "version": "2.1.10", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.10.tgz", diff --git a/package.json b/package.json index 3ee6dcb..5018897 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,8 @@ "react-native-vector-icons": "^10.2.0", "react-native-web": "^0.20.0", "react-redux": "^9.2.0", - "socket.io-client": "^4.8.1" + "socket.io-client": "^4.8.1", + "expo-maps": "~0.11.0" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/src/pages/HelpPage.js b/src/pages/HelpPage.js index 173c0e6..db3b77e 100644 --- a/src/pages/HelpPage.js +++ b/src/pages/HelpPage.js @@ -9,7 +9,7 @@ import { ScrollView, ImageBackground, } from 'react-native'; -import MapView, { Marker } from 'react-native-maps'; +import MapView, { Marker } from 'expo-maps'; import BackgroundGradient from '../components/BackgroundGradient'; import { LinearGradient } from 'expo-linear-gradient'; import * as Location from 'expo-location'; From 10b37f07ab60a8db5e0511500f063ada809a6887 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Mon, 23 Jun 2025 20:53:47 +0100 Subject: [PATCH 04/31] Revert "Import expo maps" This reverts commit d993c1713a91151344dc422cfc01504531d29cf5. --- app.json | 8 ++------ package-lock.json | 12 ------------ package.json | 3 +-- src/pages/HelpPage.js | 2 +- 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/app.json b/app.json index c19c906..5c8ebb5 100644 --- a/app.json +++ b/app.json @@ -39,15 +39,11 @@ "bundler": "metro" }, "linking": { - "prefixes": [ - "lumicheck://", - "exp+lumicheck://" - ] + "prefixes": ["lumicheck://", "exp+lumicheck://"] }, "plugins": [ "expo-font", - "expo-dev-client", - "expo-maps" + "expo-dev-client" ] } } diff --git a/package-lock.json b/package-lock.json index c927d34..94310ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,6 @@ "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-maps": "~0.11.0", "expo-notifications": "~0.31.2", "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", @@ -6596,17 +6595,6 @@ "expo": "*" } }, - "node_modules/expo-maps": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/expo-maps/-/expo-maps-0.11.0.tgz", - "integrity": "sha512-Ilzteon/QkeUNYf+cUjocyZRbOfIFg+rUx+OAjjZV6eVGlfJRxJW4J8hdDpoRpWG6KFzGBgPB1Dx/UNV1ZAuiQ==", - "license": "MIT", - "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*" - } - }, "node_modules/expo-modules-autolinking": { "version": "2.1.10", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.10.tgz", diff --git a/package.json b/package.json index 5018897..3ee6dcb 100644 --- a/package.json +++ b/package.json @@ -53,8 +53,7 @@ "react-native-vector-icons": "^10.2.0", "react-native-web": "^0.20.0", "react-redux": "^9.2.0", - "socket.io-client": "^4.8.1", - "expo-maps": "~0.11.0" + "socket.io-client": "^4.8.1" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/src/pages/HelpPage.js b/src/pages/HelpPage.js index db3b77e..173c0e6 100644 --- a/src/pages/HelpPage.js +++ b/src/pages/HelpPage.js @@ -9,7 +9,7 @@ import { ScrollView, ImageBackground, } from 'react-native'; -import MapView, { Marker } from 'expo-maps'; +import MapView, { Marker } from 'react-native-maps'; import BackgroundGradient from '../components/BackgroundGradient'; import { LinearGradient } from 'expo-linear-gradient'; import * as Location from 'expo-location'; From 81c83c9fc4b2f69b085f14158a13df4ab3193771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Mon, 23 Jun 2025 21:53:34 +0100 Subject: [PATCH 05/31] delete account feito --- src/components/CardForOptions.js | 8 ++- src/components/ScreenTimeChart.js | 17 ++--- src/pages/Settings.js | 112 +++++++++++++++++++++++++----- src/redux/deleteAccountSlice.js | 80 +++++++++++++++++++++ src/redux/store.js | 2 + 5 files changed, 188 insertions(+), 31 deletions(-) create mode 100644 src/redux/deleteAccountSlice.js diff --git a/src/components/CardForOptions.js b/src/components/CardForOptions.js index e1ffd32..2b7d502 100644 --- a/src/components/CardForOptions.js +++ b/src/components/CardForOptions.js @@ -11,7 +11,13 @@ export default function CardForOptions({ options }) { navigation.navigate(option.link)} + onPress={() => { + if (option.action) { + option.action(); + } else if (option.link && option.link !== 'null') { + navigation.navigate(option.link); + } + }} > {/* Ícone */} {option.icon && ( diff --git a/src/components/ScreenTimeChart.js b/src/components/ScreenTimeChart.js index a14a012..d21b419 100644 --- a/src/components/ScreenTimeChart.js +++ b/src/components/ScreenTimeChart.js @@ -16,22 +16,15 @@ export default function ScreenTimeChart() { if (loading) { return ( - - - Carregando dados... - - ); - } - - if (error) { - return ( - - Erro: {error} + + + A carregar dados do gráfico... + ); } - if (!last7Days || last7Days.length <= 1) { + if (error || !last7Days || last7Days.length <= 1) { return ( diff --git a/src/pages/Settings.js b/src/pages/Settings.js index 6613e05..e37204d 100644 --- a/src/pages/Settings.js +++ b/src/pages/Settings.js @@ -1,11 +1,28 @@ -import React from 'react'; -import { View, Text, TouchableOpacity, ScrollView, Image } from 'react-native'; +import React, { useState } from 'react'; +import { + View, + Text, + TouchableOpacity, + ScrollView, + Image, + Modal, + TextInput, + Alert, +} from 'react-native'; import BackgroundGradient from '../components/BackgroundGradient'; import { Feather } from '@expo/vector-icons'; import { Ionicons } from '@expo/vector-icons'; +import MaterialIcons from '@expo/vector-icons/MaterialIcons'; import CardForOptions from '../components/CardForOptions'; +import { useDispatch } from 'react-redux'; +import { deleteUserAccount } from '../redux/deleteAccountSlice'; +import { FontAwesome } from '@expo/vector-icons'; export default function Settings({ navigation }) { + const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false); + const [password, setPassword] = useState(''); + const dispatch = useDispatch(); + const Conta = [ { link: 'EditProfile', @@ -59,14 +76,32 @@ export default function Settings({ navigation }) { const DeleteAccount = [ { - link: 'Login', + action: () => setIsDeleteModalVisible(true), text: 'Apagar Conta', textColor: 'text-red', arrowColor: '#da6f6f', - icon: , + icon: , }, ]; + const handleDeleteAccount = async () => { + if (!password) { + Alert.alert('Erro', 'Por favor insira a sua password'); + return; + } + + try { + await dispatch(deleteUserAccount(password)).unwrap(); + Alert.alert('Sucesso', 'A sua conta foi apagada com sucesso'); + navigation.navigate('Login'); + } catch (error) { + Alert.alert('Erro', error.message || 'Ocorreu um erro ao apagar a conta'); + } finally { + setIsDeleteModalVisible(false); + setPassword(''); + } + }; + return ( @@ -79,18 +114,6 @@ export default function Settings({ navigation }) { - {/* - - - Rodrigo - - - rodrigograca@gmail.com - */} Conta @@ -105,13 +128,66 @@ export default function Settings({ navigation }) { - + - + + + {/* Modal para apagar conta */} + setIsDeleteModalVisible(false)} + > + + + { + setIsDeleteModalVisible(false); + setPassword(''); + }} + > + + + + Apagar conta + + + Tens a certeza que queres apagar a tua conta? Esta ação é + irreversível. + + + + + Confirmar alterações com password + + + + + + + + Apagar Conta + + + + + + ); } diff --git a/src/redux/deleteAccountSlice.js b/src/redux/deleteAccountSlice.js new file mode 100644 index 0000000..172f14c --- /dev/null +++ b/src/redux/deleteAccountSlice.js @@ -0,0 +1,80 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +export const deleteUserAccount = createAsyncThunk( + 'user/deleteAccount', + async (password, thunkAPI) => { + try { + const token = await AsyncStorage.getItem('token'); + const userData = await AsyncStorage.getItem('user'); + const user = JSON.parse(userData); + const userId = user.id; + + const res = await fetch(`${API_URL}/user/${userId}`, { + method: 'DELETE', + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + password: password, + }), + }); + + const data = await res.json(); + + if (!res.ok) { + if (data.detail) { + throw new Error(data.detail); + } + throw new Error('Failed to delete account'); + } + + // Limpar dados do usuário do AsyncStorage + await AsyncStorage.multiRemove(['token', 'user', 'refresh_token']); + + return data; + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const deleteAccountSlice = createSlice({ + name: 'deleteAccount', + initialState: { + loading: false, + error: null, + success: false, + }, + reducers: { + resetDeleteAccountState: (state) => { + state.loading = false; + state.error = null; + state.success = false; + }, + }, + extraReducers: (builder) => { + builder + .addCase(deleteUserAccount.pending, (state) => { + state.loading = true; + state.error = null; + state.success = false; + }) + .addCase(deleteUserAccount.fulfilled, (state) => { + state.loading = false; + state.success = true; + state.error = null; + }) + .addCase(deleteUserAccount.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + state.success = false; + }); + }, +}); + +export const { resetDeleteAccountState } = deleteAccountSlice.actions; +export default deleteAccountSlice.reducer; diff --git a/src/redux/store.js b/src/redux/store.js index 3865347..da1dde0 100644 --- a/src/redux/store.js +++ b/src/redux/store.js @@ -13,6 +13,7 @@ import answerQuestionReducer from './answerQuestionSlice'; import userReducer from './userSlice'; import screentimeReducer from './screentimeSlice'; import updateUserCredentialsReducer from './updateUserCredentialsSlice'; +import deleteAccountReducer from './deleteAccountSlice'; export const store = configureStore({ reducer: { @@ -30,5 +31,6 @@ export const store = configureStore({ user: userReducer, screentime: screentimeReducer, updateUserCredentials: updateUserCredentialsReducer, + deleteAccount: deleteAccountReducer, }, }); From ff8525eca536a8a535734c6ff36312ffcf2b2801 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Mon, 23 Jun 2025 23:27:19 +0100 Subject: [PATCH 06/31] Add notification icon and update app icon paths in manifest and app.json --- android/app/src/main/AndroidManifest.xml | 4 ++++ .../main/res/drawable-hdpi/ic_notification.png | Bin 0 -> 984 bytes .../main/res/drawable-mdpi/ic_notification.png | Bin 0 -> 689 bytes .../main/res/drawable-xhdpi/ic_notification.png | Bin 0 -> 1244 bytes .../main/res/drawable-xxhdpi/ic_notification.png | Bin 0 -> 1854 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 0 -> 2228 bytes .../src/main/res/drawable/ic_notification.png | Bin 0 -> 1922 bytes ...{ic_notification.xml => ic_notification2.xml} | 0 app.json | 4 ++-- 9 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 android/app/src/main/res/drawable-hdpi/ic_notification.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_notification.png create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_notification.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_notification.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_notification.png create mode 100644 android/app/src/main/res/drawable/ic_notification.png rename android/app/src/main/res/drawable/{ic_notification.xml => ic_notification2.xml} (100%) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index d3974a5..5964fc6 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -22,9 +22,13 @@ + + diff --git a/android/app/src/main/res/drawable-hdpi/ic_notification.png b/android/app/src/main/res/drawable-hdpi/ic_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..eed1d5f241e60eb7d981e8776eda1f19f46c6d55 GIT binary patch literal 984 zcmV;}11J26P)mT0sIQ%-s(+|1*8ue1jSlF7{X zICH*lCM1LiJ&34EM8b95Q}1&&%Kp9$)1+;{f#Wzgo12>=pU-!b$>a|rdSY8|8gYsM zAwEFUH8lU{Cp4D*s!;^C&tIe8zvi}9l{x7 z>=q)q51`r0vWUGaD=UvjMn>B5dnkv={YRWcYe}5m0d=Nr>MwX>g ziB+pr>h*drjAa3TIIpFprEeacr%+#5K*5q7hzDv0J18T+dIt^@iNyQ0wY32)uItth z4h}*)oS2yS2`U+5uhZ%D;3%M8*dB6-2#_5XK_rZ^??m*fP$+1IZ8$zY{^bQLj*gB7 zt6(#kO#VhN1BZwJk;nz;lX7zuT2ZGEj|zX5)nc7+!&Pq~`fxvA};R8aXsi~<8{~^mC{f07` zjPY#Xz`qW|rfg`zySPcq01i|`CKl8+7+}Q&>9F5vaH0Bfb#9V&cyU0+|n(^eUPEKO|O2hce;H}}!n+WsYw z9c~ZYvxDZ1E2UDY-2M-T=v18ZPwMr=@dgP}*+T$<;o6fI^Uwv1l<}jjZ$<^2c|s{$ zA5n0M%hL4NjRKUCmswSNq^T2lWr1GQU{oPN!OP3bx9N1cslG?84&|Bly8==F(1Xqv zL4lFg)zzEP(a~!>;DY|f#bj-m5R1ilDwTRJgm~I+w5R6U3qQ4k(4D1vPKMPyOjLU0SkplBhuT8LN}6f6uV zSSO9mbwW%N2qeTVq|+vCgp?^_lPZlVuTw)nFgabKmw3sA3A5)r*8MTb2ajdvz4_kE zH}eJ%(R2YoEf@@*C6mdg0N^q^$Cl1;unFJ-0POX8==FNPiK19BI`>axu~_W1TrOWA zB2K4Mj7Fp1j}ht&Y>A@yE*_6xt=DU0m`o<<^Z7PrDeDZh(&_YvcDs#6=yW=ie<72} ztxgXjbGzO0cs#~% zIDGE&`92K>1CzKA>-GA1u~?K@VY=P!E)WPj*tZfCSo!HdqtV!mMk5`G8OX=!bgmS# zY&QE=?M$0Sno(O+t5v0ewV+4=;0{D0k(t`T>2y-ON(-pL?CeFTLI0HDUbbt{&CEe< z$7?}uRz9CMB71a_OeSSr*$fa4hi{BjMFV^Uzu$jxEKRbJru3xEpv!115r^`e5OHR=+h4a@ zt)F^L%^}M&NRss1YPCKjj)R9z^NYrgk$zfGQ`4-=<#I%1JkLZ?e980tB~{Fblt`M* z<|U2rQmJ%LI|nUHI0lQwA_#);c(d8u^>{oMj^nP#KA+ETaU8eY?RL)>i^U6F{s8a? XGfCgaIsboI00000NkvXXu0mjfNC-Vm literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/ic_notification.png b/android/app/src/main/res/drawable-xhdpi/ic_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..ab445dda1dca468f43cfb5ed26766a3a59977270 GIT binary patch literal 1244 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 IM6N<$g02vnZU6uP literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/ic_notification.xml b/android/app/src/main/res/drawable/ic_notification2.xml similarity index 100% rename from android/app/src/main/res/drawable/ic_notification.xml rename to android/app/src/main/res/drawable/ic_notification2.xml diff --git a/app.json b/app.json index 5c8ebb5..55ca92c 100644 --- a/app.json +++ b/app.json @@ -4,12 +4,12 @@ "slug": "lumicheck", "version": "1.0.0", "orientation": "portrait", - "icon": "./assets/lumis/Lumi4k.png", + "icon": "./assets/icons/icon.png", "userInterfaceStyle": "automatic", "newArchEnabled": true, "scheme": "lumicheck", "splash": { - "image": "./assets/lumis/Lumi4k.png", + "image": "./assets/icons/icon.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, From 403cd7807a3b3940090163ce2420ae5d3aff11d0 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 00:20:55 +0100 Subject: [PATCH 07/31] Update launcher icons: replace webp files with png, adjust xml formatting --- .../main/res/mipmap-anydpi-v26/ic_launcher.xml | 4 ++-- .../res/mipmap-anydpi-v26/ic_launcher_round.xml | 4 ++-- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4900 bytes .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 4956 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 12573 bytes .../res/mipmap-hdpi/ic_launcher_foreground.webp | Bin 10283 -> 0 bytes .../main/res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 7145 bytes .../main/res/mipmap-hdpi/ic_launcher_round.webp | Bin 5507 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2542 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 2958 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 6266 bytes .../res/mipmap-mdpi/ic_launcher_foreground.webp | Bin 6730 -> 0 bytes .../main/res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3878 bytes .../main/res/mipmap-mdpi/ic_launcher_round.webp | Bin 3262 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6708 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 6792 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 20257 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 14093 -> 0 bytes .../main/res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 10150 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 7603 -> 0 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13226 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 10425 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 42215 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 21652 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 19092 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 11794 -> 0 bytes .../src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 20875 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 14324 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 75224 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.webp | Bin 29571 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 29450 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 16272 -> 0 bytes 32 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 3941bea..25625ec 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 3941bea..25625ec 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..674df1d1b683d82b1399e31481b50806a55ac5da GIT binary patch literal 4900 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 WkZaJ0&NyTM000045M literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index 3e229e3939909bc19e614579bcce79b7da1b1548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4956 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp deleted file mode 100644 index 575b837584b746b459a4b37d9a847d3ca612ef7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10283 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 TInM=N0wgokHPNZpa*6ssv$4*? diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1acad817cdf963b43f125757e7caca536af2d4 GIT binary patch literal 7145 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 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..97dbb10876a707a1686e9f799c1d53ac611b4db5 GIT binary patch literal 2542 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp deleted file mode 100644 index df802216c534f60b142dc9f169765645cbc24784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6730 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 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..279cc045f9668249095ec2f856a1309ff6a2145a GIT binary patch literal 6708 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp deleted file mode 100644 index 13addd15f83cf59293993423241cc43e9a2410e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14093 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 Vtd85}fPZr%LTVXlzSBTO{vRbsFx>zE diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..5821f5732c28288e646dfd50a86deb48c2ec8322 GIT binary patch literal 10150 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 UZOtyq9smFU07*qoM6N<$f|5GRVE_OC literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index b9e524d6884e55978ea1e3c0ed8111403383fd4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7603 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 G4*NfwpeSnq diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..80a507631fb9ad135dd8547200e3bb247bd7b97d GIT binary patch literal 42215 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp deleted file mode 100644 index 5ddf0aa62b01f06acaa774ab5b84aace0371f9d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21652 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ɗ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 XE{{5o-LI!u00000NkvXXu0mjfk03B! literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 47e0d136a215c3215611fbf22bd82e1c508b0fa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11794 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 yr{ji-)r^ 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⪚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%0AE>%u?~2 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 AUH||9 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..3e97d034509c7aa7db84273eff4b63f463337421 GIT binary patch literal 75224 zcmeFY^;4a}lRbQKceuE_T-@E=-Q6L$1n1)J?he7--2%ZK0wHK{cg>s6?sxZ}c(=Nq zda9cTF@%s&I7mur zL*uY9cFL+QQkX(YiKUdp;;D+VqI(2qlQXb_5lsFTR;O-j82t(u$o}$GVEbYbN zOKHNaq5l#F%@mF`$S7qwN}ssBWCli{;d6QPd?oDy{k?*IHxA@!`};+_w}%<`lEp#g ziID5$rTlE~>6XQa2mg1b6DPr#XC!M*(cGbP?*iR?-;#(A;J0dlz-3qN=|jTwdxFv2 zuwT#7J-Xp`j}$L89+v+WuA|Y~UdB1%TVQqTNpE2A&|)BEsmJx(@^f0E#vTU0NWegc z`|gW@@D+tfe#<%F_II?(zBG`e_9*m45ab?QxRs6Z$#N_9DH?Qj&R2@!UCZ8m#H+Q3 z47r}DSe7_4>Jcw{Ro}xAh0scFA4mT#56K&tA==~-4DHXsYB!)UGMIKF{pcsS958nQ z9dj-ube*kkYI~XG2 zhF+0a>m1cy_Zzs~F}+8Ux9RWb&(|6;OF1eisO5XGqgke6Id{I5{#A3R2@ZYt6KC-C z&Q9D)i(F(JqEWN1hbI}~3gm`-fLG*C=>FTa3_pH8xK z%4ky7(UaRh9)7I35MR?0#7xSBWaRJft6|ZMswQNR`U2U}Mn)yEXcXR9iqL@isBWU6 z?N}91y+m_Me%gQ<05?GG!-U6u2vWoJN9&_&o0ZVL9L-lyhX3 zl!mxA;p&Ff6H(hM@=*^h;J{OyRjxMVQ0uwZHekrv58QkdkUD?m;+N3(JwTfkbL7Q- zs{VU@0I>sz7}x=jSdfo=xZyzN;ZIB4ZTpJrchUv=3=zVMoQqslRoC^MQ{-7{Ki*|I zRMNur-HpS2=KP&%4~_@5)WC3yRx`nBul5@3Py(Z3Gn*O;QCjJ0AM#K~0gD%}<}l_M z$su`646Tie?$YFn&hsj(#>atVl4$YwxK`BYZCwjd1^Zqjo!TTpuvx!#$ivaUtOSUF;#g0Uia1r9altDk(LXV{S3D?}o{E`!p z*G2HKQmbfBge#AOOq&*puR`z%W#RI#6h`^@1a#j`gmO?Qx0u$+p=0E92^8NfF3o=(4sSQ~m# z&zMhz%0)2kigI3}A@oUo_sh;XcBG`$?h)jiBn}J?N*9Syijg+`CGJ!Cv@)Y z>)JNDURUIgBG(WD7RH`=I((aWNOq1cEcLB|u-%i`w=t7sJ>~LJ#P3Fba=dEaq|s`3 zF}dx;Td-)|ovMkuOkPOml>l&GmC%8iM(EZ^6d<9EMI(y+GpWc8@_<2hdc~mE z%;TY}Q}ZM!kNu}cm{=<&ZBB=E_&lrp3Su}rFzcnzlENjmc2AU1{1Q$xZO_*hYF3>v zlGY>ZIX|F8hOq&94KHpbh@C-sP(O^%Q0z}e-aFt?|CnPh7#nf+5 zu@FTs?X-W!&_U0z#IS;_zAJ=%0Vnfxug|rC1wwmDh<2kXPq)YyLSH|76V<}h?yp(# zk4z7dna{HrANt?maLz+tnW&9hcSE0?TP^LUbYrCLRFHG5QHgqp|8^5wKnx)xo`*96 zmZhlCtG{UjW3U#0Fu3ZoA=d|2S^u1&A#u_$lmMExc(*njva~(yi;lG}y>*gF>?7{Squ9DCShpvd9SsCt3u~FveRpCbIb*gxVHN^Ef#+RDr zOcIHV&eC{rAnNF?x6anLhd`tIxjKITK+?Y+`d`8|oe!EY|9;y`rsre!DI4)Udcx$7 zQ%ZDA3-aPoM`#XtRfZ};WgOh3S@81l5y*WgZ2OcxbR~wD zzp~0rBq@{PO*GF78 zQ8dQ5NWxGmB-lb}Ck{@XaN|hH1TmsAwrV2EktEDM)qR^4p2l%CRlkOjAg zm&Mh03o#ed2^AW)ZY#y%9t%Zip9HpIaVB4)iBo6Nexy$p(WcWQ zF5N#9x5;9AZf}`Yn^oBhQiha@1u+}c>DH097#G^BPazQ;99}sGAtjx~o*45vFzU#= z%SoKMm4Mef46!e3o%<^wbzvIQp&OBgiqY(@nUDgBAy>u-hu(bXv%F2HYRVqY{8)w55`>U!_m&*JJI3TtYToke2+P+f*f zL4KzlgoW**sHex47hiGH)nW54jTVH;?sq=U_NbQX!Q9=^sz6iv50F_n^x<2)h0@JW z@?V6|{QV-omP{gBr|LWoxDKr3STQq8N`s1xvTmr@;%HzdvjH&UB9UM@$Kl()hmVi! z-2)UMG?#|kjXN6}1C2oIX?@N=<3N{*7Jrgo*^|Sl_$>3etZ2)4|Fut6C+hU9c9&zx zq*5l9^1D47g5`Wg``RCn{?hVcxp6tnYm&{T8LyxR-SJz-bI75bCgbl~e5o^04H{d! zoSsb-RhQIW+gVxgGY6JXwaiwVTyCfd6q8fd7EM}yR{D@j=T77 zFT8Mjyx8ULPYfjapvT~Z3WfvuK?bxX;E`81mL#+tj*|lMPzp_YY6N*$J(-VEIq)q$4rqy%G zAPmz)L$QU1QPngGyDtNyKbz+vpv?M%`Pm`}MfNw;@gh6u2z@N%#VFXFBf6ov+|mu` zby0VE;T~NAijd63IGK3B3iqJ_(o&<`D~ev94HQCy>nYwXEig6_q%z8gkDRt>M4y=Q%P`veru^ z(-(8WoipSAcezJBN1BNcM=(4B>|q-EG}oy@s0R`kLbq*1vyP;`CtTZpG{!POaK5*Q zrX9&gUS=UvKw{HC+s4Hr#d92i#&He$i15*~jIuT@J0UG{yaMSP)9X|5b>*=*zFd5_TKn~{ zVXf-duiOV5V)64M5ahqptrSx>oxY%=U=!7G0U0kAsIz}MB(EC1!&yk^yQFyTl4(iY zpg_}kt+99+u`NL}ZFSN#6~P=we}Pw$e~Y?NG-{yZ!B?dal8j2p9*%)n4Bt;p@mW{5 zU;d7w*_?vbUKEDf{=^s5={;pX*34nyNAr&Q1IF6=>(7PP(Y>Qz=0gRp=g8llKDCuHF|U3q1Z zpC=2O$DQY=g*B0{C%fhXSJxF5!4TVa;)Q6!7$%SOiZe|ZX(s=Wo$ZTEpHD#%3!^n3+B9r-0Uz2R06`^G( zTEys;l2#mkA-yOMBay^K%h3*n=b9VSuWp7N&X=kQ#S?N2)$D zn}18{3YggqcxR-H&%2$8)^Se4VtB*amccNNLWO>2gjd1rCzH&!o0qxdFefD8!?(Z- z*%HV3;0c^J=i&7d326>epzI9j#jcu4JFPT%=F&yL%aXc0c6AoU23MG<5di$dZ;q8(5SL zL>1EJ(ZBHcOiriFo~Q|Ol>MR$fR2~Cn?^A4t!@8X9{VdhSqM(5oJvC82KHF(Un%}o z2gwnzmD9x*P1z7?R%a4siLHL1!&-}_q;|>T$+WN-Ltb^5hjR?0N}~zGOD-+C;M`JZ zuANqP)k6ibsFP|{9w{sbC0uNqO^3ldqX+Go(Wz$0c)FnK!KiP;>>?=|t2GQEtpv~j z<=E9nZX?($N@A}uTV=>KhmEe%uhIsp$#q%SmAU<{EVZEMB5Z>@@ zlUfCgEC>O9X|c+yVu!UYh?PwElOb0qoJp&*=W_9Sl!C@=y#hF_b+t(8A7de6Xr2dqWKYeq88`y z^Tj&M@~iqG>xGy;+B5Ppi~-Z^+*Sk?E1d%+u~q?wOtj&v-hTy$jJbz#DNy&agBg)= znOzUQ^I1WsH#p!qjYY|HVuaXqBGkm9;vyS%eUWIxlgeSA^4leIax4?k{9%~*8Zmcr zGfA&53Jx6ncLx_C-PSymdk-P>WRhpUI-F7)I+TMPMS&;NksvX#`fdI1bH@Q%y46LK zwd^y;Vd5rm>WzQD92#+hp9qai;r;P120v(8y`-*3d6SSM#WiZtY2DbQZJcE5>?nMD zut^n7f6N9O#CCZaWYi=0u1h>vTZZ&6QOxXvy{yxCBym+AT`sMOnNHc5?vkpQG5WH0 zD%SRwl`LGpbr6so`R{!twUYf0*$`ZZ9n5vdyayp;YNZEFXJ?k?KT3eFZ@i6ITq;X~ zoAA`kIwVnDFUgx!mMo=|PQwsu@Ph_#LqHsZY3eJyg9B~!acW`?=aGTjhtA@`$;3E+ z4nj=)bE-u;?SQz9CK=+*C>!?OsyGG`KV!=^er-nqv(}uxZ zq>mpX&K?_QWt<7g?Bpo(bkC?N4(qN_C5wr6%;4+OAv9e6H9lAli3M%(^Y66L7%=Fk zh1@IMyu{PsV@yWzl$mc?XX@*Z8S~hT-0?NCDnb@7SDp<;;(=qe=wlhHpUj` zu$kJvUXB{i0U%uu|$LzszYjiU9iP1smMs`n8%b=N~ubS>OIiZUg2X2dq{7`lbY_NDNF zi;ua*0>(2+D|}J4kp3L~xwo|%4c;=Ftg)~vYcAs1VR0g9nzDSv>nYVdE{ToebWzN( zQILNL**D9u92QI|l0r&9Bw;t1x)jfomP5W*$zOc$IFCj)W1?p(;carr#iSbg_#;X& zz`{b~9eIWy{DFG{L85Y{4{eP8Y)v)`(^dwJA1JZcSEs|I9fCa*chBr^vpadV@aB#j zUrUc~VmF##65ErEO@4xEk)O9|j9vX(Gf_NOh6qhbDI$*ht6uto5PLVK4g8=van^$= zw*=q0tej4TzY8If;1UByrtb3V|9 zBgR~oHUL#7Mo~O4Cy_QP<_sD;jmrH9o)r{T$VrVakAR1nx}z3vcq=zSQT}u=t%#HL z3bWP;j!67XjH&dKNCQp9N= z=P9g=Y1E^0TajIm`hf%-{M+D{mZsJbQ$X!filZFFkNZ!CuxvDqBs;!~I*%%{u(Aw` z$(fndzPcqus}ngpnO;FXPJJqtF>Q*InewwbTNA_(|0{W!EYO$Ww)|`>0@f5$V>3FfTn5qwrTV)9T7&NRXN;({nnP?2g3u7==2h zGu-+AE^DNcaf($)dnhz{n`~GS+_CiY#Lad@osgjD`R#A%QBKL?7YRo9*d|iR%Sg>8 ze}(gtb-s++?{j+iRh->}@Axsc;C-3OgSqrQaKs^@?bhYdymFET(OW9@ zo59-DQ7mJ^ve)~?7&o0m5S1s883_&_lKq^|GTf(0T6opaRz;@?0H0W0v|$@(uN6~K z{-&-S*?$VQ8_nAs>_)lkDZr1$u>cn9PDq--!bTY-_*m1qM*8R^!C%$wNYn@LVW0MT zU3BR}B!sCXK;E=XBO18R|?^lym-Vzs4RymU6)i zx=pm=Y>$_42h<=p8O}$!vq?A%)aariD3J%fho3Ej+%@VI(2mt9m!JAWm2?KheI# z@4MR`A?r#tk)uJk(x+xMj60UklRW3m;`nfyk50knil1;e2~_b;Vhvxc0ld4m71HQE zyKdW6AVowon8%u<-+sMi97ucvkbDvyc6Z}E7m!pv0!HK3Ni@jZnB}ol^_Vjh2#)JH z#Bc4MzIs6+7U?GuwR(fGqn6BwlkgQQ#0>nY&x(cs5^hiqHN0j33u=PzKXgr?+n#fD zpK~K-0$^b@-vweuz5Qs=@*lvQMVr4wKxqe zDw0e3T3&3}F2L@LeX#nfPA}i(-0)HHlZ!y0t^KFrhKM@-+l_%#yE2m0QalYT+-6&J2Y&NLok{$?P;O+B^=uKoN-w1KuSr?m9QQTY< zofUUvHgZD1A3MyoI>iYUoE!{Rz;d|{gaO0fHwHXCIG%UQS8!Wy`uHYI&PLQ*#*_%I z^hm_;T6a~vQ#9AI`lzK*E15=lT$8}G)gq(ncB#%m_c&S@;VUbUO*ft(!01@)ty_Zi z(8Mn_Q%?OCzDFJGsuBceho{hg14PfL8C;<}O%L%` z2DxQ}rG9n`|E6>uWLTj0j9gS_4H#3uko)Pn7#q736|%2>X~ZwMSXv}XCd4nGlhnGZ z#yV}_sP?TTmkVDZSu6H?ZN8U?oI7ZQW0{UK)3;z6>gbz>o~%jZ&f2rnOK%%?W69YZ zU^0xHk-v_k_@?u*YgXVMp6n1s)3mI2cm5pGmM(Sf2j#DTQ2 zV6dnC59CVA5&pX?R;Od^nA#p_s-K-dtMj0#A-1ULS~_bVy_T!>EAelP(jfAswqYTQ z;BG}ybXLnVaDYiz18oq-wK$O9umKs^5BF;JR3jR=dHY!Aw(}z#D#l=Cu4od&qbmQx zX6CL-kVe6+F4^K}7n{L@YgH9RHWFeLh7@)r>(3&6(}0vB$aO%l(rgbM|H%TH6?2yx zYsc0ukr5YjsJwcI*036Zulb+e_ypXZBumxB5P>zZ8)V@W?7LN6>FpP&zpK8C$5ci2 z^?A}=0KB4>02C)-@f9E_igSwy2MmS|URJZxPD51v>+^>}N{3qL`-03;ttZNtYdfLL zMvT+g+jTT+eQOVf1VM=H>zlUwa4?iU-Jmg_b9%dUGtw`=N8S1_VB_|Zo?2xauJ*@e zPZzTqWyIQDf#&Y1d*?fZfW576NoD05ks;LDvIS7S4rpabU1{`uvt7aNCZNW^AvFj` z(ME3fAVnX=3=~;D11g5G{wCiXrUP?=gJ5dY59{YqmqZ@<82NZ%|BTjGmvfZnkxe@o zde%<6?@VjZcx7dET2u@lu%1G*C{>ea*m*V=%j)wOX?QNRzl)Oo@nFH*ezhH&J#soe zbykc^5~0Ar5n_PEm4vs}!ivsu>N->rdMEBscKHDk-Cch*64rA>4HKPk6{Q(djk+ZW zXBpwTBlT=yJ|-qO*FI^Q=p=Z^zdm2TcE9gQP?WKGR$3bD8=0T2%+gRf{Qw_#kO7Me8GuprNtl+oI_({GaZAl5=hEZgpfh0lR(~FQq;96hw{*8& zQW}+6AITVU9K@7C?Vh%b^5>npj>kKaP&DCOg>;=o-&=Y8s3;Q*@%`IkC9^S$ZLxkL#ml=X=RA_nkl9u6|}Q zR@9nWn=q%0LlC96fD@nWvaqMj)0*!5QR=0m`@c)5o(S898GQ zdc2=`261L52+{ccU#I~Vouv;Z`Yq^wmj9IrbAxWml=;UUjJ6=RbcvbakMuk;qWItp zhM|}+nmnctse#$Vh=oWdw|Uoc+&V}D7(LSZ0S~OlU}4_Otz;a`r4qR;%I3Em(mn&P z`0hf@^;l|%70w)a=S!t987Ok&AelXwaUVQkK_TAI>F;B1YhSoE5FP50WH3#N4pTDe zd0(x8EDTWiLbc8mAjMaUAH?#mcrs`csERzI{cN=>1TwA7afwE~E8oM4pyZNC!V~Zt zQR_zjA?--UU`(@yontXzRbP#}*qdlpzMH4}ZJ6z`8vVU3qZ@Um7v#70i!E)Se`I#& z0pkA_ixz-XN3n1FZg58D0h5U5ZY)Wsvr31@=+&?@?m3bnQB&jrS7-$wJzpw<`3W$C zf$XQ16l={_M{4r}SAov}6>g%*g4%iALxmc^#h`Grv4s0yXVYq$d_z*?hU7i?g;$h^!9b_w$G~d~eON@T2%ur)R_N ztgm~3bBY>E$8ZPk|9J})fOvFPzw%j|WBlenA%bB^DksOJ$Oc=_>uW{g6_T0mz~{)v zt%+tCR(ghI{L&mROr?tkAFsWpUgD*eLNTXXGbtd|SyUlJTq7z2Le!Xauk3Vv`PFM@ zhnygl2-{b=OfL{1aqZybvApj>4KZfWa9u)y8(?6B^#xi|k%JMzV*qYqKl@CJ5sMW9 zF05Do_|l_EJ<|%9@ywq9z+zPxjFwj(W`Xh;W}t%u$mCnu|0$B;@yIZN&G9g4niUfAZ&n#{bM?UV zu0XCGA3haaA?nM`@?w4$-3Wc1<^3_{OP%tvVyw-6*Gi4=^_cYLk|>!stvIAI>3d)t zx%Wc}XnXExailmTKdXc4#0S5({RiMEA?^p7!oSkv6hD4&OcAr(9E{_3e$XR%Bp_I%&n*v4Y>#4-+y?ExYAey}KM|Ju zwttLRdT*cUGKeCC1w633qk=2%Aoo#F)c~HAW@&GJp*gU-*_Xc{0jZ&361hPaFq5w^ z_P#=!O!*dPq2i~BC%S@Q@z+v3Rq%c;r4VKXaU63qV*e2TE$x6XI=qgwT{{b6EU92) zl7w5wz2rypG~xdfCQ+@=OK4$!GbEZQ7^nA~8`e5K4T*R3W#?YG{tWVvc9X{8PoA-{ zBejI|Bf9L`O9m!PK93{mb077%R7J+hkf-j}{agA@qA_cEK$<&yLdd4Ny*mkLY|I|> zdr{awIh1J0q>o6uGSTu@gaCv~8t_cD7M&ZPp=y~hHF00k&( zu{&c!YSM&@uwd?tE?CoS8-QN%{-81zq-KHMcU&rZH#!EFazi zMYrievdlT8D5JW{)fee-9w}FU-Q68;Fvz7wr`g8IIBj74sHLV6q@zyHFC+CfF2W9& zwx*I@ksCb`P(+bAsxRZ^*n6YGt>9jS>hYUUYofM@=}_ux_p?C(Q^%8(k$H&Qfg=oo zg*-!7&iF~zW(SmU{{%}a>}UY!qTbu$v9WXMC=qB91)e2QY#mS6i-JLK{rYpRWw2fC znlHil*)g5i)d=2O3c(;YV@5a2H;P=c{th4SGL~CtYX$y;J4u*y|GCK$w_;>8j$uhx z4u#m`o%99ea#@>FPlJcg_xV9h=W?C@=-vuW7F@Mb%}oVyGPUU1WF>2`QBp6>AQ>1f z9RuP69$R@=^_+Og8r#I9eY!ACx&{h4O)=nMa4<6&zkSamsrxo4OiocLbM|6%@A8zo zW@c*olv0!aV~gQ9!GbH_S)6``%9aX)9BciwAVq1K-;{TUGKt|kpFEKH6ug)}T2Khi zg<^%=_n*l~ve*f|FZtN{V4)+HMq{2>nq{P^YT^~?V`&W){|VT{smtSTG*|<&Y=x`n zoBrnKkWD<7?cxZPy7DzzU1j(y)B!hGUHh2L=1XUS4GryQ80AsUVKH!$LC!jWimi0B zqxo;U?dkw-J{`j-J625G#o&1*y+N8^h5M{x`_SJ4+(T6R>@zQT?a})=*dMq9}4(a3L@Xf58mvnO#hEEkh z>~6No^TTS(&856AAKQN~a$cW?bvu%}HRK`=Iog1TOv9tb-d zWF_AII{{aE0XP&_X=7bH)pZ~DONXXBo%T5G$&6d9Ib%==P>$3b$_O%OT+oF^Z;+i6 z2V!p{79C~}?sIkem7vQMohsKj8yHi(>lz+%>5QqWZIcfz{4yYwxAr}Ri3LW^1wL#o zyxeMISDzFUvoKede#6#J=SeW&;Z; zT!!!+(_@OPh#MRVv$;`rrzgJRdRX{UxW!8DixNXiIFGT zW<3X>@k0IX%M&I#%ZlfixfQM{?C$8rmu~gF zp1`$5Ila!TjP2y@IymAmJOZ)cl}AUu>4oMt*kNIZrdn0qKD3}YV3J>hB6`MFg!@$| zt>DGj6`mBC#vPoZf&Xh9KGv>l;x?ms}qnSk%HzA0~+QoJ@}g;e6!pjbZRPeh^=j-9Dy;8M+q zr~M0cN?eK^n=9pTe91$}x>_+zCM{I{1Z?4cNUaF_A4A>zPB9 zqJB-Z%4GEG?57>)r9J`V3l1Lf~3+XBs4 zt`R1PqQ!H=r#;DM2w9e0-sMK_AE22#laGRhMXRZZwNxWEHiB^Cc0cL6cAkFo`{5(O z^6V@O+%4ZA#&dOC(6X2wd$(NR@x2T?A#x+O{Qd!OD(5hw2_!M|%&ntJHH!4KmW2%>6qxwCRfoUH7yEb9GyL9UHO#Nt={VF_8#^kXrTt z;i*SHZ~fMqmuD>qflFZ$mr)GbF>(dKtc+)D2MUR@cIxY|ktr@_(vzWJczdi5MO9RI z*IuK?fcIn8mk=c^kx?v5%7bDq_}Gj7jSxu^;Fe{%rdjx~()L^_bkekYE%6AyDSS3L zQ>({u(Y$3Z#Y&*61=}u&~tbtMKJV6Z0UzJ5{|IHv4ZK@YB{|MhI*rl6}`lF{dS(fK_;$EK6<-J0)2*afen-{noGmnc`c%00x6?`NG=?s}SMsrBJt z@PpEjCalyAAve;}eLwHO|q zso6K&!>0fC8!6zX?Eh_<;hD|u@=Z`7mJa$?ZG}QdZb+hZ;$C*KjvD_nhecd@(@l!o zf~R#BNPkuMn`8BG6mGHpf7E@bgPcfBUzFx)4HG2@vf>Rh`H4*xR=%$ME;P{J;kP>h zR}@I-b10a-kS<4^_@ZDtm86m{T;wT+wP#uQ=|~P$-piU- zfiG@#v%X^CDUWO?WXS#T?*YtAZ|wdzDzCN$ENHQ7{7HwNgoRL%KR@x!76oyP+u9Um z@p)6icF+E$%Rz*+=j)CJE%2X|uT$az0#OXA$L@u;DW3@>+U#m}@nwuHh&9o$WQtui zvS<8v+!R8xSrbJfSLRZ?3`Jvp6!$x%3NYz!LYh=y`aF6Z)4LoRl3`^(5+L*E$;zeT zdF#^D$Vnw}!`01Biq-DgKsR^qL){fT&u?}(#HA`xl)q9sd*HWTexkq$!V&1lFikPJ z`KdkvLvt|!0n|$+0Z}`wULL0%n_kU7?vwLU8lx#jsi!C>{2KGD{ZtfupUyeI0QrBZ zynZ0Yc(JI3hYPIAJ~Ee+yB%R%`b-=;hm+-Z09|W2^g|HC05Rnp$%PW%?waqaD+G3x zVLy#9F;iRE@rNs#aQ4nbgGZ}z24Phz|DnF%90BGwr~CSFHSSZ$t5gFJh>!;DPspEY zy_kzQG05ly&>b-kQzF~cvU+R`Ib6$S@2#yXCyX@kk1=DqiP&pX&2R7yAFfeog)^|W z;l=D5eU;_2_zk@9Ap`bCMIp!YqmUm)Hq-mC2?l1ZMJSZd<#6a$u$5W|~)~ zOQ>Nbz+~FmQ-A;s)5nELaiiSfG^S%W=02FC^dWTuqCA1*B|EzW`5W_SAcPTwBm7_q z%qmyAIH)9o%kZHzJq){?5=onShWAq$IvNgHFqnDXK)=Cu1ZKx2BkFAb4@BqEN|uNU zbbLz+*<@%>$olI^I7df`mr+Lv1SPVJQYT~2{ccM*_DS-FDl-K5uwI{`L`dNyA6}s8 z5tH@j!o-$r-VVlas!8MAaR%R=rx}OMEON)}i-oTH%s-rRhc0Z4C*1nw_lPIY7J=~N z*k^PTP|HGekWN`PGkh3BfvZ%U_wIh;U6_W>#gjPpGYA)>5SuwEtVr!e)FC^7Yg zp6gGjJ97xrJNGn*GToiw%`uKp|ElhMDxg@OKK}Yiv`az_Qq#Xkl6(jf;`@tvF8%v5 zMKUtZ5FZ#?^fe1!`6)`B;Q~7&tH+6KR;tM^&l&oOnwC=T5Ry!QT&Ze}L>WQUG>0P? zxART^NkX4j<(r<0on6YM5tZC(TnE%NN|mT=dRQuNPm&@r6q0)l$D+?1lnDN;(BDcY zoHZjqt@W?_51Wj+hD5_9zweH)c4>9C(S`j-*M_wQ(&m1OY&dOJMq(uhb?Uugpj}y` zb8OcYfD(xj`Z#v&*<^2gt6LUqCc%gF^&Fm+*7ADlQ}eIj2YS5XDYn=p_E5|YL>9E! z2?>(czY%y2PwzdhvvD<{Q-WA^PUN-^;3tTy-CFL_0N9n2y#Jbrg7Ki6$oIj`gs3Ik zd1ERs5!FFK0cDZsrPG?%4(6uUB0!b)rV7MjG(qvU_40Pquwrzr8zi4)L>w<5jCKv4 zH7DoC9xvKErjQ)lH+kJ+b4FmjZNHQGq`?ig0D3_IkDCib# z_`Ar%gUi#eAeQ>)g+zUpy!Y@YZUdo1R}hl1#-zqM0+X-fOf+zyvl2t}z^}2)P$=#3 zx)r^g8Jj5HPQ*&R3y{@PqzQKGBl@081X4MG%cv#lhkp41cC1KyxHW0V>a(ekc$r*V zaFaXprD7rjvf5<+IFHF0UGPi!Cu$L$AH&P)k>rxMEy^XO`|MH0n{2vI&{ohu@7CZ8 zK56d)o^kHq06biLs>H`*)$Y8Vm>{FuSKw~*8#VSHfi;ZUhbYXT0nu>6g!VaeD{&qL zaIoYN`mjxch|T@3O5V9sz`YtN+Liwi$>9UjvsUuF_pct_^R_G6Vd~7!=I0(RZ4*$Q z&lcQBY{3&Jqr!wT^FnhWx5W+eElj=iQwix#WWhr7>jC~tHoYuOW7W@XaJ?sz+&t7! zzT>ztV?Epc2|WkNt>^guiSfoq4a};_E~4qb0UHq-SIN4lBOJSVk-OrfQ2eH930^E2 z4iD5irU~9tcrjsl&m))LQnzdCh7}2jD)(z|J6_yG8ZZbpOx24H^>VG8TA}UiMD5r= zv1-XxQk%f+KffS}ma|+SA*z){F0+2K0^hqZuq$B)lb6Aue_0bN&dtzxp(rAG*;pD` zFyURQyN@+_H(Ym^TWhs2RZC)iw}Ahrf#FHbBna1-?Pel+-=2#cizRjJ`xqUi%X@!$ z;_m5v@8Y*r@FV}jOb-sAtn5m#Fw%A^zFAT~XG=GD(FN)I>NkWd*}KOw`w5TDBGx;! z&Tsjcrm|a8p7!?SEfn*s4^7>v^mnL^58n@_`I}1gn;d1^*-6}kS7`s>y2#|9;_t0W zJviz|YD3gQt|QXRReQ_~aFT!)f46FfZW3gLCow|05J=Yj5QZ$WdlGI9wRI1hpAP-& z1TJYcO!867du65{Fh`I(SqffFi08!XFbxk4f)q1j83Y`22CX zI59N8pfvKE3{xfP|Iq?;=s93Bn$!Ha>-*0bP;QKey^+Gc=6rpo!tI>f{7{-VR=cn0 zF{Mkm2NY2VJOWI9&Q$Cq4BV^6dB1vSD#^d`t!zjIy$v^C|8E3#qmPCT2{vRA!!5^u z>3bcR4cQ>VGZtZ88qkpgoUbTX{M*MKH}9!F#2wN-#Ovo_w`=T%#|;L|Jf8ZVPOhwH z^Dvz9?<(DZ=DmMYy6%IRzoswMA)qlM?H)GpalWsm4={QS{Jm9!a+^JbF8Wd{M~hZ@fFTnaXQrU>GW7Fm z>Wbmt`55p4miSqb+ndp~jMKJ#eSO)LLHM>tg@@T*#5-wgdDy9h^YRevrnnF?`R~3D z<+|4R$TxR@oy)m3teJJUL-T7dP%bUq0C5Gh3x&RwfQ2Q~#%&U>U{G;8|L&dE;{=)jq zKD$P6vi*SG{pqhN5UB&6*8JN&Fh!O(l{LSrsMSXAKfO@qOaC*|(gZENCN<-)xVMA- z3<)SJ1B?g+PJ(MV_zH=eosKzWmrOT#@Tt~ir6$PT-^2L zUI|_K=sX|qMtT_N#(okF-@aWGo1b{-TBe#&5PfX84=2kMYPOCF-z@~>c3iz6P7|si zn+~TS1CJXkjZ{4_y7ToA`zC_oJ*~p~|0Vj4Yr}y7Y`;)-hl{HT5VAr>etWxl|76dc z0&#`=g?E7^^|UUe+0OL3D+qhxNl5fEcQT1eWXC@`($f6nf*g}?SF7x6CS(8F=|JTD#lyH|9eHbmosJ5_-FzPv8U;}dq-x>K$~HY&e!TiXoub+nX>n?SX_Ry64ld%G4FsU zyrV9wKuH}|Wg^nTd#l)f=MwLyzB@mq^!m~VV?#gkM@OUoFc}g^j>x;&q}9w%tIyvj z>xm$fFws4~SN&|tbc#hVhhDx3E|+vti+2E}|L%YK=!LOFK(;`4+Y&kkMtLaiJsp{N zSlx|(BoZ8kf}S>P8m>3y{A9{~SA z0KXGjZ@b#6v%?w39~xe|?N&C%Cck~h-_AlRutQt<$_9ZJhqKE3GFfUDpLKs;O7_7Q z?>`4U9*&{&JMcZ8FN-1LWP?%@0lyyCNn{`vnmid5z2GWXV!TkAME>jY90eF&ed}HS2}T7lg3*4^yTiA!k~7IP4Q=hGRc_s?H*l zn?3X)tA|U@Ikwqivqve=j`N=5(5~TW6NeU%gYeKEk7M~w z_0`6{z5t*V!1}3I0c;4sQXQBVc0GrnZIa0S)n9KJgexjQ#y$}KLW;P^@FaEh z_OcV2hoq4#@B%Jm2|Wxo76U@QV5yacNMd(;d7a|0NoTmr{4a~8C8drAgz{{PIyxmOR|~9n?<#)MXo%(eao(bZs*;*|LFqQRb9Idk!O$0!m_77`KLkG2s z#FQkGqlZ%z+Bny1)%Mi%#NW-k^KZ=)p10R%>9V$k_0D(h8;(Be(0(pj5$mhN>W_78 zyX}2+IRE=sv>XF#J^Ufzma9%{X3fGZ$TCTd9_f2kZit~>jg!Jq>H!tMlQjKSeMdg8 zD|Yt9@(fQVXFX+mfXYu{?+Pzfj(w2@mYtbymx`Pjr|jWyOVm=hCsw}@O4?U`aWhW~nVG4z0|unVa@iqwc%XZvjt`nWmP9HI@{*uPx=4fq zWsXti8;l>)0bZhMq#uhQ;qo79p3c^ZcI^;FoCm9OQXOB*&yjEz%Y!t%Jr@4VXqsj@ zfo0Mjsq<5k1)Lc#z%7NEQvSm(K}yAtu_qitq7PDc`9z^oHh)f!)ZtI)#+jZNRp7n_ zYIRUqlF@?&hCL6m^yE8j&IgUq=?5X)aO0e2n^zq)TC}L$9pmLM-yxiF`tf1LjE?4m zVhSz1K7`4IJrl>>zhfTX{sk1rN85lQtbvGEiAfDcwf{PoS1Bl5E%@UQ-E4e z#D)0WnY`T?`BFV7Qke#x8Br;P{OvQt#qIdIU>ghHVg{~GVxx3;8_PyEVKzBI>l>|` zzMKeff>47JDYQ?W{7E7JJto$FaWyh}BzPsx0K84kzf|&D`RvfNVbS*xSm?j0xY7;o zg045|3hPu)srNSIPR|U@h~hiKF8P^#oV-p|{W7*tx(VbUp$c?bT$XVL(^2%*aQu`4 z6VQvXLR$}!rcA`qo9Mw6NKmcZ4FcwqOTPztNS&-bU#f0JJhH4-Fc&3(pF_Gt>7Ui8 z#U`|zifxUpn((#Lz8^kx^oe1?!Zvtqw%MlPvP;ho4|&My{T#IPo)DJYGQeepuLt6; z3m#k^UcBQW;dj^ksrBPizVN=V>npcK`eHp^iyo#}ajh5AL(AG*E?%OoSpPV_3-?j@ zgL$5G8vdPYAjVxOP%mTs!Ak3`>jhd#qy+J?(=$U?=uyefjMQUcEKhmYDVki!%sidP zVeR+E?zvLdR?-BN`HYCt1QiG(L()lDuL4-#;i&*N1Yq+nHN@hRB7tE^%n(3ek*Y2i zD{Cg9tA`d2gcdonTLum>0fAm?7MuuMaUrq`&fWyeaR96gq{s@C7zAp}2AmR`;Fwo# zQiop$doTvT zVvSnX60f`O{sqlj-hIsIhnN1cH90w6x5*|Ohf6OxKRoi0am-0iOeyW9H~pa#*wH_kPR;DQw3%)86c?jarqiK0LXig zx-m^Ou~#DLjacp`N)0}jl`D23z**)0loAUp)2ffMBn$R3v z|8&0S6|}Pmd1j&`u>x4HgsuQK1Ym4|v13I1Xz5p|BpYg(hSk2cSr4K)=8CqCq{vM> z77$4w!RQJ+G_2q9W3@X7t<%?`s&md}CiWRR%hSC#tVw2#>3e~!)!Ym8{n3#X zhz9p60KK?tN_&I?GhWA|Je&~8fRp!-U25ncqO~kvzI^oMlfN5|`uyqPzWbxgul;ZH z%{LDhUHI*=)>;o4;G9tii^O#}a4CL0V0qc4bm5P$xFPJc%fGdvI$Lb|&*749eI`6) zja6Bi zQ30&~>{I|7kS&uj1_oNXD9kFKU0h3U#?EZ6lTq!Hf=CJ|)*%7iG2WtR1B_*15SUGl zVk`o?!YfuK$NgmTt&CibRSR|*uH+eKm$=A^gvNm+n8=_QQSno;PjQK<_ffKba- zgCc0$qE+bKQ>Z+cHOJwF4CDlOWhV@XHTEbm6x5cR%dWV3^uCXs5U%?}x4UnropuZ- zpY)|Ld$uG=c#Fv8G%Svdd++M7&}?;H4VnVb>7}Fand8n6ANt5w(kEufG~tl_b_@Uh z-o4BUPL>re_q#glWx%z{>m6I$r39*3*CKiYusQkEXE+|;MIErtRxS$s$V~ZXq zF+~0w;*E4ZCF&q8yXd@*)_YMcWbQc@6~G2$MiaZygQY+x7QzS`uR(X2Xt7ZVzJW_R-(k7!QpvFikK<AaSR9f&mpAg(xp#&mKK+ew=C>~? zx(nlFtF5+LIOw4L!v{Zb5W7MLm}cqS9QT^y@tUIbC97E0gs{UdhlVSD)=uiU1vSG z+Wd}PDXC33bs0>Z#pza}sZ&s46f@1NlepAqX|RIeh<+^H#VLDAT{i+W7~9I-pekcB zS5rQ+9RMi(XNE*RQ;xQWgtG)!G*v(?M3FPB_cu$HEemIV@3PT;@BLg@w!FIl`LU0E zO!&_;PY#cN{G)x4rz`fg?12y#{}E0?4x{7zZ5%hQg?7i?3&P`{zDJ1Jl4-If$55XB zlug5>-}-czF)@R*ic)Jz^M5O?0gi|Z$kRaCh~mmqJc4vnap0+I(0qiH)jBy!cDMFM z1WSw-7@1L&AyO*L%fWo>SwfRd{FxDpzj$U0n>=vliWvewx>%X(q|H5+v)JrD)(pM% zXn7}^)dC&-Az3OtZlcD(dQqhU*Z}A@^Dmpkq>U6f)}fZ-KT($krp@yiAwPoDc4+O0 zw&7vG(a{~2l8Z~jPQh|`Nbay>gfNcLOoaj;UIR6@jYQhZuLUI_egM{z#uUuW2d+5| zu)$asE0~59V{#X=G*WuV-#qJ>V`3x&*plO4q2T9QC9s7#RlH3PaY<2&;Y6VY3m1)E z^x8whbvJao3s+fXmGFTN91`Ah@cv;m@RTwbisN=@aT2rdD0F8thXP;@!484>*L&2&Gh;bB!IjIuRG5E2NO5n|z zcT}eYnabh9ORoyMzvJU!@qh`!gDF8|ez?Bh@af?&v3|x zl`Ec7XQ~8QQpsZHa4Rb@>dNeXfA9zbfY6zdIw`Qk*^ektB_0D+nKYq<(Vg6y;8vAd zIn3J-aQb;A_VR&XC*`P#A)NsAmG`kC&?|jG{U_vGs0UTEvlVzA4cz9N4<|Gk8 zg+@oF8IuZQ^jr|_MX`VztNhN@h!&&LBc0WDA3cbJDQ)ReQXoLnRe>b1AXWqa-7J1^ z>FCV|eKLISM?de3b*;75TH%5Vz7@83{9{w6_woM4Y{MHvnEcy#mzS;@%K{tgqHzD> z5FY!)e+>^jut=X2nRNfXcMiuK{&ulh!Gp%hEs$A=`v;1OguF1m2^KG*nHvDf`>OFM zR;(mwg>5Q`Zz+L;l9H%9OZ&_i9elzLs8Dnu*qgxinDVrIN8wEU6)TonNu6a{nx1Mp zoO2Dr{fRFb-8F;7CZr=h031orljKdN$7tP}#L;)K#yzDgemJN3FPr(7`PeOh80wF$ zFaj3i0u4A;qY+JrCDN6@Ez#3@%KKoDh_&j}cBn|tSI*L^-3uDSl^B6zL3>Z;+0 zBMu91-RF&A)~vXKLQtp_^NPI<7f0~oLT3^2n3XeDomc)m6qn-x7jnpZ5C3}j!k5p| zSXlh-5oagJPoV1h?>_|ej{0#|OB+@<+yq6cTSp;CZZ zT^T)o{kuPf-QIpgn19E;Meusovz{3~`NDJ5ALNjFFLDMV{B}-njyZ%Aa^7 zstd9ISXK*cKx`p^pGlm^0YLCS`HF+^U$sXs3~ImAnfLlxtj1`((96TnhV5SUc0tDS?7%0m1$H&ismtl zc6+RgF8@{7^MFsp&Kj*jhaB>*@SzXBd!U!0a}_-(C?w!aPw79q-%BY~q+}mwFDrC4ae+|8|?qDXkoiOrHS1op22Q0*fm7J z4wW?rmRYhy%fo@5mMj!N_jXettT!X`W?p+Ht<7>}FIRqZc8TY=x)3XXt(3r-oPU{B zX`oe7($ZR)P0+ajTnGq)l7x{THq5qyvgz~$NvXFE2hmN=^;uauz691$W41V)c85=A z7&Jy51gOQ(ov}Z5-uKZX2jv1ti-2>Wo6$ROVI*|S6JajD@|y6fJq`_VYO=&oeM&_4;w{SGs0w)2aE`m1-{daz|6(%!Bx_D&3&n71~n`BZ^CmMo(X;} zi!qDGfb_vU25re4l9NRVEE6>gvG;IP7vg~IXzsXtk~ApoPh;9(AyEU}d6L(MaUQ4T zvZ|)zF33eAeV@c~Xzh{t>`4&h{&n-E>!Ff!>#>mEU0sOuL`RYG{34)-sjr-l4>g@! zgiSZ(zB(*md`AScmC7HhL`bK`3K#z`Ub+&k_GPkzCh!-Egf)MQNp7>&XfTRcAe z?1~?TnbCzd&cBqTaXnZ6j`M>tt||GkI)Aoe)|cGwm@j=NeE6gP;qLyfx4t?YedyaQ z6;A?7a22}B@W=7<1q&B9n?CDJqkI2$e{t29#m*mFJpslBaZ5t5zFKZ~ag=8+HGBXm zdY0oa-}%A-WoTmAz6?>ekbKOqjg^} zCbN#gd;fr!Q~(>;)M$YzGfLn z2ZsKMvBpvmihAUobFGmVo@=y-Y1W>q4W1U`mI{WT6|Lo%VKK$|6L1fNFH7K zvp<9#c7Bh$?4LJUH{5W=$@*HUk-XG%Nw;}XGUDGn-z$2}9$2_IZ2a`yMy2sG@gXy3 z&It3aIj31OPKD-_dTmp0h3QcHCy6`Ilpd0UKoLuFs)!}%Uep*cfrp(jg zz6nrln57N9E7m}1I=goTG88(WzG!LQokwSb4}tdb8Ct9r5nKI?H0PDnd2q+TsZIaM z1;UvPW+UHe9XfckQ{& zDzj%wMg!R)h9y=suW94p6tIp|#WZt^gJps~%cgXhkMJGi4fCfV5rK!*oXHDnEtkGA z^QhJ#(iZ}j@+La(kH2l58Kg(y%wWPwwZJNXt+2dF41dQ@CS69Icg`ZGLYRL6Q zVQvD$c+QiDGMza-Mf`d4m_RY7SQ^|$9I_T!VnbwE69LojWeqmz)j-7(Nz$ZbScBwl zs9DC~VnxIVPTGDii#w>8=t(;k7-FT_WC98f(7(+>WTDeE;Z5&6DtzaHD_SwHSH0>L z;pCIQ6lNv2;eh3}WImT#ZAU&OB@E-q7*j=H%H8^&m-A;}D=kThclnyE zY-VRhFX5>W68qD$(B?;LEJJ)XvEB=-kQD_n9+g`xvi!2UK%gSoNWq9BpF~p zAUy;Hh^IyRmJ>=$kYKkF5jL{i|NQnPqkRrOMprM^*YlqDoN)HpCxaX&Y?k!dAhry2lKJ?#x(u_&P@M_byJXWs68FU;>r0G6&yS>3Ks>7 zjk!`YE&R)>5=S3PS5J(c@efwy%;;IcdPzPb6~Ox0t^(K~fL)eaNl}kMo7Nb4SnGVZY=;#DD9pw_dpXvLA#EHh5&eg*3T@yJ^G$ zmSe=miZL;j&aEVvL8<>gdBKd?VY4mY5a!%^r+dn6zx`(OPqEKq>Mk!GS;SpU9s!C` zPBgLc@mAZtE!=YJe0PrxH{3AXcH3>*cs42x4|~WOVg7aJioe%-78VM4^G+3ZZG8i~ z001BWNkllPm3mx6*)~>3p_y7cENh5m3ps2W=yyV+GnKEc`Sj`sHcOv?68X|Yc zGCp!G&nWT*z%0#Dtcc%Qs*%E4TS-*_TPYDC7Fe#mdF!Q>x|ST$_4=`P{! zEN(UTnzNgSKdfV-bT*dxw6iZ9z2)7Xa?gppbou2!4%=?KopaenOLyM2=cK}L^tL)n zs$h+?ip2R0RtR6nrqyW)l++3yk-YN@tT^Z467cnTBf7jP@`$c8)B0UkM-H;Q3TGzP zfz>R;J|?dg*nr@QY4q4o)DjK6pPU7!_7;@C(E_uqL8}89%5tN65sitvQCOB#B7FzN zLM#9TEePE=sp&5s+!ElH4)!>%M|=Nn0+%%4AsoTqeDiykjrKn9=+;j@_OZjmLGOA? zzeN>6YvFZcq{z3FlNGSkWQpY{>Cii`==YPOnc*SpzC27$`f)J#{PDZZsryiF`-?kOnsn!&Y}eCs%|)K|9MvEfbvUv3 zv^A&JZu_YhVg;}YV8h(rc|}a(Kus$NX8u5e#ZbGYS|omF`A$VwA-NS)#(B#vx5{v# zZ41gYc+5iVdbx2A@3_B5O_#yaNo;wSPI{1#ap_<=jpZK8C!6MJFWzT#^IzvVE8t-d zdsw*nrr(CyvuE}o=VS;A-V!~%?$IdJ2xhX=x2KW{LI*0 zDbqvSExFlaagR8=q)o(<$09$g`LD)tJEk+9xyJFneOZo<1v+A6Q;{Jx2G)Ogss%P6 zT&NCAQh|LPmZpAlTJ0#tyr51?Vk&5Pq0lTA31{mW0-3JwbIVE&C0`%^bOqV`K^kSD zTC>!@RxOkI<3$s^tpM1?jE}AG$tlWm;1xJ1Uw9%2DIn_~X#*7)^&wsu) zto_KoIbNd>7F-=dBU6|WY5uWdVBb3bzryZ&f6US7`Okf7xZw0p(B5+vrH%`tNy}_O zOpY$R>{nr@JwD`qzu^Y!g&S|YI)VSIciAg^|N9rX3DAGO^3<@=`fGzG#aZUXb0%r& z<7*OT+4xv%etYFV?0*KJiLt00^zwMEKQr1bpV%^bNG8%8zE+(ko_~oclCmrB%buA0 z%)pv!E2#=#gZgjZ1!94<-Dch$L`*I&fvoRa&jY%Okuz}X@ja2OD1agVMvOvfz38$K zTs9ysld{NA_}G2ONOA&10mf^p(!3Pn6$6?r_~&44QgR^g+Ke9moIS&B^L%o`ZoBOo zPWX?{NRn8A>P-j>eiuRz@LDO>=>PFpM%7pst?(ibeBbfmKTi6d`~7D>wqNu1Jzk}s z!9FH7!izutnNvqc9Q$?m`}e)?knqvNsW|$>hkYV^>QkR}-@p6quL(yT`u2|aZ=T#B zmX7T!-7H}%jB&9?(0Y?XNo)^RPJRYfK>4%rE$j(MtC2QW9VUBz7P{88A~K{}U=_et zSOCNyre28J;zsJVQUMKk{V*Ye>bF$mk{*TB31>t-3u6^2oxS*XUQp_@;o|pFBqmdw z(TORqXQP{4%+Byi+Uv02odkuXtjpQNj`)~D?|u3bOEXYp;Q>N$INsB;Od%_d*5#D~ zdDG)h`QGR~hkx1a>so6)Jly!_=sN7F_gZ*E2$MGG(PbJKIqbe{p>$>^N-z6Dv2k!hp*WzDOEIX(aFPZzOQtSEX5v|% zGbUC_>iVLP3f3`ob<27RauK}Caz`agS}=Nxn|RC@+Dpj>y?CxHg$1Mt?|@zdxV;Hxm{A!`{UwM)?r6B#fa-13|) z7-?(eob1w}gW38=r&sDiTbic`2|B&a2D|Ek(Ts=uUIbEZ_(jioCI zEY*kdEW~7g;UGm8C7jUmq;2;e-7+W6;$`N;ylFd(7v1`iz(E zJG$ojoAe$tXU+`s=H3+6Tys|XY{}9lY`EcO;r{z6kwgCd{wF7gM{m3Vb>M*7Mc>^c zerH*w(4s7TXq;x@VgArM;!x!~X^ZJ!L9ug6Movcg8Mj#zg-(0!qY^fiGh_9drUXtw zhD2~@@UH;Y&-xX>21J8&;wY!yk|OAfebJ@oQ{}x2fv;2WNJpK|A%RdjlHf1LrRG{4 zUF*kV(B+fOXhOB|^clHu zD0(KkdFldB^-7~=-W_*`&7ZT!X!&x>tb5qQ9vW`C>6)<0>={`(HNV92g&{1uVFj`W zyJBLp6T?>Kl#%DZJ8ToqJpRLmoIMuglBG+-BR1b@v~-zu z@mPKJ)xx~Fe+aW@6M)5k`@Hqw@QrVr?pFQ51K-dbcF3Ni5%gA6d{N~Gla(ayW{Q$n zHeF|i;7XJ(F~^im8RVR21l-){4)@*oB|TqWNV>*D$DHUvvFyPRV`3UQ0JlAPT4agC zv1(t#Dd1jRh!wzAN+d)JOatD0Xk5}kp#iFX&$TKh+*z}d!d9X~%lCFj`@mAC$*=;<_hIl$9TFrCp#VqX#lf;*T`g`-cjvk%$olD)G#&%JsoqAk(pQFoa(X}BozMaxaF-6yp$1jalnJ|ImzneA%zUE8h44w~qDJ zTQ}Ttb4=i{f9IX|4r%w_Dh6uboqyeH3V(9wv;IE?qX-=&8Gg1q&gL6+*b+f^UcCJ$I|Jg%yWTE@gLP zZZPE*r4vT^J5S|rA;$l{g%%Cd&9{1Uxb3z(=xx|9`1Gf28m>6+ODPbmbGD@0JZD7E z4`L^oiRObxesy&0ao=>idho#qgpVKjLHF6xB@4p_8$CJPcb}hned?D#)a<&`3(0bp zdM_ELAPGRZh30^O9wU6O{Mkv;Lb^S>;nGpaJH})RRVma}a^|Zt3(k@(W)1EOv(yCS zWG-h+ha4xvhHGrIe zjjmRgp$5Q<-Qz{zTO;h!duT{Ng>Sn#hnR6fCUR zX=C9v9fK$bHh!G1r)*43`3K{y!d>&$cO4f_J>xw0S+t0*`^m{+lSi$m)^gfME0BkT z3yMANu-p5>r9b+FB&@L19aH%vt9-p))ylaBf_U|dc>;dFVR7e7m#+%`o) z2Zic8>uAri3`y2sc4p}I3~r@|_sFRm2#Mk=hQargSq4`eLH zm~%@-fX;nhh)tJXD!0NcbI=YSPFSX-FzECly$f}AXF5s--kjiU<5Rd?0K4FbD~IWU z?w6%YB6#f`ZoU1kwES;>{bS9GpZ7HCG0C1z%2jciD}ip99DVPHSA^a7J<`4U?z{hM z`0DY;mSbOw{v5*cIR2w6mbIdv%M$+gEv!Cfo_o)O;jvr1)&WVhz;@o@dEt!X50eJF zMvpA(Q#@a>iN+JQ*(1avarqY$K<>TgwwSu%m+;`6Fy}9S2#gPXGKt)PSwigic6q<_*wQesu4 zqXIusehGVOY-)L1hFI&Y^q@?JQ~;|0wo(8#IsYfgdUDz-+_42f#Gz(&r9Vw(ShkgS zP-xZ__`uaiPes9$EdnkXy0s1kGnKjn?8AWmpBqHKK9@D5Bu-6 zGdJNiOIr(-Tb=5G7r1PMta3=$5WeFRg@a}Vn6%>spFQ*pVz#|mSD3&d^SdI_YNz?K zq)48=v=CbjrsIR0aCMLAb-3;;({CtGC1GrJAyxoeA%#|d)Z7{Cz@V-}L?w3BrdgCE z_*oRw-zF_GU${y7;HRcI!Fz*rUUK@7U9?aruG}7X5)g8->00|6DlZ zKQD0CY_$G5;rCaZl6q5eTt{8P21=Y0h{+_$pGS&cDRxG@&i^k{$ViDKcEi@1?##64 z!Dm&@vL0QAT1@&Na#9SDuh*h`RWY;s(H=N|rnBUv_ALRI1;j_|JU^mb{ntT(YJm-~ zMydmo!bX>^1%V%7S}4F|nISDX&~{>=%YwpEM}@K`2Q=&+ui5cFJsys<0-m>|?BKbq zC$oTjVhC7mSX`MBvgp0z&U;6XdFJcgZf(5rKZonCy%G{Q7`zw$A%w}8759%7};`0z)l zj6kvuAO6ra!*70kLbL8VYiU-TFIMMBCcBaoYcY;&`Y&$?x6Y+DUGaWVQJ6F5hVY1g z%0{p(nHR#67#E{|3l=wFy~n&dELq~m(;WPc-I}95^j7ZKOZ=yqv86Mk$t8BiTcoP;=Ya{tdck{9O|brFzJMXdJnGWQb6VIFsY-+1WhwY{F{0q3bYYH)TL;J*{;tS zj!R#yvb2)QeO4FTAlSHuZ_5cnn*BV&uTLt)mGJOq6LB?HOTs1#~VROWN6 zE1rbHZ%CuG*+DKn9<(-0-jLTb?UT=z>mf(o3_5{YZ(;{a!6A1`LUHWUWy?md-}i{{ z!;61Wr1I-`d2#sar~i#Dgv@0poXPKX`}}*tX3yH)@#}M+`>gQ83u4?Q%K}&sv*-K> zk)eYy*7s8~rlxf9SdTAVv~+S59{q&Zw`P8Q`4jJM_I~}#Ax5e~G>z3kK*0MxxMXQq z`|&%)Y*GDqlT9`bH(Ve0Fr(?>8$($3ceku}z5lD>xD&qZK8wRMufO6O;o%QkLp#sN z1v#(g#rVSW0C+So7F?mU{e&K-lu6;24vQ3Xj4dZ0%T4#!L?T;$YxD{Oj7yLL(D9ZT zu&a|HTq7xr>kG=A45@Ws{YRq$*dTyWA+sK=TwG#(Nnz5l(;Rd6BLG}Ff|{(sivkTz zze8cI;6Vpiy&_q9v}%KV>bd=n&IeNx!0}H4p>!WvXC?$ob!5kU@r=<&KYa>4UIGB{ zzfag~-r>37%< zKewbP<6GV`VqX5m-<-bi6^|B;?$qYEtX`&;gOm(;4Pd}ES&*zjx^EVY|MShaHd}4? zHtp`+wFx&~b!M~9BOlJPN21|;h5@erGG~5x;x-<@w%`7x;heKi^tXX@+N#B2N1^IoX8up1AYqzWaSq@`)#YCG7tC zojsl7IGSYXwnH?Z{_=U@gNONM%W+oN{NH~ktiIYR+5?dQi}|s|z?K%l7M4FVv7?88t@MxL?HClq!ouI7?B9$^G-cFZ1?=FID-e12{4b<=tIG;Cfv7RakK6dUX_#%v6yGio*nMJXHJ+g zBXb`vy(5GNZ*9A8W93s5!j{k3FZ}UOe{t*D?6Hpuzq|CLWL%j?!z(Muj}G9Zz#Wt- zRGOr*fSj3@%drz6i4LY@YV4Ig6hc4hP$J1tWWW-?`Z_V1qCk)HV_`}%#DN*+c*q?p zfK>on8Mz`^h$Qzp?afzuv%v;cO{kpbDVqS;8p;;(zA0-QQkwv zI#^pQIB0kn$0pu$_?Jds{koq+6@UAdx9kzV_BEO>m74a35MJ{9t;4rYK2rPL6stpExai;?rli z#r^yTUv8fIq)qL!zI})9cG>ID(f2RyUw+XaLs;&+(BnntoPSl= zeb0}$-^Fn*H~j1yVdIU~qo|b%dKUFCJf-j4l)lT|@6PLi9)|Sbw$i5y9Xcb1`#PA? zSx^Nw!L{JEXc-c?x%hd))tZIaf9|RUHXxUh1%_Eu`C%x;gj$**RdAV*FFsREt?m`E z7HS;nbxhdy*-zDx99pjz-#?m1 z6E0;Z-TE(c=7r6l^Tw7uIOpus!j3z>D0}<_PqmJT9%V~6KK#Y6`arni3bKfW4<5DQ zI;psM=8PG>EF@Qoq?RhravcJgP5|L98eQkm0>~5(geJoNJmZ)kBp1*@n~o6wN_wYD z`bz5*e)m%((l<Q=?h=cfdZogrg4Kms6|lhDe`9i(_`&E1ZChD(n3DH-^<$n@zWh zS#isK^1uph{*(==DgR)FmR0)E38!8h4mdcr(z1X5w*TwH5$}JqE-L3U*<(p8c<{j` z;RQP%IQq>szH`Zwp7g}VML(c_Q%TzJD9c1bil_gg;T5^${_TEOPj=ytz8jwX?5ELwEcjgr zO{_sGWQjRTK^|Xv=K+TJKlb(I|8;$M=_?QM^xR`)3?Pqm-;%KGauLH z*W+E2)+waq{t#l6*V_qXp$T{0b6BkoZjKRg_8z&>=Z1=QAPrT$IHn3~eXE48eyAOC&9 zgJGjh|20JGS9h;z!j(TfzS;7Lk97b+f3SJY()g<1{2^?+)BZX~PVVu%=RGG}bm6&$ zB$lWsTpdEpLLB4Y)xVz;p8bM-L(Fi*f2SXJSa{7VwuKKRk;0!XllX1ECksZD9hqq- z?sRh9**T)-?&R1Ih0ORI&rA-6?K6{~4<)R3sdDFyyq1jCgjQl{!Z~|F*4cI?8G4LO zn#Pw@02|mmav@^!hIX>ZG6MUZ^KF2ENw9DbJL-0_OetG*R{%K=99taEA9#1b(`_YQ z*9D*m15Bp;H+G*#zSj=jxtro7j>awuO#v8bUec-!36iz&mk~!qxx@)f$ z{&eLTO>|d@cb33N1W(ia>=)OCm+X3Qvxn zcgLv3doBBjBR(A7ebC!l6mFWCVS^1f4fo$4-B9-Lz3+T|IP8$Ut<8|LdPmIz4=fyQ zxaDiY^5v%eue~-Ua*RgHLwMj9A&m0Ih+}}y3K>!>^rJBrGxbX@zw%FE`&Uw|N%kOu z{OQLX*1UShZ8ed=lojeNx#bJ?3b)Or(Kh(+YhODqykYlO6&4begsEqF-uRb0!V|aN zJFN|QBz9rh>vcQGx_yf&HBiulfUa|&h*XLvP001BWNklEUJDKR<*Ae#M^;Sy=M(=^q1& zZ!+0TgiW9Nrf?h2S(CS$J!@9@?*GT$cYsS#WNn|G8^}RPVnz`a!-5G67%(AX76n1f zt_c&aB7%PAfa0oP#+*?MfT9>sQIQ}Z2#A1ypybTu#_9jBaH>vKS9j0cxv-!;&$BCc zrczhesrTgb+5^B!)~Nh|e%kwa#$5mS&b_=fYu5+j^bS7wK=^v}Fkmk4fe){4{TKN< z^ZmQ&j#uIFfu_4Zlfr(V@Qx_nC1ApoKuElz>s)7Y#)H7d%ajoHyi1K3cYd^OOjTsJ zQnT56Cqhg}cAJbY5kGO_h}owEz+yH?IB~c?VFYBW^;A2OwZf3T1WPAeA_B>AC28aL zI{QE{s2Q&TYYe)cknuUiW^y6eJMrbW6XCQTeT;L&xa^@r--Hv6Z|B~)l0~p#!xGr{ zz#gz{`D&xhf%~_BuReGjQY~7T)b=z?6OyvfP3JhclCs;FF8ZyW^}3i!ZZ~wP*d|$u&4yh z(C3Jvi^|XpN$C|!?}-E!O_&LQWdL9<^@L4mE|7><1qLT~5v%$Ri=_w=$$68;tu+)} zv%0`l%@#QR>>IovCNP(3{WnC|*Bw}*U&TCChGwFG%%&&%{PU+X7(VI|jNXp!_(Y+G#7fOB$0y_b7=MI4CtDBI zsw4oG09fYK>}W|Pu%Nf0=pcxK*2i*B8PBa{c45X!X|CrWNl~-ekf=3(JnDPz+{^F8 zJy65`_~TcwPfL;sf=u+t)gLsX6IA$=Tj&0G-7vTgb2*s$+6|!oR zIH;~ZaP}3rn$jBO6lEPFm2eTqAmdsE`t&noi{U(Y_O*}ThQ3c2+JkMk-3I2* zn+B;Ow1d(4b2uF+J#dUULOJ(65stc1cc2@3M^Pbjz2#>_=gn^zj!z z!#xka0#kmT6#z2kCeNHT?!K!p9DewL;X6^j9-x?2T(0aj5!|~9uMisUcnWMN+Gx!C z@tghqW7{1_&L)iuvuVb)Wb$&^0Z-GoFf-1|j04kSqk553465iEVK`{U+!LA5SE=?X zUD8Cs+<`=H3Uycsze5rLizd{{p3IENe`{};UiKYx9nw;O%xy*wxdbc8*2yh34!)`< zB-A7vFo+FHwWT`uD7Se$@Foa4?M;}AjnpY}25QRq74fJfw<0f1f)$gwoalLw@=rYX zM(?{HSsp_D*=L`;BR?~f2JhK?Cz$%pE1bbH00ff- z7&K#h_!1^CB@4c)rI^f|D~MTuk$KK-k4Qn|D1l*nF}AF)C$q<3x(=jq)T~tE4&kY! z+9iR^5yvV4uo#*{6`~M?uwrt6=T%%PRk2YOns&tS1(YZ!3{8xh5I6}Ngn={CGAsf0 ziXo8M9G+`D`y!C`JS-h$tW&Ij&ADdnI)CTZXEV2UwGm7mwQ%7qs9UGHV@ExaJI^6~ zVdD)ON}<`l-JxisDWNfGqE^l7F#Pq0{6h}dTLBZh7Ir`ATyM#;RmOb#w%iTIe)Txt zJ$bu?XZVSH_gkOj<$fF=pl}C(!X_C?Qa%88mtUM=d)KVdd$)F@58Lf>DwLCWz7)%A zIdhm_uXZglAUVtY%+s@|ezVo?nnr0K7tJWz38fhcO@?+td}m9fTyi5cg90mRHN;$8 z7azDog7*b=Dq(K)NhXdcGED$14#2nshUzulH~?n06orNEA1Q~spW%XiKj>L}l3NvTn zB-ZanLCmN@Tvj$r2rLc0T_6(e^=Vxg%6O~{(U!o4jj{=r}5OhYV(Yb zpjM3i`{8Ep5*1?HD@r7=m>u$$ zO8`TSlu{R%aab0?2uLw)xx$gcs?2P+F*Fq9?AvM-V?Jvh)6OIqS}Mh<`cPaYC>>I) zcrC4Bk^N=6!LJYVuDk7VW7k@=VA9uU8H;V%nz-~eLtKnD(1!fIeANaxz3Uw?X);P} z;V+3fj?kDe)^f}jPeSW`c8rMo3gHUksO4|*dzge4Wh1Ow8<=32^5D?pu7`;~v9qB+ z{r~Su|GLZ12}ud63T^2QbZK1dB7+%P5wuk?T^_NsDY-28{DyOrL$hHYXw}|vt|{%K zLzV4J@1p6%1{O_p34p}`7?Z%{E^!01EQd}HpFDWN5uRV0Az3v-B&C4+yrus)9X?3W zN@YNn^YN;#vV05vMvHM05a#W;w-!qYrPu5P8F?|3mzR6Z4mt-|NfY|HyzkKZEcj%@DaQ`>4{ea$ z9zOH(DCl|PqsCsbbYjdFR+cu$(Rvr9u?AVG<1;IiTXxZRsJ# zF|ax-y6zekV6oz{bg9?zW7G&NI7ViZ^1M8s)y)#&CWxY@U zsyp12s1!FTr5>%85beVM7P6lbSBTUoT%ZIe7^UVwEuu1zQ*iSEF2C_1cw^`&QZW3piSXE%*%O_u8NsR3)O`K?_K>-kb_IN>Woyy6TVG2~!wS#4Z7j2QD)&MH!Fg zvEp25?z^>aU6I#x-(ZQ2VIRE>#~gFGJLlmBmRy%P21I?blPJ=u>hR{fU&4@gN5O)H zOQE==6zbNl0asjp7F=-d(ctlT9$Ui8=?HA)opZ5m#ThMg-&aKlFAgPh!Pw-=OW(G%yB5a5jh2#4iREJnVhz%8orwz|)F3F+N^&u#V?=W~WD7h&eTY$?oBs~GPz7JDp&VfTaTw$D- z?YD2rOQrxgs`Hkw0VtW1`wf@L2$d25D%B~I)%?TSftFW%#y za>C)pc~h~Is4i3zkK-DXU?EiX#OqglkCi2fno`o2%7nwyaYz+A`LF$U3786K(>_ni~XXR6Ik~zJ|7Nk z+O%@)Zwg=o3sTLIJJ00JWj#gK9Wq(PKd?>J?c;C1vx?0Z@;$_g%`9+z{-pQ(?HV@_ zduyF<15{izgPK7{Z9F5nHQ@)8eaiL#Qp~1BZ%PXzfz-fKD`ZA3nBE~K?`LUoxRjUx zSOQ=@Rj0b4rGIF{p zO2=wr0g38|@zcEH&lV-?@x$sz{W^0Z5v+ow>}AtIqB@z_EPwD)*r@`y!vE6=yJw!CQ=ghp_7*A*E0%b zrIhZpX&{PtEg*}bbM`ZvI{~l+z;e1WSSAi#!v|{v3DTiPTA|)nC9Pyx2x6PUZ132Q zcsr?_Yz|HlgQxK!&=4%VrBnqiwH^_etc}{z7^WFXl5|^T_rO3-nQhefbnvC0_F>;6 zFYxC7A&l(!ke`1(4BED7?XXD!!1_rtyLYA%B6&JHmBQvwL*{fsHg#v0%_`G<-Sl3B zRrU1q7OsLl_CL=UuEDnTm^UJ%QhDedq20|%bp=BMz@3tK0Hds;kQTOL$%P`=NEu4p-8v7eP=uchHBlnOPGQ699`lUx^oD%nnHj zjB{Ohc=14^v=tnJ8-qCA4&$k_1n= zMg2Tti4u^F99eVbE`(O?g?$1)JoEe?)1hwN+QEs+RsfXFk2`mj`#o#MKkE*aTi0gl zRa{mMbLK9FMN8Jg+BK`8w5$wjRIdTsY*P<**sdPzzU%go@-j@_S*bN|y8SFItAP4D zoCam(rbp{H9}R-G2klE%%gg-`wnhNFW*~*cgicPTzeCd=-LIT3)6p~n)W#BLvQqdmc2N@`7@7$nzP+XZV z<`rp1{}wRFIe<3$4oM{d7I~5q0E;0sfB9I>($WKKN=@;UO7-ZrS0aZEs$Rq^N2W!S zaad;NV8@hHS>ysz4O-mIUrC2*ZDJvkd({(M^`HJ=yU)M#&a2Szq+=YbV5y^~R1K)) z#O&wPIsS!irWQ+97Qt!f^o7Y&;*%PiOY))XxgFujN3Mbz)v78EcGK_aZ}XNy%L6Vj z9;HM3Ht^AF4@vEXP|evN1=EUVsOH1b-q4JQ-))*fx|D=s(Tp}1xWG)W$F!fh?hx0! zbj1mPMH5>BV6g!91Gj;RxGEW3f=UdhS6^D#rcg(Zfx?CgGMqE!Ws6wOLc%%PUVfCr z#MCuPZ%>1p86aT-VhK<(&eF_KFSBzCTqBiZJ%D`<@8->4xWq8<&6qv`cHVhALt^9G zsOm{&%K2|SHk!?ZS$rBMRo(aB_u+y5FGHD?HY;Fg4a@uj05z&tgZJLLAC5g@Pq}=1 zzc=So#m`k#QVxxFIRi>db*iwYO&Y-bNkd6zRK<%5$tq7Fu}_J3E}ltHNnn~Eq^1DW zWKgxCX5tKYdtyVg0ncn_F}srPlyjFIje~E7I$WtL>dXdqcvW#A@h@O2Y>@z1%u8b` zL??HqBqhydX%9q`19WqDLGDa?Vi>G$xSh?-HR9t?<8T)kNwi?Ki}UWZL|*kOl3=gys>TD590 zX3Q9P^UXJnWXpwx1<<$mg>ZAv(?zQ1tUsG?Un?ro(5P8wShv2&SmnIQ@4@zs8wRAL zfQO*Qw>cq1f+U`f_8pQ)V9^J*GABA~64;tM2pgFAxW#>~=N7+< zEZ9^J9`|=JcVC2rM!c_#oNY#&7k{k*o0)06=1)XyUO_G8`@_HXx?gpd;ab_c_5Sef zH=j7X4ATJXSz0M>dX^g|*y7OV%Q((Uy#ck}v{wKlzZeh0Mtl!{EL;q$Ru=)Y7uBp$ z01dXO3x~F831^;uG&I|(0YKW3>S_x-loe?oPVI6heDT%z(AA*?#u^M8HVlqG{&=J9 z>eZ_`i1q2y2a1XW5aj3QLGPQ+hkiGm6Jiq!?(hF*dptO@!;SF6IJ5G=ON07Cw=+)& zsJHDkBK^5-%)+KiD=}L(Wgc|t)_jETk4yTBl5^vL%{DhA0G0q)PPE8uV76)*Ug*ufH#aN1u2XJ{s{YthVZs1)mw9b*nw0$9Wy#vI{zZ=ex7m zS8mZ&+l#%jYkLod=U$-dvhX=>yzxf3?>;kbing9IWeRlf-W_Jmn#I3nm8_qC`Znlt zTAK_PzWF3Cx}bqCjDj0(8epvP;`2JeGmqSC#ACT^$r(NvZ$^P9PRl`QM$94hCJv0~ zJe9pe5&(;StBC{_bLvGhU*X6kGNo~NP;RoUqCYRijB8gFqV@Nr{ug&zVf36(;uU)6u`c>F3;{QYqo{h1tB`d+$By)TvYCHvIYLpK!tnC%|vN{l?p|Vv)a1 zeFK^_sF~^ZZT5DHS8RZt_BdP3%bve|y942~A&-)f6agY=1H&xw>TkpQQUi|mMs%wY zGhsB13KW7Wq!U)OdJySHKA4s!xkDuN1U7*&0k8zXaw0-og(&n4NI>y~V5kHHbm=VD z0Zvf6$?Lc=oejX``h=na-RpJodnBZw>$xfM1wFN7DsAa;>A^lnbcY2C7xVpNw?|=N zAuL)n6Kd9|7TnX~1ppPxv)k(onf#e^mcSWZ`ojDLX2$Zc$4(`37Y8QZim?mJJJPLET2j!Ny`;hG*|Rc7ZA1ylRDK;6)##83O*&tZdq;k!A!v zxx+|;AqK=-Sm_9DNlgAAD}M2@k>=&1q~zz+lF*$(T1@~f0kAA7$ZXC6nK3|E<-Nda z4E*@Z_z@|gNsd`X_iK=0@hI%l5SamJ^uI1sEq6bQf70!f~{$e zEr$)=LU%2_Y^=(q!MP&lmTuj*w(W=m9^F}rIoicR-c3Z+C$NJYaAe!We`N^2@X(Oz z!=OEm%6PI0vm!Ew53k8IDyNIDzWoVK>HZ(%t?aM^tN%42_@=o1>u3FBQSUMf27l(< zWpL187X#xU;yw(#CQX{;^t4;BU;(sg(+1Y8S)+#O(Y+%)`S4Z1vS|G;Kg(8bfSvYa z&K22xxN5C^d-&jk54ZCsJNb%rZ`uX4P1+HX|11^Pm z^A@Rv<>jSd;~%3*5U|u9(6dXHZr7B=gNZbQ0~;QHob<4AId38OO0I^NgHxr3Cc>bj zk^(USeDprB?+`l$osqGJvAm5E0E;@?34q1i8~(B%#QCFfT}B6Ab+<1TGa zmX{w*BO`5UA#qxqI;0q8rk*mEYY8lhI2_=~iPID7QmRCQA=SUL8J~FWJ-GGmCynWP z_PhcfxW6y?P7Y8}1h8?YgQJh~$BN$ga>$20|J4otS}Zv6xXu7a-G*) za}7NA+;b|PZ_MWd;ow%yHtDlfcJKq*T?Ic+n`?N#E|~m2Y}cfLuoodO=VKg~I%h(l z64a{CBRz&fQzA4V^xtf;3J{5DK+;m653w)fb5gsr>7D3vsm`#mvAI=tdTtL_VCSXe z{H!!zB7sF7qXfWWs4TsFtVEI+&m{^5n43`KtWkg_!}*B;R}zyENQ|z6VqsCSDQfBJ zElN(&*5b*AlnAMFhw_jj>+Nyn-7s{-Xk&NYejiSs-T(j~07*naRQomPbh0A@N7+h% z(s|K4N!Jv|G=L9ho_`;F`q>W|-+>b*On{axTSm4oFE59K4mt>a{Z(YPC@jo}kKcb7 z4nMeg#`9EZ!&Dx$ZQm0nPZ3TQnS5LxrVSc2fU#r8!p=MI96H1|-+W`Z-1oe?D?EJX z`Lg|%A$j5APdMW?`08sGlA%AtUhfYl9@EAE8TP9vKVs92=obJDqyw3^&6t4V9r;~3 zSPAZ(fpsZNdPQn+tbTg9GKwyxc!K^ z=`k~wC6Q6Zov=UII(ShbnL4f$cMg$&12YFm36D!`RDDM3F^gpfC7f_BQ0gGlzQ;H` zG>fSW9>VG-t2g^_{8`s|-;bZBc85Li@?{I4dUZA@)us5N_E*``@OZD-oP0Qq7;S8%#720uO2(sc~Btt5_d~J!$aNw2Xov09_i82AOSO6QV*i&iPA}T`5?1PAe zoE|BkK-GKBm@iZ@NGVA2klH&%EfEYlRpYR$is>IljSQZbdc^VkO9?({RjKmYtQ zG;G)~7KWaF`f0e~23?@@smE`E3%eX0+pnq{y!y^)xa?}3C^>F?m-I#Z^zPjo?!5C( z=P>{I&wt?Y#~(L-n=*DV?A4s51lzJcj}CkTZod6hV^R0_y#jh&eV)m(IcY{nWvVlp zuTU+Awqr(Tq`)M$7f~b*0*Rm*#rP566Lg9tSM+)UcZhuhTX#qTUF~Y*++Z1S0BL0ibyVL%s!zvOe%qlR?nXO~O#HPvz;2wxo!wZf3c_AEg!c~EI zD0RWuMc2sRjT<+H&p-bh_Sj>O*mu7B?z;nvlVTs{T0VX>lfp8OFN>YPxIrB+8hq&0 zcQ6cmdZ<}ME(3>^u(=Bg3Sji;(OgYRKlA3zgT43Oo2QtfAo$)Jcflzqnr$`gT+&Dg&_M_RN4rBmPV3 zy43+kjU-o0O0^wo7{nDL&_HlwB$S!hDkzc3@z8x&X-Xb-e(UmjC8u^?aO zN+0z(`|Pt}#0a6LV%swL$5)`muG?liT~6&gUwA(Z8!;w!j5x`Q4#1xO(MKQU9*Q+; z)PUKuXT!h${cm8NnD*z92YSLamqzbX?BX^-gZD;^hA!tnXpG$T%;VwZLAPs9T%y8v zB>^zB)>74H027jebh|fcM#iu(2@Ux&i)MsX0o9n6D=Xz!G|D;e5T!Ph2u9=5*d5|E zOl)9LN33et=1p*jx0E536Nid7Azn}@+Q`$7HZHA$m!gkl15)57IX0p45U;|hpsY7R z8m*-HnAY=ChHM$EDZLFfHz@MI@i{r55jz~$#S2CkCufq`jNj(LLC0NeoQ+nk_J{Ar zupEe%he*XbfQ`%vAu9e0A0$ikR<<;2lR+b+zn5=oTZh~X7uf81%$DjIt zh6L8}xI^JXR#rvDJQ`jXk}(tKOWT$)I1Akt<@r;`(54Mbf>JiF6gO}w0>ui>W+pa5 ztt1vkGpo9&CN(WsRhp4*@eWBOu;|m609XvQ@;ES#ESjxCQ<0EjbgT!KS~UZcwakVJ z4h0xW8WQMbfR`4Qu#}4-K@rAI01%<)fVxAD?xzKi8GTh^Hzk~TZ@xDQF1z7=V`t7f z>oj=fWz(&mHz;2PQ2cuicb*p4e*Jw3v~GK84r7U~?9yhjQ41F?1ZKN)eXhLnN_gp| zm())?@3bBKI`R3O=gww;BRc#CCQLLF*V6vkNM6~@i{oB*O=swTr@L5WHse)kTQ9}K z0uDd1pBk2}_n3AE!l-v26NkmNuUZ;f)L^KRMv~6xxmS^tl6IswBOhPe&=7r0nxW52 zlCjCJxeZOwssueF*jY2eVk%W3KsteFhf1z{N!;iY0LzKK{N+EU`Qc_N1Q|DiT%Ju# z%45l{c%JeA(vqyiIKtbH1UYgMi?*Xu8zE3#-%CnVn7dGxNjHE@&VzAjs$wjSVUd>s zn;+Np$dhk+w?FW#v2SnjarUpRnBY0vmKPOlt}85Lq$9YLP7y`3x7nmci$PXH_@ zVoNXok=^Tt+pc5+)j{V`$0ir3N|q~Wi+JEt*LA{XD#D{&osyVj4n;c)x8b(S+&{?E z(ik!!gbA3!Hm-Tt_)Pj@QW*U__uP|kUf0utd#POLv)N{ck<813=Kne${`^b0w^!z4 zODuVLdGOFf4*`?5D2TCiQ|y0s`^EEyLcN-Wm6^IyeU3Y$AB-7e#yjz|m4hQk+(PKs zci(;y+;Uy#xGtOZcfX<-ex5oL4r+g^u@CJIZ3SO_FvuvWV&wKDKwy0DthGfXDh^D< z_dS%xdb`%mnsJVYRU8G!16O z$VCEUbEHx!E^V>Q?RD$cg%3ac5Li$z3u?AML*9A-I3^!JO`z}U&ZLc5c0H@Y9&?m!qh4zcI7r9`CfRHMTZGf%`p zN;W5k%KR1Mq;It@J5IaMTxK$aB(iQ%*uljyZ2)qqKWJO!O=vv_?WcZ<0!Jji{~t)) z_QcD)sWVv2m;U@dcPcb)?C{bnngNi`MC}&snpjj^1`T&PGwVCADy5bF58eRRTy$*K zYp868e)qi&{U3cpzn;w`dEtbgeE1+7d&GW~UH&HN=WkdFqkfzP9nUg@(ogMh1Pp!o zLE{hwE`7qhh0%>kU*?%KBrO^vMsCSK;6Ju=-J}-1Az<1YM?IFMB46DhUc*C^OdJV- zRi4(E4J;r?C84^!M&11Gr49C^k z1Ef*fGR5e`rBWi4zq5V^9d{ATm^IJvj$5;OA@C&h#wP`^VKP7!6pCE8p%|L%)>&nW zppr!8-(Gl6m!xv<-B&}eD>`O5U6l8wjuY#AT2F`;50> z2UXjxGP75GAAj9n@b>4^p!>zzLzK;OVb_!4xkqo65}2Mh%)TWy#|%#lsNX{X4}r!` z<7NPj{pd(PR2p+_j}2<{Z_CWUx+fA?^chPeuoxOtabP+gge%a^+F54KLR$wc$JFE?_7+Od|ge7*0$`yp%)p`O#}VyM8GRzDnUWu4=a4HU?i-HzTONL%H*dk8N&;g6 zu`8CdKv)J~w1Y3|fH7M`jvusv`1%FuCL7Vx+j*2p_V=1`Pgk)i~q1lL4`m`Gq5UIp%E+zXK$ zC{e3{Tf0<73sF!{X4T+_SvxNTb>>z=Uvz)xrzo^0C~6 zCO~bclj90+Um46S*1cDobG<+QWXXBOr*7Rk@YkQrCT2-sEDOg5RtJm%SmsifvEyDI z?6&WDuy`qR2yuTlmE?u9{WWhW)ZdI=h-}_>hy4iME^_BD%;n(5?bY-NFG2HWjdPiz z>ibrdf?u=(F2Cg^c=64zjqwLR)(0-=axy<$;-VK7N(3pIG$V;oIt(JiC+JHID$b}8 z6RF(fwOWIC5Sw1bB3+_9=o;7%r09LYmWLV}t->UCi1K1|-ysQrB>HcOB^zObk`es8a5E=2V*8ThCnY$QFiHXna)lZ!WwH+RD&#gaF|P=mmPvkP z=4`euLDwvUKBp2{dO{L@i0OvS*Zh!kyg&ca0M?+vw(!RSR)R#AdFPv&E(R!Ku~b!~ ziN5*&UV$f`G&%2_US5ceNR<+h9yn}{S~aV~ia#@n1B;fZqBD{NZDQr=6l~x8ELgL4 zLq?BUS&54desaflF!a?v`VP)$=1tW|@26k9n#bWCb@qes{Ww-%PJh1qU=SR6Xe-Qv zW~lK6sOdv!I9AE8wPdB^w5Ux?OGqYDNI?fzqZ1JbMpBy-2(zgk3jvNYqWT;NP<1ex z64(+OSOQ=Riz!{ zh3>{G9gg4_aqT)w0nO6(*0PrvX{2)6X5RUi*^A-e z!!I)iijyRApH+;o^G;3R*NKCxYPhV%d3X3Y=yu`%Wz{FFaVGmU{ij!;`7ZHU`>SL@ zSq#F|hwRh(gnlq>rWqW+{MV6CuU;MgJ3YJNObZaf3JrqJ1XG1-Ibn06w8lqLZGyC@ z7jDyxU?N-(M!`yFq7T}-g1$F0!dcnn@V-ekI<#uI!z|vz*3>lFoS3)eFCQno5V775 z+NLZ6uxSt`TqV{LvI8D*UXmnK5}T~Uhw&~l#}ukKi1(u5jTo^W!xknD*diH+tQ?IQ zMx>%vS(LM7Q!a0L7-eeJ+QeMJ~i_=L?fyI-hYA zy!!0T*$$UM`*<(K;?gu6cHH&w%k=oY%vA!r?&@>lp*t@KxqvfxoK4k)Wzbl^m>>4$ zN8AGQ7ibMYVL?6=E&Q6O<}rt%R>x~qJ(ZBP+E9Q9p-bW|Xgf{0A5ruTxY`Q{R9!UK zne&MTX3a1yy%DfgsounVUcZ^t%n6lnw+EP zok?Gpmtv;Dn31l)5@cJnIR_RI8`!qn)`x|Eu!Oyq4XkVhKuJs`<}405L+ zt(w$SSxgNRzJC$+Y2GNCE>+t0_l2yu<@uG)!jXyO)pWZC@Y|GEp)e2*QKgSkxxvyE zz+%7{vhL9OI#{}VjT&c%rj20!+i5Tgtnz)WBUZaqK{JoU~vGp>_=Z!Ft*~qf|8A{rxg`vMdQEF0FCint~f4klqU7S zL<%@rmrQ<7>w;l>T6tNZqjo$A>(A!d`>=Ci!NMhKXX?~p#VlFEUdsl?0c?KdF07DV zV9|IThJNHOh*;Pq}q%r`#Wka+FZfPsU#9u)EP?vEDpey|HwJN zILRoA>!Jsi9!_#eh1$-rFC|#Io@@zA&d-eo#=2A`T7Z2I@9NE+FN!^~PhnvptX{=x zblDQvGJuj`ovG|EHQj?5;ac*F%zFM@#tZ99C6%fTj`@=!|@4P9tvP#DE*DnR|D`5G$VraS#OB$^|?b{s)pALCk$3W7G z3h35OzSHL#?Y<_cg#wfCh%zfS=p?=d%|zV^HcjGumAOL_8(8%5N&qZ|{Fn`lmMC}S z8We83R#2oXzKdsN(=PZfiO2}Ea@wdwW(_Jq*%G3islz4l(Rr){5zzXW^SxhZYhYqv zw|?DX@Vp8$4ySB+l>-=i9m78V8M<^gC6P>T$*A0kt}*u8w>gX(JqWx?XA_CHaS_*> zKpc}xLVNnqpgw&5@qeLZ^DWF}-awHw`0EyP_2Kg$jDst$ zead)M7j)?egCD!i2u~3Wbhrw3uvKzYbr%*mY@Z8N4oUuCOII!?G=#a}_bW|aU;|$m zm@3dqB(O-*PXH_qz+^7OP?4Xz$jgF}q9BP`cfm2fTME-|w&Hh9oB;w7)?`7#7UyXa z1Q}C?0;rGx)i7ufKjip}ylFG$8Y^G2WDeA+UBi5uvZ|NBB=-y_pK~XC^>tL1k4z!W zY)2)Qyu1{AI_yz6;^5|$8*CHyn)l~=IIiP0@W(>!%wS!1(S+@J(B_c+VAQaOpjw_* zNp8X=SAJ+2|HTG4`|>B?!;xl&{^$S8W56QMyGb*SI4=jy1Ze@ibS+nU45N`xs0(Jw z@ET0;D3ifQ(9hNR#8Tp2C zu@UvV?NYey`qQmAwoPFJBX5&+*J$|hK^ZY}t9#N+UXO-M*Cd_Yu4)I(CqzA9rLEYcZ*$Q=&%46S$#y<#f&l}I?WqD z(0JxCWW@q9%1jz#3hq!US7aqX61rk|9$EnBN@SoJ;9xAEcs-<&G;uIV04xEpoXA&a zqnE>oU=m%c+{n72(@IJ7k}<~8T|E%@MV2OlorV8_B8ZSedh!yqgEw(BO^BEc3PB7n zGYz<$bYwOV{BM^_`*|OY{KnX~S6&_rXPeZ_S7hQNdT+;nS*nO7< zke|1u0ay6@^VczZrw1ja<p@Bnu zg=akM-d@5$6Pq$;a&N2kei(Pl-lj^s*2tfK*ym`hPrcNLVQ(^Sd0FXbU+m|U;`o-Fmk z-X<@DBqTu7wxvx7C;{?z3iX6U$R6R|M_=&n9q^K|Zx7smCtQ0i3o_nxabT_&_3gMh z(CLg`P#Ti(Hd~t)o8!DLC&Iw~S3%9{mGLLfPC{F@x&)?9p9jYr-V!|DvLV{W$AC>I zXyai)iGM9w4eQqxK{{Olsr-D{wtgLG*r2W)Kd0lq`8$`FfWJ{l*=x%^Xw>{7NVBXp z@^f(Oz2S$EFZk?WOTk10EK5(^pywcYKQgY-IO5ixt1LEF{8a$>WYjZOQa7{DNN_}r zjFPfR#tmt=77`<3o>6~RYCxm~LT*8-QQPE>jyRRc=ERU}digj-O)f7YRXQaqP?9)Z z2-}t3cHxj==2eSI&7>SS3{{jIFL2*kfs<;k=-2-0kdg538}2h2b?I^zyfF9)bGLXV zj#-=h();<>zu?^NcVy+6=#sipDG#o_rW@RK>$y<4i6yU+a)3T}z6gU~{17%4m%=ee z9|R-cy{i&?r7!bJbl&2-_{?>lxzMw`kY7xNt``k3)_ifdQ{dSFeT+>|uJcG&LbeKh z)<~Kmy;NX7u`L@Og~oh1C!u8tPA15ibp&Y~CVdW>kTei%od8($5l#RshQyTwCT&gJ zwk2&(DtkQh+aUB~03C_b;*y-ND=71JlkV;IELe~m zf+YpKphWTW^x0n96E6{cq|T*PtNr2o?>?~rtQcTp)#XBrdKK$8R=~~uo`aWP8^JmB zZ0m*XzS|D)z};6tr{n)6O1G;|Rd^BNV1k2~F?%s|z3?8GF_Xp4iBCa6KCEB<1wh&Q zEgn>=c7f6R%d>AtrTMYvJ^){TH^Zny_soFaa7njQrL9ZGKUxb^QjH)@Jh#gB>jpeA zhz2(@Xi)GCw2h17;y^_J&jeAC1&3B_SDwzO{A85Oq|63wwtO9T)gG9vMoR!J4!~B7 z=c%O783HRHQ|AcdFl#fDdFavAo@LRtvjC9a!j@xjYlKjFdqQvlg0yYM=3T4SsANFT z^D8PUpkA|MJsMEE+iuNZ+SKpN<)zC+LCY#Ar;_QZo%_dXxb^mD;F~d%VD*|H7*NTJ zNnCsH)eO!*??kxn$}_=BTY=b_PMTr6w4Z{JUrvT@7yTa;6%`x3s#Pn5wM#w&C@;!z zw7<9H#lfSTF+i*MeiW6ILA^aL5A4nKv2R0*W;;g!m}{Scng=!=f}2e8&|a))s8wZKj(XxLI3CIA*iFbROgTqo&e<9t>vgmO!q_~bbk5}CG<1u|SX zY6TfnN(NPVZg96+&u6wQ99N=@p;-)oAQhyLSmZc{+Fwpi*KeC*7zpm#>NHrkVzrWV z8Z~MJ^XE+os%m&a%l`qBm|q=6jv5bdz4Iwdn?8@L=~zv%Y6W>vuWoJV*x@kf(Y*s~ z->8;&Ss8z_vvHwKaN&~GaLJVeVDvX`*Z=+Z-5th{W-3@i~^Bm6!0< z|Nhr1Xwl|IL$cm!$0jiErw>%=qA-&oGL^#fR|YK`#Vf50H1>YUTTlTKFV#Y-t#g8R z6BT0g;Z6W7hWP!Jhh_Crc^{C7FN?Nz8evADKG+Tc=L{?j)g6O6b=m&`oR<65ve3A*M@h$sjioZ7vY z_xac3jrgO5)%4Cxf)%k}vIbgS9<)BT4= zSP5(bQ|1XG(&fZStQHAa#<394Xb`dtepW|Rh)GJlMK$l3%0|1x8*C?Xq`ES+tme!W zom#so79Ap~iQi}yXmS*MA8xsGp!dXcW^u{BeS1TnTdy^DY~ybL6>GPe>(#Z;k}@9# zzd8z5u3P~}A9*kwe(2udRaki+<$f()xgPr5J{UgxavUsK5*=jCy8LVZJ>Z*9{|nU% zqDU>9+iyh6bI8^DK(9;(3>X7U#`W zXo$kmAdQizEm1X(+n|D3HJ2gge*gd=07*naRA@V8LQr&!5hY6hXyv*wyt)+P(K{rJ z{*i9^<1}oO+|dz7KG~c&09!FZNe$oghK~+?KmS82kg-E{ zPcd_}FeWNibTxLa^$_!m#JgV-I`+V6gx;UZg$1 z=y{rZkRCWPj`A4Pk(WB1lREV1N^23PigA?0D*rYJQG0wy0=DHYg|_CrBm+Ht>_Ea( z--mS@HbT?AJ9spxv}Vm3@YkO+p`f5ZcQ0KGP|7mZZ=Ii+a~4CZwjyM}{$!HrJ?yF3 zRu6sqLFm|izle?br%7HCcUax8w9KyJd2q(%17Y|lrt`~F58ncpoqxIv>L(1LN}4TG zFG*07sXC16=uVoEz^B!T65L2tb=8m1Hv$m8%s>v(0Qext@(Fpjz?{~}Fk;T+b9xO9 z`5$;lZ9TM{09Y)5F%_cxaGR7khM4jNZA@Hx61r|H&PY!n6C@ht8Yo9e(4n* zyLO>|sPfeS#b)B)&3pVav$+@cB=0Bn zNTl9>QJbkGI?WK;-o6HNir$LU)0lccVtzwA;kKN|09_IMDG^>vnF)YJpZ)~E;s9(V z0WkZnbo33xhA8^hhmy7lcs)5>Z7ELSzYR|-dmVJ0$~Qv-Ys@pC5uFX$EW zj6Q7GdvM&bhw1MsHUMli6aQ}67p`M<%pv2wF>ufQFTwBg7G;$<*B&k9dGPwncfy$+ z500?(|1%{o4l>;KrFp`ahK_~Hu7AeZ#$9&Y4rWh$U)JB!_GhIAr?FVf`!|pfz>)dg zaIu%^+UTqfno&Q;(Y>ZIX_uz<>XeUUph2K7}of$$4FpT%bMAvM&G` z|C<0<0$@4ajsD6B+>M?VvQ%#M7&K|v#n7#u6rHp)Z-jAluI~xqgb^#}Y{?up5d^Lj z!ww!^t@hX1^P$y|-2zhjvZYLoSW{op8>RsG4zInOcK(0YnZ1S|CM|%T*FOlq&0Yj0 zCD9o?^78Va)&6_Hm@fuFDlGzY-JgH113h0c%EieHF0Q3gWJL|>%F8FS38E!`y6quH+P=tq%mdkSZG1x!MG>lik$X2^UgWi zyaFtIxDAJ~{Kci^uw;1=y!^%}81?D5FlE|Yo*6$sKOgqlduQl+Zb!KI{1c&Wt(1=M z$^2oq!j_fX|8yz%8#H|bduH3RZfx7OZQJVDRwo_XwrzB5+qSKaZ9Df{`#kq2%rOV5 z>eUph;{pFo-@&Z6&1JtneP(|Xvt5N|rI1p?u)_R3Rfa!`E$V(yaaO!!bHw`j7w!nx|a7f%NmU2E`$nLvNXn>$yRN-^mzNT(z z9eWR17kHNs6P21R?Jf%y64A6<5po7n*{MS2+9d>m{r!Q5y45>rfJ}OLwdPa;ah`=@4lwXNFEY z{J(FYW$yL{k?kNlpcs}`V-GHZm;SMB`OD*_N1U;k0XSzuBvD%TFcT!43@w;O&(U%%U~SJL1%HKsF{jozx1l{C{8 zja$jUCPdFk%u&=x_`Ruj+WWr)2L)BS7@)MV|!d3 zb-dzH&2yUo$4zLVv0teVujgyF|k<;VmPSy zlU3Bi-MuZp&YjTpdR;=>XW?M*m?R@ydGJ2K$oj(sRJFRi{TcQRurWUqNGib$(=yVM zauk_x=!8n?2si+j!kb5- z4j-j+UC~QY1*G>lHLR<@)`tvQzAhEOY9!ry^W!}GqRNCoI_pDv#$kCuX_Ao(yHsqG zr|t4nkUX^8X=nM6wy7gK;9Ho(JUH%)u-G=a)Vb1TH+;LCB^G2z} zt0I^+;8upL7JGE=*qM0#0^GmgY1Xpt3)d8@!=bF_ zekB@;IPL(AOQLYD*Yrt6*e_#ZTFKKgE}tTy?P(BYo}}5V?G;{ zD)|ql(fr5C+i$@ktpApiP%Z1^xk&9q-z+IHqCy-)NyIMTk_FhJ_;t}@p{bsmBsF(*2N1^s&X(6=3?elXNEzHszpL(ASrwwl zzK`_7H1EZH?KXFV;pyq=f7|HMaTY#jpc$5q7PN0%E}mhbn}8Oh1+%Afn+;) zLe>Y-k@6=EaC}g5LKEvQz*i&{UJ_<~)wiZY53+-QzncM5rje;x;PiWH&4C$N!n~1y+vx>x0-gir+OB9KHBg9f+Uaxx@rf zN8dzsA=v^>qu_W7&hCLBmwe_thl9>OOcDsX5bm`qi0LnQMCm3|WKNj|Zst|`=711z zd5QJj)7uRDcwhyNV9mxonZ_e9t0~->q-P&Xr^}F?ri{iIa@Vs3Y<=%N2kEyXAUfJn z!TlsDJ)_$7nYR9oYFe6*9E3KE6`f(hS)OM8F4ouYxoPKlx$I(UA_rwFSs8;%K_hEX zeTI-SB-VsnUABXbJe!+%F_8Zx)HS~bA)ib zMzhDA_CS9HdXj|~Gr>3bsrWnJN3S|ymB2)4_@cInOe-!1u^005hY8anom1jZ(?xO)b)BkO!?(avW38)llo$;+ve->&=8AK{68t$6yA86~%dU zu3wDdT`%Ekf89td1M6Pv1wt$z+uyPT_VOT|z=qwRA6+B6OE z|G+&8TSNE0frDntF3gyN0YHKy=}bKHzHYzHOEgWO`NIw) z*sdd^r-uU5-?TiX1Lf>O)XdkN z?%$Xhvfybe{h-AQ=RRal#DdJ3V?)7ty$HHE4pDC!F0PpufY8y<`m)y-^BoR4fQtP< zlC{TmL|?e4F60e()$#&BM-{q|4(d51L`=|AwYt(kyHcxZ1Naf!307+US;{qTGVu02 z){9E5zz0JsGa{mDhNH?_pCl-kMRlGjhpSsCzJls#M_584YRxh#Ax;_T4YE)*t)wqt z$>fVmqpbEFNSTcg6euS&=+5aG@qI&Ib|^_J1-uZ@2`fz>T?C8h zc7+mT*7r=;OPY}FNuUST)R94judGE-rMmtFGYS8g1yh1H-NFpaXV?k4l>de@`R%A) z>(55%cG<xgBH7lhnHm_dq}(Uu;Liu;S$bO5fMlMd%SGI3-_v&ZU30t5@Li%Ki;A z4CXb^b8tyEN=%M)i88#|uG|)q3q?jEAdrNpKoTlV7*-TaW)R*=CAkyF=D_Zo6f{F+ zP5|~TV3(z*Q*hHmK@PW3R5GN|9FR__1*VXN>Ynum3^RwAgudz_u~^OiPzN)XgeFtF zT0t5;9^vJHiN>SgV%8{W*a;A&xY+=?R+^h)fZ||+_Pm^>ne07YcY}1k^h1i~4@O7= z*<`~j3EPsW8U3!0d5V~(#V`edA0XSI`-jM@f1yhdW}N+ziv#Vp_2Zgf;qotw;qIpG zjip3(*8)xLQl&9KE=6vByqF5!S@ql@AhbUpIyVO&cM;B`PuhR5C8qT1g;KT zRn>G%tdZ?;OtMs0&$Z$U8Eje-dCxp;|W3K4Y|B0o|~>T1wxBYa9j_&1J~aebv);Zks7G8qbajI=;}+c2$O z7a7Am8hSFr`iv*WOuO~YTMsZ}-}YA?;^jVVEnKM644(`}$5vvT7Kw{lP-Rz(M);xH z^@siAI%40NLoYA_B7_aF zRFQT^A$Ifu=3Sc6k<#OsFa`Z0FWG+z(}sdsAsvQ*aYZF?Bvp8taT$k*%w0G{GFa0k zypfmZeo8T#V&R!(BVfUZaA9zhEetRhtOlVB$Dd^)>)2*rA7s3hJ(5@3Yr;>+sX66F zbNJW0(fPVj1acLa$&rylH}4Bqu!zkU`MVE_L`xs_bVqLg*&^GC`0zKH1*^8Ve#G5+ zO7U&3_cLc>-q+n`$tCV)zc>iA?aW*!&k_0N0i0^rbf4b3pGpxzo~ZGulLinB9FeHw zkekl(A?kncO13qfBn41RyKO>K_jr;q{^qq_}?Jgj$L$u2lQ4S=76v28VEBnsqCyU(_C4B;h(N6yKHTo}l%TBo}F>)s-!(G7nV_CnfpbiruVm1;6P=!tqeFP6f71{S-)ninD{ z&&P+{H(-v3hIi%*;Qf#U963WWL(|2^?-%`To6PI@P$^98QHD|o6$nBJH>0h4Bp7g- z+X)_<9Jp_bhCMOfm~!RliKw>7ozT&+F&c?-%h|?i zv&;2QJ{M9l&(lKaeMYu;w>$0QBZsF6m3necnJNf;t>T@E392b3Tp&8WLAOI>{MUp% z+F1;iE2il~bWMxV7wUi08_+~(I}$Rc6lBqgw&_0eATJoFR?1(dj{c3xIvWe|scV+L zq9|i$ZF2iuny5@qzDl^u8&9}~CqBF)4iRSpIeB@I2ENZYP3yh-5Zvdw67SjidxBL? z%WHj~iOoR8xOiTrVX#+--I}qf>!f`{Rgk9J*9j7)0DN1`}EsF_Q0tj`wC)}6O zo4|vQcB{RAfg(y=nt-|Ft}N^{<7=kA>;)kIXO9FJHNi&9816GAYVJqlF*{=bVPeW$ z0UL?!lVGrs{5qq>5;Pa!>88^CQ7^Y80h*z3$K@-XNrw;1u}4luUG;3SV*jlg7GYu# zw(VM$u=p`n<3!?M)@o4LT$$OxKXb?}ySw)5CYb&A^!Y@UULGz(D6gl%^+~ac$~%h{ zMdV%uj5NfmHE3#-^klL!Tfm5_T38J7OxgJtl$YQd=YO{Yjp$%S+-%a@1nB5Ng=RK} zcJy2*xqJl6Dp7Mnxo*go1jT!05Pn^O(N-!{g{p&bq9VFOf;;sET7;DD@vz}{ETSn8 zMM*+pghWt1eWns}7d0pTh%EvRADHJ8KGNEYCxDzbi>e=V)l!W?5@GiHLuS9NL2yeM z1qVuTFdmCB`}b$G_}pFghtcx6;d=JJ)B$PCp*c^7SEHFlJOZ zW&{aTe9|7-+Rjn0r>ngHc+0tbhG_gRxXZ2Na#YS?%7hM@=E|uZHMAy!4HF-hV-2pG z21%pscf;-4XGsDO!rq6ryu36@VWBYhIac!#QI*@mMs5+Q!#B6~x~N=+%mU^t)sXVh z)u!+Y2c4L!4dnqTls;s7TYIucsR4t>%=L~fH>ryLfN^|$hy0}JhyvH-J~;%q0~sVG zuy7-#zdA1YU4CZB(&riq5y0F`d~@b?CHjBt;n^tUfO4aV68avco z2=7hDQ4Wf0ARdOuU(F_j;R6|X-!{!w&`E+nXBzhN*%VhM263aEJKS}qM&C}bSV3&U z)NV6n)@L;DN-tROdEz+t-!aX&OcEVHMX^)L zGp;OLAjBuT0gpd$oyxT`>k!h4z{yes8#3AvGZ@j_bLq(G8c2y)uQg{%EaUNCH|$MsQLAcd%G) zXT{QY%Jd(GQjIsnv+ROk^&aHUm`anEqOvBCKkYyK?&oiDIkvnmTqvPEpG-{Svf1K} z-!Uv=JV%Kax`n|g7`WoI9%yUh?59g12qR1|LV)7)tdMGYh`IQkA^xd{u9Ql6bdS1> zD*u0)O1cCIb|GjwAU5Q0&_A&-tc#s`5%3_*2X$y~r}rq4QqIbJ$hUOwGEK52ISg5kyDywRFVRYhF9Ge zJY5nW1_wN0aoJYbAkQ}VqAxTHVbyB!N#3>KlN6yE4!9(Y3wIhDX$Hw1=J6if;SC#k z8q?fB{cHQ|oL4FcoDm85G*PvYCr2kl{@=A?S+jFvj>b;Wp@;vOrkI^&znGw4@kbk} zAc5!4L7Sn612IQxkA;d!j6yj^FMS8A>9srZ6U{5@c@qKH9sB#9gYSDz4L=okV9qS5 z3rf<9E_PHKP>_V1_{TFkrZ$L9^%jY1XOx5>c6|RJyShHJcUJ$^I;D#h?~**gQ5IhW zY<5m@?oQcq`SjCRx-Hl$aC(e5Z!Leo{G?tm0`Qr8knCXCzUT*$%SML^@%h>;1UC8v5)=J>#S zb23<>nmAo88$)7!totbabsdb~iilWJD<9NVrm@lMLQ{MUV@7-7|H9r9-0c?PXY^1o z9E(DHD|O~tFo_Q9NJo}9(y9lZgn(cD$55VIqn@LM@+~~efS;7B#}n$)BTpY(0=vqv zZcB~7epN0=c67e4dizY^zDW>&C=$)p5P>QQC!EE>L{EM9Cl#PQ%2~GtWR3L)`ZjE} z!}>Q6izs7Hu_bQ~#X|!_d=kqDDPH`4F2Gp`8C7a!v^zV?#le1}t#s^D=W!~e(QPFm zQ9R5+7E_>5cL)1k`_DJ70{@=jZN)PCgyE20&-l$JxYezN2VB(Z5RcVvPs+Q8{YD7r zZq$4d@$`ATPM-BLjNxIY;``M`i=zy!@(KHdM^K<%QAK>VIFANaxWs(&wjkWtfF(r0 zuNcywy$+=#tVnZRXR9E_8vca7!g3zqIxZkm2SWJdIj8<&&k%3rxBQTX|y1f^b@rhXM=7^r-J_c_=0?E zwr%}qMC}^3XU9(gqk=LD<>NY6WLD8I?Id!gy0N?s7wd+b){RC@gMFu(T|t+UTR=kD z8&!uY9G)>3&F`8%7$G}>DqAvZK11(2a=5FF4j2G|7-k?lNL4<U2k>3VOBokk%DBvY5|59!jRyIxi@(hjxm zR#ztFkt(Agw(fv~2$Sg`vzGIjkNLd!x@q`*6IeXC1>Dqmy#Pkg`y;}27oNI{z63;7 zm9yBn#lovm5EIot$jYlhW}h)p{WNSg_j8tD|Bv)0(iA4^V9vaoK+@cpoK&MkeA?B4@<-3+M9QB>U`*9^|ld2F$0yr_yo z)`i}hOk){elJ2-RQ?@XA2IwwAWTj#9#@pIrKnHARVN= zt5%5^Zy;ZEBqJbVrl}9Z_x48)hRUR~3r+6T3|M#V0Xv;r7LBx7u-SUqpV#h}8@I&mfMZhdQzxlKaRX49?D12>oS!3;N-hCaqeg{p0 zzYhht)fgf;^$Jt#J8Zgd}`nM%^G0}IN3!)cO ziKfU21rn}<XDc)g3>+8+OhOL!M5g_x zo4MA*gUTnoUf>O~f`6II(J1h&8H6AE)LsM~u|lB9x`-g?pO1}VJdAo z3OQ?(IoyZ>ON%ETt7zEST*0aQRamR-h1fE{t@Fr^-0$eHDZC|FSog6v`J<^A_o!AV zB14K6ieTw12novkZjL}*d+3*cKSN~GlB#ue1zW(2n~(OLoW z1&58)UUTS&b{ggm1A)tGtR>leY3trHbcfg!q#lbpWx@yGEPlEOKn|E&1Av$YRf?db z-4nA2f`z?ONgy1sm8iu7!$>4(%*NB1H@`G1KMsp)p}~k3qbX90?A*18p`cwc(1Rk~ zqv;b0(*W%ac+M!pu9q!>yz31h31_aYWdx(!6|6OJOHSEJb z2}omDgn%;*B(b8t7vE*wbc@kt+&!J?vl@1}|* zSxP0rYC|0wslptRLp z*y)zf8bQ|+Cjoyh{Nfbr|MBMnhWa`{k`M_<$}H-`smOK`<+o&q*WtMLtN3O%A@o#q+ z{JTp)Q*t6(jFr#{kZeE3a$X5@|kZ5mFL7ZElFyIfpq*Y!}sjtH90b&NQ` z*&7mJAHuCGR)dXj$a-dy{YW0P$PSLgP79+CiwwnAtLymiuk z-ioZbf9eEk{xQ1$=%vLa@3(tOvMWisoFj%@gE7%?7x>vv1r)m0^*{ilH$rU>KaTkn z%P-gUUuYN@LV3810l8^zPZ!J8^j(so>G(nQNMUih-@=A&GIqr39B1&0cu`a>D%jX6gjMXoz^y@VRH!~VO9?1DRBTO`I<|_Zo$jh;I z_%!Y_Cnz0=lX2MQ#A83;Ez~GD_>;4J;7B%ccT_(;zR)|hBLY+{Q5t?fOnk)N z=l~QnvZAco+P(lKqxgKdvv}+AfzB+9z(kv*#*aT@xCAk-!&8RsS_7CV*VZQONYDY)9Yh;E!-*=QjOGYRyfy*g z?_WvJ1v&p>udi}aLs+qctpcY~H! zc=WIKKyK#^kka1F=biwBL!U;9Qu3Q-F}i?UPBWB*H#2&!hY=Z_UJr&aiF175r#ILA zEvV71XzM$@>p$sM(!`#ghjz|#1q6CEkAbBm4prGn;T()nF@j>Dmp);Yk&&)+Z~Z#mGc@Ob7Z@J_7WT9MgG4smcmk#R{Fe3MI>z7=5l*FfTu3b7FsNVMZ) zD`(1xbBJ|i>i#;H?c*wwkvb2>*3HP7OiT7FTM1vfmBMP!_<$DxsIX#YS>{T45kjXO zqELQVo?&Ev9_QHrlDw&$Bz^7-z4Wqc*8XAjm~`FDJ_gwsA~+!9O?X71fl(FvU)g$6 z71Vf?yB=m>`jtR9zml-%o-II|9=zN7W}+>Wfwx9{v2)`oUaB_=dLS9O9sClQ9J~4t zeTx>YZssWsf;!&?L2)_HxBO~M2OrfM?>e)6xVG%gDA!EVB$TE>$7U66ad0(L+ftu> zr~sbP&Ba#kW@B!*uStWuwd9o|k`DZ|pbUFj?xhB;uJGU(BKE5v)MVDk-g1H@KuE>* z&1d^tD9{m7N~udl{JP|GG}=UI+=Q_NGUp76j6O1~Y_7w+_J0A>)P;F=eZX*_C0jziWXlzbcnMhgg@cJpT3@L3cH+?|Y z6()GGbnuzU9z048&V>sFm(Swe-RxatTv%ou$7Fc_tS)4^VLChkq97nV5?fS>;scl8 z0HY7H#3T#9E|={62UD+HqgXX%!K)8LuDdW?Xl3|(*@g? z78B}#3`Gs4f}~_B54Xj$2@QqY3X(=Z4#0-FCuUraO;9PQ3P)zKsNtV4l|w(Bt3sA|+IR^$t=Z1v8_k+; z_UljM3~+3&fHL+9aapNKt-5VhqOqO;qDxF*7K+LL%gjp`aKoN@^MRhqeS-YtI&;&k zccib=}4@PRy7u_;~*2*7c1_9c_J%uiqI^p zSI9DtUQ^sxzI5Jz>EhbMGQNb&>uaVgwEd4dHY}w2IQu<8O@|t0^bh*6j$yYB8J=2f z9Z6T~LSA7Ch&?E4857jgPbZVem<-dF+P$4o;;hr?ORC+vgYbD{U?f=)tqjXnH}tRp z&Xm_))hpFRh8GTm)9Kj|ffk5Xqc*?+)%Q8q>&OR-2ej&!`A-`BNKp&UGQhjg z2>3sTVqFzTH4t)UO^jycmAxu3Rju-!mEqBQ@>(E)IXa2J6x>q z+W(TffuqQD^vf4aNw4i}{(I;Vvvy)OZrRZ62K$@maa<%C*L5jf2z0(G++}hW1@DDG z4@|>j*co!h0d-Jn75PJ31d-uz9kGv}<5kaScM^}b?JV*j8HoXyI49Wxx_#Z>-xbtb z6NF9wEDKqo)7t(?T-E^GanhiDPwI-n8HhiWPczSO$`3`=uxNDZ|DwsIf61U$=oB{D zI;o=k{it9h$T=g99NV5fhA`lmsbK%TH)%IAIGX1JIw<(HqSJ0IUko(eLFYt3x(KXN zj)u2Wg8te2+*7mKa@l5`XW~YtB-ep2><-i~8cv6|2@Q-Ef*3FaD##NFrieg@=-jDn zDlS46hy-ep#>9ZQ45pIv$PN9HBJS)Smdhoh_tk*-8!o}*_2fmwPXh_ycY9bzb=%`x))G-KW+rQ-g5lD>rgUpga??gfO1VW0?I-+t5%l z%gI0&JPplg+*9+(_i5D6)BTs<%h?Cv_cvje_qSK?&ucf~cd59w;P+x4pYP{^pwH(a zrJz=+0bcPAqQ=t~B7DfNe7wAt-h^;c)#KCxrq|)^tyL+$d zPg+y4w{f&DjN`}5dY3})9&s9L(r!$)P{}hdIDFJ(+9OyUOHgI5rb##xu1UFlU=ryJ zX+F>7LLAk@Y3{k_C05WsE5xeoH-S1&0sk#=KbULDtGr_U{@S3K`0rnf7Qy7W?WP|w zIiXC+Z=P86il45_L5^0GRSTK>SVcYdvh&jANPRet^$Dv?_l^URVa;uQ6*ul|z|A)S zEG=0D)rRef^vToumjhtEJE8~AmAv~ib>jA>d_oZ?R~=QdsBs)OZEBQoV6^DA3DHBK zS&ZB-8@oP!5^gQ?%!^uNE{A!Lb?vXlHCIS|u4m^~II_<6X#yLXpo z?5mZInk6lDaTf?fH2E?j!2g{Kox9p<=c#{|urB(VM8-&KJ+s4lTer9BB;=Fx%V>ms zcv@+94ryf$I)gEjWEJg#J5*znK$aq+BSx1BYs;6jj_DoGz`#rbki3!xpHQHbu2Fe8&ZcYvh4|gr)!Q|~o z6i}q`!=5V%%FUl^rl7BhfS&Y&)`r@8gd-Ivd9J_n<}g5(b-5gCULhh!33$O|%l!vjN6T zS;*t}f}V$i?_J*a{5c`+#NPLPxt1kvg71jtJC4R%P0HLjrBD^HUT@QLiYibcbf!C7 zNe$_td>*hGz1z0VGp(0jR7R>Cju}$zu-1rQLK&>)Z=CKndr@Ng{VPVbo^&U7d$-Hi zdrHgunqQiKM$CR_)fOH*Go5E2UTkKxuok-@?x70rw(bR-S%rwtlK45X$w@s%K6h3& z*{~UB$DS5;wLs-L;lLXAL_%j9yZy|_qRBqwAQa(B*FJ)c()!2qd6F{DZY&Nd5HGcb zqxy1@G=q`y9`kQY_)xnVK_a9JW@W~99GfjIdM}8ZYVb&d92eTw$B$+FXQ3ukHH!nJ zfz$p`*6EZ#q34!6yKZDKu|@IK=3vJJhfZf;@|dWdqqmG&T;D|8A(aYFnVrr`7ws`) z8Fwkn+WTXU{pJ`4x#b`HrXSg1CAHNaq~)tQZt0$c4`=`0d*ynb^3=S|xODDvHy8&+ z4d5>*yNLVeb9d%Yzlf2@-B>d+w-T{%Ey7PdB+E!MajF9N+3Joq$PzL}c6nZTYJfz8 z(YWPVT_N|ZYwqfAT6cn5sfIjSR$*))+Bc4ux+)o@6u0cSMu9q+5GdXnjoN#WL0c-D zd>TP@cfB{Q0fCzO2+C!;%|CLxZrw}&=n!e$ZYDfu<{bk1xa;*j#J3;#N&Ova*xce3 zJY^e^@1yCAd-FW*h$1AAZ0f$W#^i#@vicp5=jDk9jNNmvQs}q^s}Ya`BKicv`w$S} zR>-Sre=`PF?3FP6jXR!-Vj-SLJYc0o_G7Gf#`I>Op47f`nk2w*^KOMU#T293pU1%u zUPmKS34P$I;mfxusGJV8jbyqN5{L~y9I|dbk4^2pydb>cf1+u>PndBhi{_!$wOyf} zdR)1Acp1r#x#?81_A6YQT?vOq@+$Xw)L{ALyBHlB>p&d4p!9>YTs><_v4RXiR6E)T z1&PgJLFS5)+p6Ea9dvPU6se7z4s|&j+7~KMPz=x(AYxR)Qsn&8dbciAJeEP0*tIIo z{~d<}>-%$a_K(8rY`LyMrl3+^Ha?3N*Oi1b&F~lDT4wlma_-mf(WL5%Ie}r9+v7dW z`aH}sm$<0!SX8b;f<~P?`h;16%+*Hli06Fc)a=cz#YqynSZMr^rRa}T%#=H`dc9*sc5be zE{`U4@5Y1vf?asTKc}VH`^S2D@pJ7ONAkl#^&ET3m1e&mIOEJx|5hoO9yH)&F7?I1 zyGF~4L&k7LwTkPgl?$Iuk~VT?)SY;k{zfZ=I_YG+PNTNrFP_6r-%b1&4}pu zh!^}Zg7!dYmo-Ro`Q=ep6JH=Yu z#%A^qfghK)YUiuS^DZI@o6U)&d4qU|kNZ9%R5cNAmnGkwX=>618sYtOfA5)nW3dBG ztK-Q~i=HC-vK#%y3+~oUDYi5N@+eUGKN@7B{-eq z`Q*z8$Nte9d$K_t%&q^*^WCY+MLXR*W8HK|KZ*NQrx5F_igdj(&2Gpyrx=PVZyeKB zIlC;FK#Jx$u2F0o!)GWrLNo<>uubOX$U%tO`W9FQV*jk)<`ej5hX~Z#gTKbP6t6&o zMWsOTJ&7GG!nVFehZVsF_KmTc=U#6ZiQvzs#dB4lWFi!1ChD$J+Pv_-8r3GK zOXz^^pZ&%*r(D{a#N?@LSq7Frd+>Uh5??q_j}#`LA2(6UmK*un-xA&)@1lnmOZ-Cr zp9{dMqWEUyyf+D^9IBJ(lSff`Na*;p=GoH8cSqhT&Kz6)Qksl&lYw}xN3*Ow%B0Jz zwCGMnIlwE@;Khh(Mrf>1z_9QOd=0b(9LG=|$Hgen@}ax!A*-sU5O_xBS?lp;aTXc#bO#ZTV874Xhf+ixHk)-S4b;K_@1fpP zfZnMk@|p$_6V?0aGVw5CEwv-esBjgUSs5kDQWCLoV^)@OG8*l*s;HVvCq=~HBDwKg z#ptC^^t()641!;#d0TxohpB-P=favr$Ma7h?`WQaY6K_q8`!}`-Zanyth)0@Cm19}kb}fCuLoi9 zUa?Z-u_zf}ow$@{y47v|FH$rnl#D~CmT{YIHobE4`xg%Ybe``w<$wjtub6=|HgrA!6X{r}(6uVi6qM z=@E8^vnSnWeZ4_xjua%ZvO7vHn~Q>ds(L-{ku*2!+Z#Qd^iK$E2kcP zK%*J?#z{H{shKCsTml(cKoM^z2IC=J%e#*P_=#Iz418V5Jfb;Xlfizrc_a}zS-c`P zK+riyQqffD^LP3BJas7wDR}1>VO>jzPKc%q_6F6A;27f$!3pM^jm074SP%_M$c`%b za8*PKFvg}1Ilw-d2&%PfJ@pv|%@aTrZ?!O@>Lg7eu`PPMAMrNF(UrkO1&^MX(l>o< zuJN;N01G_T4kIA_ z1%i*yc^Fx-jjJF#W3=tu=Fzx(wkkw9Dr_GjqFOjR8sRuL5l?;WmZDTi8AU3!I0+hQ z_A1r=oOhN{JeQi&T!EF}aOq)IEIk)5Nr)1xiWk=iAMt+d92(8EsUC`XM3$m(xBmmt zQV^3gf3iT4?%~f9Y-q&I$)BpGS&57Y-*7#19)dk$Z9UmG{}rU|vENYJVZ;svqMqp( zH>wDL&MmmGMo=JrpgMB?T~l$vlnZ~;v%o3;&Gdpd;=y{?qSy_oyY^rO8KLf zul>SL$VNn!x?J3Xqmk>u{ob7x0~|p?XE*JXM;EdTjDTtLp+j8y6__;#xtXa#fQFE^ zFPt>SMfIc?Uj3{7p0t=4Ol|T-Ben<9ptCt4Hh1>oUHe`Gr$N^X?P~G_hu>wlPE=Fn zVEy(*>cc@cx-|h-+*YGU9;Qsh*tUc!34H6+a_S1q0O`&0WF0Fmx}JHU-X~4at$k#Q zg!>$h8y}5>^5jU90FgXW%XnSRWgPp{C${rgig560=zqr8vAtCWCspU z_2E_};sDKLcHD=aD&eW)AWNg^{6&4*{a@1_R4Bz_SYrGPG%VIMgk6VV zikqV#1}=zPEd}-`wtH0?i5y*>_81M0MK2jAWHhK}O*zLn7l?`(lGGuR)y>ATaGwA< zq0fb%PQ{Zk_l!Gph6P-fQIVosK>S);F}?VSASIkzvwSgaKUuhRSZdKJwBrA{wbzf; zU4QO$Ni`I(I9j?ydt|S9?Kwe-Z;nLTcXU$+8b#~*`uIABbONDjp`$pYJPSs6x*_D| zLHd8~o#j^)P}laQTe@NB?hc0zB?JZu=@^=!5oQ>W?(S|B1VI{x5F|tp8A@7O1|^1W z-aqvyv_2wGcSKB9xDe)xQFKqM?dP1^Y}%f&IqGH-m!98o6n-ksPVf6+`2uuN)~jM><5egtQ{pmPqf=7t*4vwcS*Nau zd}3IIFa~n{wgwaFOBmU$$4ttOwKdoy1Q*m;)5;!f`sG_@$9jnm)B080tVRouyx2CD z3uZI?-5!HMebxS3j(0hU&hY%F?WEkBF1EQ;^Cd@|dwcg`5prcm4vNk-$;m80rPPdxQiXY(<~O>H!T_hXkCTa>Gzg`9V+l=#nc;{~{ATSj z8ekI|ZW%>vUgo%LzHSI=sCZ&t&T)t9bml0x!CX=bgJiKbt}>R+{V4%=z3aJZ1fRGs zvwZ=yW7v$WzZ6sAs(3p)6LhikoQ|9p9yce1`*kl_VKenh=I_cY3N^3n%+`mib6uy6 zPZjF}3fj{4#HlOpSMSMQS-)8kp%8+1z+t-FQQefC=#aX&cz|Y{`Cv_-bGJDj5^uEe zazdu~v|!|FvXt6au@zp%`i41dsfpB{i^JKRW&IE@mOa>`sbJqWv?utESxVgIOD_IC z33iUQokuqa+CI`bt^BdZ(;lvu1-|8v(nA?wMY!=Pr$-jVOjIFcbb?Bvv9l9tCbC@h zt4!Ie>zrz5oW0nXDlkbgChabdVY-^1|IkHQGXVN+MTJ*hoTx1L7~zP2E-VG3+c<%r z4SWt{ovfSqC&XWuYJFuXY0%g??d10pJc@HBz8>{>I76M>;3zIpS zJC^IS^W3MI)P2GdT0MMqMUj|O8}QacpTV0&h7+$4XJ}~dPZ}PzRYgXhd>lg5o$O!yE*7vWv9MdX#RI!jIuifs(v`B;PN#}k`3A*%sG6r8Q;=&CfH zNV^k3b~8CQvgA#O%u07@1A z3Lhe&w=ImgBqE2g9A2K{g36Efxz16!G=%Jzhx<7L_MKvw_jG-ozFfadMJ1d+RkQBj3;P-{`Z!f&td z_~}LkhxC3PtF)3-HCmp*ML2{o=+XD&p&yvS3Bd|a9tOs^chl-<69?=**qH*0t9}R9 zHV=sM1BCe629C(W9OU#Piqw_WHs@*GoZ}} zPcgBaMjir5HzA6r1+yK?3rG&erU*Sf5Dt+WU&#q1m}-D=`;d?{O(!?M1pyl7t)`n7 zfIgJ)*>J1;Q~dSK@~_dnn>AHn8v*Sut1NsB8N_erK@a{#1qp{}pCTqbcq2oiL4*IJ zS^_GV%fS-yVQDR*uIA>0oY19Yi<7t;uxDUx6%`r32U_4b`>p<aILT+t z7=ljp6mpAX%bcrIT@_00y>J`|;BD+x+H6!m(Y&Ev_AQ?Lv&gFy&^jxXZ>Kn1iR*cw zI)CL!Vb!X(?f1LbB?*sm-1V7Xr#cPP;A$B_9kaLmD(?SbXiZhhdDF!m^&0dxwSUV& zwBrO%5aSxX%3M^kR@irGspxe=|CWmYJLFnr^_LbSpC-G$b#KBMF+k1B)hKEkd*Uus zn_}gjr2QdmNgl3FIi|&=ccn(o4G(A9sTyy%h9woPYmcYIjwD~ zmFq}&`fG#%c&TdOqdi~HG?Hc4HTz^-zTx~t7hVe&GKpFm>4oW9yQo=1&RBz3Y`*Ar zht|J$?;|Nt9LHDZnK5&^5^l*rTKZ`LCoYUh`}|m};{}OxBPxzuNJDm{oU6svung&Y z@%OO^_FDpTZhVm7pEVzMLX2SPoNI!ROOHh@N-4aU+veREdzX|(7oRng3$Wa~PFNAZ z^fLI!`YM=d$9(6NWiVnk7d7!mWL$Cm9Q1N5$N@1;U8y1HyD<%in z&$7D^DT*0qwp$C5+OCXrR0A?V!gy-0iO*c5f5)|O>e-R&fo8EI#=(B*^I?7Ec;-{H-hiI5v;u z)3uK!x9*R8As<1L8)FTWOly6PHez_~@Fu#@Pgov1iY}yn!}==NIf=d}scmM1p zg6bEB)7nwz`Nq$ju79rG=kXJ5W^p9$Fv3Q=%TVhF!8SR3=ID7}Qi*JvC+8o3OpX&q zyAmO{iY$1ShZ_V6`@_|C1&Y$2ja*!j>l>%zg3x1)7JKR$7;~>}jQfDeSw>LFy9R9l z^l6F1r&%UVEdkv8+J}MH1Q~1`VV}LUMKIk|R`+pFnauU6gx{zK%@K?cvnp2C+T?D+ zTbZ7ZiuXr#kqZiYZ0U%?OOgqa-cD@wn`cXjEAPIXXvMN}@h%R$3zbT^o7>G$o0zd~ z4{QheYbz=|x=ct9PalbC<_Y=eJm0GL$M`R`NK5>Sa85too}6xRrjXqT&pz?^j_3I) z_g%y!r0cxT_$5bT*b4^*rmaBtsk*n8#%D&^cN)~W}&TeM*MiY$>e)yAUi>#L+Z)H0ae0_75 zbHG^nZ13qezP%6I-;!UZwKOhh4fQ?d=D{jlkw`y>9WQz9c^2|QrUmHHgl5|$H9zh!~59s0j$jzi^rBMYUjJM3%l4VrVGn9%1^Xd*~+#=pP39)@cl>^CYs**it_sGUc4Z+@{P^sPg#7>t zS^c|HLUnQMYxT-{R;C%?HVFFbT`pR%7Js|#)sYSekMg&XwT)_J z)YCpScTplCbC2sM5oEPH(thDDx@=*%4}h1Usp3UUOSaUt(Ep8Uta*YWAQyo#u0tL z&K8YSWF|yX%D?H~dvBe|^AY?ZuI!i)qi(jUx`G@84Y~&REm0t2WJ2}mPF?$S85*}s zzoC7t6m8#otv$EpAE^|Ygc!_%y3-?*KCcwg6Qbrv9^pH(>Ug+Q=@E+!R5V5f|t^9zpOGr zrzSubOCvGUV}y7CA^k$x-gmZbdg|0dl$2fRo2pauN%Z0%j+xh08%@LuHFlm>M!))% z`>~^aFd;_;yx}68i>!sE_3-)au_{oZXX* z!AHPpxmy(ZZ%!{}K>RWbqld4U18E64qt|GVh$yi=`SP14C|)~;>oWW`jSQbCz_P70 zUTHrz)dW{+OrU~o`SJspJ;%X;k_>l;`>ELRz)pncR*J^Z@J zjIaavT-1ylV*Qyxhti3ui&<*6)7Dodv(8s}yJO{T$znEUbYL>wmk=BuRT0!niqxye zoC70!+S7-E7Go2)k033itvrB{c^jLx z4?2!p_J&-8Lfn3z`H4%ZC%_ zz54$O0Y6K|mmJ|5`GdAND$%w2!_M?MtQemCt#!j4{vySDYI82T?`pSU3=NK>14(L3 z^E!s~9iuJmgM9Qkq8*EKnSg?grO#f!hvGtr9)_ZkC4t(i;^k;)l(;uhUj1pX*PZmU zu$@?9TEX3;Fl`BWa)0BhV@_+00gi#M#YNga5tJ66z*4OY1JTcvfth$a(9X*=&Wtg6 z=Lu}}gx>W}eS}~n?U%eU{!@>y|r1w;d!q^ zd(TMz`0)oJj1HZAp(=F%7X!r9TtqFU9BOL~_;5i96c=po{7UU#gnF5k21{Fw1z+5} z736>rA;U+ftR{CH$rro+kk}W|_K-QJ8NA5Y-UfaHrB90_v|ms}Fph)I5Q9RO7KFdU zwCwF_=r-^w`~R9gZao$a61lJM*h}xo7#hWL@go=@Mb0F*dUA4otR9+C_3~JfOa1Xh zltlvGOGkQ|CzoM*J1j4!|KREF3h#?4n>p3<{fX<97I1AP>p6UcgYlt*KMMM<5h3yS zzYb!ZDy#8MWcopl6(G=N+1v~tl@_JyX*Ohew_RbxCvP)W>y$xyw`$e|xLrsxlqk>sve)p}k zbg93()jMB~2yKt9>eykiq>^_QpKmUFkUBT;74Z@INKX0jpwTfVY%(Fx`9t0I9|yg= zh6UQ~J4T(i!9$@_fX*TC(f&$Vyp?m5wN@lS({)1Sc-1^DPu`>C&sp##Hx7>noGmd5 zcrIg3zRXzaKV9(;lD>X;!^}lpyYpR@h>c6ghH{ZM12Pe!0a>|i&Edf#qR=KDOB6WJ z(Su`{y!Ro4v~EqLGXwW{%%M!c~s<4ZKSGuTeT%W-Bx z%VD69dH7S#RC}(7T*}xsILYz2i4g|Hk0Woaw@RhNIhK_>KeCV2>?joVG!}Al3!&tX z6xIl(llBwJ!>aua{lxjJK)v0YA%Q@7w&8_)h2@(-4Slrz{wAV$C{Utty=B9PTLS-~ z0Nyt`P7O%=)$DA5GkW6fK@9v4)njiAJnBzM%jx&Zaf$hq;j|!rNka6AK$ZAsuVgV% zoB;L3oH!}9A3!-}_QHO_$Anz+jSfVWngi{>)B8e2d1JL4Qyl=$!V@ z_{40(OS@p?d!j|mD-twUmjB_0gYQ%W#JV3okCaG%A=^v)^I|Ls3FB-f;&TMM4S`P} z-1N$Eh4^(}#DSq1(NvxIuh4I+7+u{zH2H{r@t`C5vo7fwi|PxliQ9_5P;A;$dWL$? zy}y#xCY0fP>dEVt+`~Vmvt$*^VjMe%ax~k}6|`Wh_}Q6*a+H(&Kr|RyCcE15wIox% z_B~LVs?SCaHp8w-kpqz!Ik@VZznohpPQ|L;2FKS}lLDjMMm1`v*4Uz>P$R0PFhBgl z5HRx7_IJm?V`> zfN%2o=t#?EP5p23qjVkJ-F?@l>FqRWI9)goqY$ft3~@z4j_RJm!>C{MrRry#Y)Lz# zDIFXjMXnjb%N<$3bJVD0vdKZw5hgjB1gjg~T9Ra-Z!XTV!=`GkLU90L z3rnblGn+NNjM59pDM~c|s2@^kkx}>_byiDe;vXIlq)1nent_(74SLLh$mOiIe>}@b z&WKrMpU{Hx){b1a3v{(0Urj|@45KK7I8I-&X#Y%O- zj;_(fd{35JN5egj{{|*elrH?!Vcf4#1}?&2$lXRPWHR_XNqgNJX@E9U?UxfVD9N=C z0^t~Ue7YssR*S#Y-}*cxb=Y4CrPPUc&JWCiXVUgEx%8}+QYvVqfIe~D7Pxgvju>=w z*28D}Zlr6jyHARDT@&o-&vX}wOj9TU)Q8_xMb>g2)YB8-<>?QE`6^glUx{67(%vOJ z?ffJt!8%)K;F1kqvDm@k(CuXV`)%&ekds*_ph-g5-|x1#C)rHaahOkTjyv8|iukwo z!?bN5#16(>veYqvS_%@2(PJ_<` z1S`m8RH+wn!){Y2F__FJuwjk2UrY1)^DuQZz$>f!dGlm;2M1z6?-diuOZ-8m>fk9c zlim=yP@0liw;<*e9aYd{ncl8^RlKi&kp0dcu^@IA1;$=#^oR6_1MCNk#B!OQr?!$l z7e(MqvsMKt+A?ZTJlM)M43s7}Z>ZWCDg&Q5$Q505io#Iau$YR@-el(H<-^E~kd&Mv`^DoWOS^trAv^ec z4?Q@_6!65;Bf|j=xfebdmgOLKJcb#RyJ<5YK6-@1t);GFH1c7Z#QleX>v326=y`Z+Ns&;VgEnBTo^VKSejN!D+c+Oqa5Z}6 zX4m`9D!Y~ife%52>aZY_k}%NmOCkiLEMQ4tpf9-PO59*XP%IVvI#gmJ zLiY9sxGE6EiwRc+&9n5~QULNoyl6k(UpiyPd6h&{Tm?Ea_6fKHGL_bFgtCI}7}2lZ z>?v7|CHG*==kY4~=!gzhR71a+pJTTu&ZozDUzG4|S0h;(reIZWwi@Fb12&rv>%H(M}Lo&hMszZs%^yo0O8}#%>V!Z literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp deleted file mode 100644 index 523cfc0de7ce6bed4f41f96332997e9d099598ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29571 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9622999176ebaa74d6d71292288fd2e1dd42bfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16272 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 JHL~Vm{|BrNNLc^? From 1f9fa7438cb045126ce4314a5916c5931f964387 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 01:10:51 +0100 Subject: [PATCH 08/31] Enhance modals: add buttonText prop to MonotorizationModal, adjust TermsAndConditionsModal height, and integrate modals in Settings page --- src/components/MonotorizationModal.js | 19 ++++++++++--------- src/components/TermsAndConditionsModal.js | 2 +- src/pages/HomePage.js | 1 + src/pages/Settings.js | 23 ++++++++++++++++++++--- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/components/MonotorizationModal.js b/src/components/MonotorizationModal.js index 8d938f1..7d9a4ba 100644 --- a/src/components/MonotorizationModal.js +++ b/src/components/MonotorizationModal.js @@ -8,19 +8,23 @@ import { AppState, } from 'react-native'; import { FontAwesome } from '@expo/vector-icons'; -import { useDispatch } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import {updateIsMonitoringStatus} from '../redux/isMonitoringSlice' //import react-native modules import { NativeModules } from 'react-native'; -export default function MonotorizationModal({ modalVisible, setModalVisible }) { +export default function MonotorizationModal({ modalVisible, setModalVisible, buttonText }) { //importar os módulos nativos de screen time e work manager const { ScreenTimeModule } = NativeModules; const { FloatingBubble } = NativeModules; const { WorkManagerModule } = NativeModules; + const { isMonitoringState, loading, error } = useSelector( + (status) => status.isMonitoring + ); + const dispatch = useDispatch(); const [isSTenabled, setIsSTenabled] = useState(false); @@ -81,14 +85,11 @@ export default function MonotorizationModal({ modalVisible, setModalVisible }) { }; const StartMonotoring = () => { - if (isSTenabled && isFGenabled) { - console.log('Iniciando monitorização com as seguintes permissões:'); + if(!isMonitoringState){ WorkManagerModule.startWork(); dispatch(updateIsMonitoringStatus()) - setModalVisible(false); - } else { - alert('Por favor, ativa todas as opções para iniciar a monitorização.'); } + setModalVisible(false); }; return ( @@ -116,7 +117,7 @@ export default function MonotorizationModal({ modalVisible, setModalVisible }) { situação em que encontras! - Para isso, vamos precisar que nos dês permissão para aceder aos teus + Para isso, se quiseres uma análise mais completa, e uma interação mais dinâmica, vamos precisar que nos dês permissão para aceder aos teus dados de screenTime e para a Lumicheck possa trabalhar em Background e Foreground. @@ -146,7 +147,7 @@ export default function MonotorizationModal({ modalVisible, setModalVisible }) { onPress={StartMonotoring} > - Começar Moniterização + {buttonText} diff --git a/src/components/TermsAndConditionsModal.js b/src/components/TermsAndConditionsModal.js index fa0cfd4..bdc040d 100644 --- a/src/components/TermsAndConditionsModal.js +++ b/src/components/TermsAndConditionsModal.js @@ -19,7 +19,7 @@ export default function TermsAndContitionsModal({ {/* Overlay */} - + Termos e Condições diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js index a03ed6a..c6a31b6 100644 --- a/src/pages/HomePage.js +++ b/src/pages/HomePage.js @@ -215,6 +215,7 @@ export default function HomePage() { {/* Mostrar o botão ou o card baseado no estado */} diff --git a/src/pages/Settings.js b/src/pages/Settings.js index e37204d..498edd6 100644 --- a/src/pages/Settings.js +++ b/src/pages/Settings.js @@ -17,9 +17,14 @@ import CardForOptions from '../components/CardForOptions'; import { useDispatch } from 'react-redux'; import { deleteUserAccount } from '../redux/deleteAccountSlice'; import { FontAwesome } from '@expo/vector-icons'; +import MonotorizationModal from '../components/MonotorizationModal'; +import TermsAndContitionsModal from '../components/TermsAndConditionsModal'; export default function Settings({ navigation }) { const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false); + const [MonitorizationModalVisible, setMonitorizationModalVisible] = + useState(false); + const [TermsAndConModalVisible, setTermsAndConModalVisible] = useState(false); const [password, setPassword] = useState(''); const dispatch = useDispatch(); @@ -32,14 +37,14 @@ export default function Settings({ navigation }) { icon: null, }, { - link: 'EditProfile', + action: () => setMonitorizationModalVisible(true), text: 'Opções de Monitorização', textColor: 'text-black', arrowColor: '#000000', icon: null, }, { - link: 'EditProfile', + action: ()=> setTermsAndConModalVisible(true), text: 'Termos e Condições', textColor: 'text-black', arrowColor: '#000000', @@ -49,7 +54,7 @@ export default function Settings({ navigation }) { const Suporte = [ { - link: 'EditProfile', + link: 'Onboarding', text: 'Onboarding', textColor: 'text-black', arrowColor: '#000000', @@ -188,6 +193,18 @@ export default function Settings({ navigation }) { + + {/* Modal para as settings de monitorização */} + + + ); } From 88102ca2d3d675921390e60c7d70126c7ce17888 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 01:40:51 +0100 Subject: [PATCH 09/31] Enhance loading and error states in ReportPage: add background gradient and custom icons for better user experience --- src/pages/ReportPage.js | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/pages/ReportPage.js b/src/pages/ReportPage.js index 11cff6e..9df43c0 100644 --- a/src/pages/ReportPage.js +++ b/src/pages/ReportPage.js @@ -17,6 +17,7 @@ import Lumi3Colors from '../components/Lumi3Colors'; import LumiQuestion from '../components/LumiQuestion'; import { useNavigation } from '@react-navigation/native'; import Lumi from '../../assets/lumis/Lumi.svg'; +import RedLumi from '../../assets/lumis/LumiVermelha.svg' import ScoreIcon from '../../assets/icons/scoreicon.svg'; import { useDispatch, useSelector } from 'react-redux'; import { fetchUserAnswers } from '../redux/userAnswersSlice'; @@ -99,8 +100,34 @@ export default function ReportPage() { dispatch(fetchUserAnswers()); }, [dispatch]); - if (loading) return A carregar...; - if (error) return Erro: {error}; + if (loading) + return ( + + + + A carregar... + + + ); + if (error) return( + + + + Erro: {error} + + + + ); // Função para obter a legenda com base na pontuação const getCaptionFromScore = (score) => { From ff66124b9550d3f4a6b1c57bf003b7c1c3a38b19 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 01:46:06 +0100 Subject: [PATCH 10/31] Enhance loading and error states in AllLumiQuestions: add background gradient and custom icons for improved user feedback --- src/pages/AllLumiQuestions.js | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/pages/AllLumiQuestions.js b/src/pages/AllLumiQuestions.js index 11280bf..dac3dbf 100644 --- a/src/pages/AllLumiQuestions.js +++ b/src/pages/AllLumiQuestions.js @@ -7,6 +7,9 @@ import Lumi3Colors from '../components/Lumi3Colors.js'; import { useDispatch, useSelector } from 'react-redux'; import { fetchUserAnswers } from '../redux/userAnswersSlice'; +import Lumi from '../../assets/lumis/Lumi.svg'; +import RedLumi from '../../assets/lumis/LumiVermelha.svg' + export default function AllLumiQuestions({ navigation }) { const dispatch = useDispatch(); const { @@ -19,8 +22,32 @@ export default function AllLumiQuestions({ navigation }) { dispatch(fetchUserAnswers()); }, [dispatch]); - if (loading) return A carregar...; - if (error) return Erro: {error}; + if (loading) + return ( + + + + A carregar... + + + ); + if (error) return( + + + + Erro: {error} + + ); // Função para obter a legenda com base na pontuação const getCaptionFromScore = (score) => { From b59d306f73237e0d375f89cb8ebd35a2743cb2fa Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 03:09:41 +0100 Subject: [PATCH 11/31] Refactor MonotorizationModal and ReportPage: remove console logs, add AppState handling for screen time permission checks --- src/components/MonotorizationModal.js | 1 - src/pages/ReportPage.js | 163 +++++++++++++++++--------- 2 files changed, 109 insertions(+), 55 deletions(-) diff --git a/src/components/MonotorizationModal.js b/src/components/MonotorizationModal.js index 7d9a4ba..b966267 100644 --- a/src/components/MonotorizationModal.js +++ b/src/components/MonotorizationModal.js @@ -46,7 +46,6 @@ export default function MonotorizationModal({ modalVisible, setModalVisible, but try { const hasPermission = await FloatingBubble.checkOverlayPermission(); setIsFGenabled(hasPermission); - console.log(hasPermission); } catch (error) { console.log('Error checking screen time permission:', error); } diff --git a/src/pages/ReportPage.js b/src/pages/ReportPage.js index 9df43c0..c1d5d52 100644 --- a/src/pages/ReportPage.js +++ b/src/pages/ReportPage.js @@ -6,6 +6,7 @@ import { Image, TouchableOpacity, Animated, + AppState, } from 'react-native'; import { FontAwesome } from '@expo/vector-icons'; import { LinearGradient } from 'expo-linear-gradient'; @@ -17,7 +18,7 @@ import Lumi3Colors from '../components/Lumi3Colors'; import LumiQuestion from '../components/LumiQuestion'; import { useNavigation } from '@react-navigation/native'; import Lumi from '../../assets/lumis/Lumi.svg'; -import RedLumi from '../../assets/lumis/LumiVermelha.svg' +import RedLumi from '../../assets/lumis/LumiVermelha.svg'; import ScoreIcon from '../../assets/icons/scoreicon.svg'; import { useDispatch, useSelector } from 'react-redux'; import { fetchUserAnswers } from '../redux/userAnswersSlice'; @@ -26,30 +27,19 @@ import { fetchUserAnswers } from '../redux/userAnswersSlice'; import { NativeModules } from 'react-native'; export default function ReportPage() { - //importar os módulos nativos de screen time e work manager + //importar os módulos nativos de screen time const { ScreenTimeModule } = NativeModules; + const [isSTenabled, setIsSTenabled] = useState(false); + //Variaveis para o tempo de ecrã e uso de apps const [screenTime, setScreenTime] = useState(null); const [appUsage, setAppUsage] = useState([]); - //formata o tempo de screen time - function formatTime(minutes) { - if (minutes >= 60) { - const hours = Math.floor(minutes / 60); - const remainingMinutes = minutes % 60; - return remainingMinutes > 0 - ? `${hours}h ${remainingMinutes}min` - : `${hours}h`; - } - return `${minutes}min`; - } - //função de ir buscar o tempo de ecrã const fetchScreenTime = async () => { try { const response = await ScreenTimeModule.getScreenTime(); - //console.log('Screen Time Data:', response); setScreenTime(Math.floor(response.screenTimeMinutes / 60)); setAppUsage(response.appScreenTime || {}); let appUsageData = []; @@ -82,8 +72,35 @@ export default function ReportPage() { } }; + const checkScreenTimePermission = async () => { + try { + const hasPermission = await ScreenTimeModule.hasUsageAccess(); + setIsSTenabled(hasPermission); + if (hasPermission) { + fetchScreenTime(); + } + } catch (error) { + console.log('Error checking screen time permission:', error); + } + }; + useEffect(() => { - fetchScreenTime(); + checkScreenTimePermission(); + + const handleAppStateChange = (nextAppState) => { + if (nextAppState === 'active') { + checkScreenTimePermission(); + } + }; + + const subscription = AppState.addEventListener( + 'change', + handleAppStateChange + ); + + return () => { + subscription?.remove(); + }; }, []); const navigation = useNavigation(); @@ -105,29 +122,29 @@ export default function ReportPage() { - A carregar... + width={140} + height={140} + accessibilityRole="image" + accessibilityLabel="Imagem da Lumi" + /> + A carregar... ); - if (error) return( - + if (error) + return ( + + width={140} + height={140} + accessibilityRole="image" + accessibilityLabel="Imagem da Lumi" + /> Erro: {error} - - ); + ); // Função para obter a legenda com base na pontuação const getCaptionFromScore = (score) => { @@ -414,29 +431,67 @@ export default function ReportPage() { */} - - - - Tempo de ecrã - - - - - - - - Apps mais usadas - - - - + {isSTenabled ? ( + <> + + + + Tempo de ecrã + + + + + + + + Apps mais usadas + + + + + + ) : ( + <> + + { + navigation.navigate('Perfil', { screen: 'Settings' }) + }}> + + + + + Ativa a opção de ScreenTime nas definições para teres acesso + á tua atividade com mais detalhe + + + + + + )} Date: Tue, 24 Jun 2025 03:56:05 +0100 Subject: [PATCH 12/31] trophy page --- assets/trophies/apenantes.svg | 1 - assets/trophies/aprocuradeajuda.svg | 12 +++ assets/trophies/autoconsciente.svg | 13 ++- assets/trophies/bomdiaalegria.svg | 1 - assets/trophies/bomprogresso.svg | 1 - assets/trophies/chest.png | Bin 12007 -> 0 bytes assets/trophies/curioso.svg | 19 ++++ assets/trophies/dedicado.svg | 6 +- assets/trophies/detox.svg | 1 - assets/trophies/diadedetox.svg | 14 +++ assets/trophies/horaderecolher.svg | 12 +++ assets/trophies/iniciopromissor.svg | 1 - assets/trophies/marcodos20.svg | 23 ++++- assets/trophies/modozen.svg | 5 + assets/trophies/perfeccionista.svg | 1 - assets/trophies/perfecionista.svg | 5 + assets/trophies/primeiropasso.svg | 13 ++- src/components/TrophyProgress.js | 53 +++++----- src/pages/AllTrophies.js | 4 +- src/pages/ProfilePage.js | 4 +- src/pages/TrophiesPage.js | 135 +++++++++++++------------ src/pages/TrophyDetail.js | 7 +- src/redux/lockedAchievementsSlice.js | 61 +++++++++++ src/redux/modoZenSlice.js | 71 +++++++++++++ src/redux/store.js | 6 ++ src/redux/unlockedAchievementsSlice.js | 62 ++++++++++++ 26 files changed, 417 insertions(+), 114 deletions(-) delete mode 100644 assets/trophies/apenantes.svg create mode 100644 assets/trophies/aprocuradeajuda.svg delete mode 100644 assets/trophies/bomdiaalegria.svg delete mode 100644 assets/trophies/bomprogresso.svg delete mode 100644 assets/trophies/chest.png create mode 100644 assets/trophies/curioso.svg delete mode 100644 assets/trophies/detox.svg create mode 100644 assets/trophies/diadedetox.svg create mode 100644 assets/trophies/horaderecolher.svg delete mode 100644 assets/trophies/iniciopromissor.svg create mode 100644 assets/trophies/modozen.svg delete mode 100644 assets/trophies/perfeccionista.svg create mode 100644 assets/trophies/perfecionista.svg create mode 100644 src/redux/lockedAchievementsSlice.js create mode 100644 src/redux/modoZenSlice.js create mode 100644 src/redux/unlockedAchievementsSlice.js diff --git a/assets/trophies/apenantes.svg b/assets/trophies/apenantes.svg deleted file mode 100644 index 725b43f..0000000 --- a/assets/trophies/apenantes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/aprocuradeajuda.svg b/assets/trophies/aprocuradeajuda.svg new file mode 100644 index 0000000..3dd74c5 --- /dev/null +++ b/assets/trophies/aprocuradeajuda.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/trophies/autoconsciente.svg b/assets/trophies/autoconsciente.svg index f71e709..f267ac6 100644 --- a/assets/trophies/autoconsciente.svg +++ b/assets/trophies/autoconsciente.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + + + + + + diff --git a/assets/trophies/bomdiaalegria.svg b/assets/trophies/bomdiaalegria.svg deleted file mode 100644 index 805f742..0000000 --- a/assets/trophies/bomdiaalegria.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/bomprogresso.svg b/assets/trophies/bomprogresso.svg deleted file mode 100644 index 6cfbfc6..0000000 --- a/assets/trophies/bomprogresso.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/chest.png b/assets/trophies/chest.png deleted file mode 100644 index 3acb1e70ee4e9fbf02779b5e5dcab527dabce7c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12007 zcmeHtWmJ_x_wSrTw<1Uj5`rQj-5i5fx?5>by7ORwB6%n&K{*K0-6;anAqS)cK{}p&ue=MFTeg$Xl`hunwmjOQ@30T~6O!%gNf^>#3_1@bdEFwR3cEvv}%k#p~p1 zld>U24*&~LdURjgJ9T}^=Yz3cz{0y`EPCG6dmmULSZ_!GFHZC9*s zk%k0Ibv_nIdMt30Zu^7Mtt2JuQi0dO;ARNo`Qw*7W8U$1$55g?m6l2gmg@y34Vxw& z{ilPJBSTZUXTRMx4tAuZC{P%kroxrNosVuC(z0xE5dprAna91Pcu909-uQRCD6%g~ zo+xxDD(UW6393Eq5Jj(KVR7dmm6f}~L!Zg6L?M}C%p%n2^Txhv?CMhKQ@x^Z=YbRa zA29k3Pp-&$=7;B3y`4(WQnJ#8s@XSe%dA|e6`by{cAyvG493!JSgeANoS?jQQsyV=U+}OusQfW z%Nr5wJRel#syiL=^{DLCFkeu%PC$#J(%6!gT}E}oja4PwCv%V9R!APm@zfnm{7&%1 z?2`TJ9JzDND*%L93jI>IG31OGZ4M`S(rQIR5X+lt-QyD*@r{3DHq29T=#~-#N1am4 zRL&P7hTa$4$FsaW!njDOUz~+?>i4T3>AttBP?RTO$F!U1l^Bi}c&=6WdKFS7*APv2^%))r*`NT+Rt

u|!*iM1bHt<^ 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 diff --git a/assets/trophies/curioso.svg b/assets/trophies/curioso.svg new file mode 100644 index 0000000..1f601fd --- /dev/null +++ b/assets/trophies/curioso.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/trophies/dedicado.svg b/assets/trophies/dedicado.svg index 24262d9..65fe69f 100644 --- a/assets/trophies/dedicado.svg +++ b/assets/trophies/dedicado.svg @@ -1 +1,5 @@ - \ No newline at end of file + + + + + diff --git a/assets/trophies/detox.svg b/assets/trophies/detox.svg deleted file mode 100644 index a7869a2..0000000 --- a/assets/trophies/detox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/diadedetox.svg b/assets/trophies/diadedetox.svg new file mode 100644 index 0000000..d27260a --- /dev/null +++ b/assets/trophies/diadedetox.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/trophies/horaderecolher.svg b/assets/trophies/horaderecolher.svg new file mode 100644 index 0000000..3f654de --- /dev/null +++ b/assets/trophies/horaderecolher.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/trophies/iniciopromissor.svg b/assets/trophies/iniciopromissor.svg deleted file mode 100644 index 9173983..0000000 --- a/assets/trophies/iniciopromissor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/marcodos20.svg b/assets/trophies/marcodos20.svg index fe36f6f..7130b98 100644 --- a/assets/trophies/marcodos20.svg +++ b/assets/trophies/marcodos20.svg @@ -1 +1,22 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/trophies/modozen.svg b/assets/trophies/modozen.svg new file mode 100644 index 0000000..8cf9919 --- /dev/null +++ b/assets/trophies/modozen.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/trophies/perfeccionista.svg b/assets/trophies/perfeccionista.svg deleted file mode 100644 index fb97d96..0000000 --- a/assets/trophies/perfeccionista.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/trophies/perfecionista.svg b/assets/trophies/perfecionista.svg new file mode 100644 index 0000000..74fb098 --- /dev/null +++ b/assets/trophies/perfecionista.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/trophies/primeiropasso.svg b/assets/trophies/primeiropasso.svg index 5e63465..e54d3ff 100644 --- a/assets/trophies/primeiropasso.svg +++ b/assets/trophies/primeiropasso.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + + + + + + diff --git a/src/components/TrophyProgress.js b/src/components/TrophyProgress.js index bf0a1b5..9442482 100644 --- a/src/components/TrophyProgress.js +++ b/src/components/TrophyProgress.js @@ -1,38 +1,30 @@ import React from 'react'; -import { View, Text, Image } from 'react-native'; +import { View, Text } from 'react-native'; import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; -import ChestIcon from '../../assets/trophies/chest.png'; const TrophyProgress = ({ text, description, progress, total, icon }) => { const progressWidth = `${(progress / total) * 100}%`; let IconComponent = icon || BlockedTrophy; - if (icon === 'Chest') { - IconComponent = ChestIcon; - } - const descriptionCutted = - description.length > 32 + description?.length > 32 ? `${description.substring(0, 30)}...` : description; + // Check if IconComponent is valid + if (!IconComponent) { + console.error('IconComponent is undefined for icon:', icon); + return null; // or return a placeholder + } + return ( {/* Ícone */} - - {/* se for chest mete Image se for outro mete o svg */} - {icon === 'Chest' ? ( - - ) : ( - - )} + + - - {/* Conteúdo de progresso */} {/* Texto */} @@ -40,15 +32,18 @@ const TrophyProgress = ({ text, description, progress, total, icon }) => { {/* Barra de progresso */} - - - - - {/* Contador */} - {`${progress}/${total}`} + {progress !== undefined && total !== undefined && ( + <> + + + + + {`${progress}/${total}`} + + )} ); diff --git a/src/pages/AllTrophies.js b/src/pages/AllTrophies.js index 1d72f37..ee91692 100644 --- a/src/pages/AllTrophies.js +++ b/src/pages/AllTrophies.js @@ -4,8 +4,8 @@ import BackgroundGradient from '../components/BackgroundGradient'; import { Ionicons } from '@expo/vector-icons'; import Achievements from '../components/Achievements'; import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BomDiaAlegria from '../../assets/trophies/bomdiaalegria.svg'; -import BomProgresso from '../../assets/trophies/bomprogresso.svg'; +import BomDiaAlegria from '../../assets/trophies/modozen.svg'; +import BomProgresso from '../../assets/trophies/curioso.svg'; export default function AllTrophies({ navigation }) { const trophieswon = [ diff --git a/src/pages/ProfilePage.js b/src/pages/ProfilePage.js index f79d7c9..5d3563c 100644 --- a/src/pages/ProfilePage.js +++ b/src/pages/ProfilePage.js @@ -11,8 +11,8 @@ import { useNavigation } from '@react-navigation/native'; import { logoutUser } from '../redux/authSlice'; import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BomDiaAlegria from '../../assets/trophies/bomdiaalegria.svg'; -import BomProgresso from '../../assets/trophies/bomprogresso.svg'; +import BomDiaAlegria from '../../assets/trophies/modozen.svg'; +import BomProgresso from '../../assets/trophies/curioso.svg'; import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; import { useDispatch, useSelector } from 'react-redux'; diff --git a/src/pages/TrophiesPage.js b/src/pages/TrophiesPage.js index 8f73764..df3417e 100644 --- a/src/pages/TrophiesPage.js +++ b/src/pages/TrophiesPage.js @@ -1,65 +1,68 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { Text, View, TouchableOpacity, ScrollView } from 'react-native'; import BackgroundGradient from '../components/BackgroundGradient'; import { useNavigation } from '@react-navigation/native'; -import Task from '../components/Task'; import TrophyProgress from '../components/TrophyProgress'; import Achievements from '../components/Achievements'; import DailyTasks from '../components/DailyTasks'; +import { useDispatch, useSelector } from 'react-redux'; + +import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; +import { fetchLockedAchievements } from '../redux/lockedAchievementsSlice'; +import { checkModoZenProgress } from '../redux/modoZenSlice'; + +import AprocuraDeAjuda from '../../assets/trophies/aprocuradeajuda.svg'; +import Autoconsciente from '../../assets/trophies/autoconsciente.svg'; +import Curioso from '../../assets/trophies/curioso.svg'; +import Dedicado from '../../assets/trophies/dedicado.svg'; +import DiaDeDetox from '../../assets/trophies/diadedetox.svg'; +import HoraDeRecolher from '../../assets/trophies/horaderecolher.svg'; +import Marcodos20 from '../../assets/trophies/marcodos20.svg'; +import ModoZen from '../../assets/trophies/modozen.svg'; +import Perfecionista from '../../assets/trophies/perfecionista.svg'; import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BomDiaAlegria from '../../assets/trophies/bomdiaalegria.svg'; -import BomProgresso from '../../assets/trophies/bomprogresso.svg'; +import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; -export default function TrophiesPage() { - const navigation = useNavigation(); +const trophies = { + aprocuradeajuda: AprocuraDeAjuda, + autoconsciente: Autoconsciente, + curioso: Curioso, + dedicado: Dedicado, + diadedetox: DiaDeDetox, + horaderecolher: HoraDeRecolher, + marcodos20: Marcodos20, + modozen: ModoZen, + perfecionista: Perfecionista, + primeiropasso: PrimeiroPasso, + blocked: BlockedTrophy, +}; + +const getTrophyIcon = (iconName) => { + if (!iconName) return BlockedTrophy; - const trophieswon = [ - { - text: 'Primeiro Passo', - description: 'Completar o teste inicial', - icon: PrimeiroPasso, - }, - { - text: 'Bom Dia Alegria', - description: - 'Não usar o telemóvel nos primeiros 30 minutos após acordar durante 3 dias consecutivos', - icon: BomDiaAlegria, - }, + const key = iconName.replace('.svg', '').toLowerCase(); + return trophies[key] || BlockedTrophy; +}; - { - text: 'Bom Progresso', - description: - 'Reduzir o uso médio de uma app considerada viciante em 1h por dia durante a semana', - icon: BomProgresso, - }, - ]; +export default function TrophiesPage() { + const navigation = useNavigation(); + const dispatch = useDispatch(); - const trophiesblocked = [ - { - text: 'Autoconsciênte', - description: - 'Ver o relatório das apps mais usadas todos os dias de uma semana', - progress: 4, - total: 7, - icon: null, - }, - { - text: 'Marco das 20', - description: 'Responder a 20 perguntas da Lumi', - progress: 7, - total: 20, - icon: null, - }, - ]; + useEffect(() => { + dispatch(checkModoZenProgress()); + dispatch(fetchUnlockedAchievements()); + dispatch(fetchLockedAchievements()); + }, [dispatch]); - const chest = { - text: 'Icon Exclusivo', - description: 'Complete 30 Tarefas Diárias', - progress: 6, - total: 30, - icon: 'Chest', - }; + const modoZen = useSelector((state) => state.modoZen.data) || {}; + const trophiesunlocked = + useSelector((state) => state.unlockedAchievements.achievements) || []; + const trophieswon = trophiesunlocked.filter( + (trophy) => trophy.tag !== 'modozen' + ); + const trophieslocked = + useSelector((state) => state.lockedAchievements.achievements) || []; return ( @@ -95,7 +98,7 @@ export default function TrophiesPage() { {/* Cabeçalho */} - Icon Exclusivo + Troféu Especial @@ -103,26 +106,31 @@ export default function TrophiesPage() { - navigation.navigate('TrophyDetail', { trophy: chest }) + navigation.navigate('TrophyDetail', { + trophy: modoZen.achievement, + }) } > - - Outros Prémios + Outros Troféus - {trophiesblocked.map((trophy, index) => ( + {trophieslocked.slice(0, 3).map((trophy, index) => ( @@ -131,11 +139,8 @@ export default function TrophiesPage() { className="mb-4" > ))} @@ -157,9 +162,9 @@ export default function TrophiesPage() { } > ))} diff --git a/src/pages/TrophyDetail.js b/src/pages/TrophyDetail.js index f1556cb..d581a7d 100644 --- a/src/pages/TrophyDetail.js +++ b/src/pages/TrophyDetail.js @@ -3,17 +3,12 @@ import { View, Text, TouchableOpacity, ScrollView, Image } from 'react-native'; import BackgroundGradient from '../components/BackgroundGradient'; import { Ionicons } from '@expo/vector-icons'; import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; -import ChestIcon from '../../assets/trophies/chest.png'; export default function TrophyDetail({ route, navigation }) { const { trophy } = route.params; let text, description, IconComponent; - if (trophy.icon === 'Chest') { - IconComponent = ChestIcon; - } else { - IconComponent = trophy.icon || BlockedTrophy; - } + IconComponent = trophy.icon || BlockedTrophy; if (IconComponent === BlockedTrophy) { text = '????????'; diff --git a/src/redux/lockedAchievementsSlice.js b/src/redux/lockedAchievementsSlice.js new file mode 100644 index 0000000..54be1b6 --- /dev/null +++ b/src/redux/lockedAchievementsSlice.js @@ -0,0 +1,61 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +// Thunk para buscar troféus bloqueados do utilizador autenticado +export const fetchLockedAchievements = createAsyncThunk( + 'achievements/fetchLocked', + async (_, thunkAPI) => { + try { + const token = await AsyncStorage.getItem('token'); + const userString = await AsyncStorage.getItem('user'); + const user = JSON.parse(userString); + const userId = user.id; + + const response = await fetch(`${API_URL}/achievement/${userId}/locked`, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + if (!response.ok) { + const err = await response.json(); + throw new Error(err.detail || 'Erro ao buscar troféus desbloqueados'); + } + + return await response.json(); + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const lockedAchievementsSlice = createSlice({ + name: 'lockedAchievements', + initialState: { + achievements: [], + loading: false, + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchLockedAchievements.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(fetchLockedAchievements.fulfilled, (state, action) => { + state.loading = false; + state.achievements = action.payload.filter( + (achievement) => achievement.tag !== 'modozen' + ); + }) + .addCase(fetchLockedAchievements.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + }); + }, +}); + +export default lockedAchievementsSlice.reducer; diff --git a/src/redux/modoZenSlice.js b/src/redux/modoZenSlice.js new file mode 100644 index 0000000..d8e756b --- /dev/null +++ b/src/redux/modoZenSlice.js @@ -0,0 +1,71 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +// Thunk para verificar o progresso do Modo Zen +export const checkModoZenProgress = createAsyncThunk( + 'modoZen/checkProgress', + async (_, thunkAPI) => { + try { + const token = await AsyncStorage.getItem('token'); + const userString = await AsyncStorage.getItem('user'); + const user = JSON.parse(userString); + const userId = user.id; + + const response = await fetch( + `${API_URL}/achievement/${userId}/checkModoZen`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); + + if (!response.ok) { + const err = await response.json(); + throw new Error(err.detail || 'Erro ao verificar progresso Modo Zen'); + } + + const data = await response.json(); + + return data; + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const modoZenSlice = createSlice({ + name: 'modoZen', + initialState: { + data: {}, + loading: false, + error: null, + }, + reducers: { + resetModoZenState: (state) => { + state.data = {}; + state.loading = false; + state.error = null; + }, + }, + extraReducers: (builder) => { + builder + .addCase(checkModoZenProgress.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(checkModoZenProgress.fulfilled, (state, action) => { + state.loading = false; + state.data = action.payload; + }) + .addCase(checkModoZenProgress.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + }); + }, +}); + +export const { resetModoZenState } = modoZenSlice.actions; +export default modoZenSlice.reducer; diff --git a/src/redux/store.js b/src/redux/store.js index da1dde0..3ccb489 100644 --- a/src/redux/store.js +++ b/src/redux/store.js @@ -14,6 +14,9 @@ import userReducer from './userSlice'; import screentimeReducer from './screentimeSlice'; import updateUserCredentialsReducer from './updateUserCredentialsSlice'; import deleteAccountReducer from './deleteAccountSlice'; +import unlockedAchievementsReducer from './unlockedAchievementsSlice'; +import lockedAchievementsReducer from './lockedAchievementsSlice'; +import modoZenReducer from './modoZenSlice'; export const store = configureStore({ reducer: { @@ -32,5 +35,8 @@ export const store = configureStore({ screentime: screentimeReducer, updateUserCredentials: updateUserCredentialsReducer, deleteAccount: deleteAccountReducer, + unlockedAchievements: unlockedAchievementsReducer, + lockedAchievements: lockedAchievementsReducer, + modoZen: modoZenReducer, }, }); diff --git a/src/redux/unlockedAchievementsSlice.js b/src/redux/unlockedAchievementsSlice.js new file mode 100644 index 0000000..56e6034 --- /dev/null +++ b/src/redux/unlockedAchievementsSlice.js @@ -0,0 +1,62 @@ +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; + +// Thunk para buscar troféus desbloqueados do utilizador autenticado +export const fetchUnlockedAchievements = createAsyncThunk( + 'achievements/fetchUnlocked', + async (_, thunkAPI) => { + try { + const token = await AsyncStorage.getItem('token'); + const userString = await AsyncStorage.getItem('user'); + const user = JSON.parse(userString); + const userId = user.id; + + const response = await fetch( + `${API_URL}/achievement/${userId}/unlocked`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); + + if (!response.ok) { + const err = await response.json(); + throw new Error(err.detail || 'Erro ao buscar troféus desbloqueados'); + } + + return await response.json(); + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const unlockedAchievementsSlice = createSlice({ + name: 'unlockedAchievements', + initialState: { + achievements: [], + loading: false, + error: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(fetchUnlockedAchievements.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(fetchUnlockedAchievements.fulfilled, (state, action) => { + state.loading = false; + state.achievements = action.payload; + }) + .addCase(fetchUnlockedAchievements.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + }); + }, +}); + +export default unlockedAchievementsSlice.reducer; From 79fa036aa8ace5be4f744095daf3470f9332a9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 04:03:13 +0100 Subject: [PATCH 13/31] trophy page final fix and ttrophy details --- src/pages/TrophiesPage.js | 14 ++++++++++++-- src/pages/TrophyDetail.js | 36 ++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/pages/TrophiesPage.js b/src/pages/TrophiesPage.js index df3417e..6b04820 100644 --- a/src/pages/TrophiesPage.js +++ b/src/pages/TrophiesPage.js @@ -108,6 +108,8 @@ export default function TrophiesPage() { onPress={() => navigation.navigate('TrophyDetail', { trophy: modoZen.achievement, + image: getTrophyIcon(modoZen.achievement.image), + unlocked: modoZen.unlocked, }) } > @@ -134,7 +136,11 @@ export default function TrophiesPage() { - navigation.navigate('TrophyDetail', { trophy }) + navigation.navigate('TrophyDetail', { + trophy, + image: getTrophyIcon(trophy.image), + unlocked: false, + }) } className="mb-4" > @@ -158,7 +164,11 @@ export default function TrophiesPage() { - navigation.navigate('TrophyDetail', { trophy }) + navigation.navigate('TrophyDetail', { + trophy, + image: getTrophyIcon(trophy.image), + unlocked: true, + }) } > - {trophy.icon === 'Chest' ? ( - - ) : ( - - )} + - {text} + {name} {description} @@ -53,7 +49,7 @@ export default function TrophyDetail({ route, navigation }) { - {IconComponent !== BlockedTrophy && IconComponent !== ChestIcon && ( + {IconComponent !== BlockedTrophy && ( Date: Tue, 24 Jun 2025 04:11:12 +0100 Subject: [PATCH 14/31] all trophies --- src/pages/AllTrophies.js | 104 ++++++++++++++++----------- src/pages/TrophiesPage.js | 7 +- src/redux/lockedAchievementsSlice.js | 4 +- 3 files changed, 71 insertions(+), 44 deletions(-) diff --git a/src/pages/AllTrophies.js b/src/pages/AllTrophies.js index ee91692..225172b 100644 --- a/src/pages/AllTrophies.js +++ b/src/pages/AllTrophies.js @@ -1,47 +1,63 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { View, Text, TouchableOpacity, ScrollView } from 'react-native'; import BackgroundGradient from '../components/BackgroundGradient'; import { Ionicons } from '@expo/vector-icons'; import Achievements from '../components/Achievements'; +import TrophyProgress from '../components/TrophyProgress'; + +import { useDispatch, useSelector } from 'react-redux'; + +import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; +import { fetchLockedAchievements } from '../redux/lockedAchievementsSlice'; +import { checkModoZenProgress } from '../redux/modoZenSlice'; + +import AprocuraDeAjuda from '../../assets/trophies/aprocuradeajuda.svg'; +import Autoconsciente from '../../assets/trophies/autoconsciente.svg'; +import Curioso from '../../assets/trophies/curioso.svg'; +import Dedicado from '../../assets/trophies/dedicado.svg'; +import DiaDeDetox from '../../assets/trophies/diadedetox.svg'; +import HoraDeRecolher from '../../assets/trophies/horaderecolher.svg'; +import Marcodos20 from '../../assets/trophies/marcodos20.svg'; +import ModoZen from '../../assets/trophies/modozen.svg'; +import Perfecionista from '../../assets/trophies/perfecionista.svg'; import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BomDiaAlegria from '../../assets/trophies/modozen.svg'; -import BomProgresso from '../../assets/trophies/curioso.svg'; +import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; + +const trophies = { + aprocuradeajuda: AprocuraDeAjuda, + autoconsciente: Autoconsciente, + curioso: Curioso, + dedicado: Dedicado, + diadedetox: DiaDeDetox, + horaderecolher: HoraDeRecolher, + marcodos20: Marcodos20, + modozen: ModoZen, + perfecionista: Perfecionista, + primeiropasso: PrimeiroPasso, + blocked: BlockedTrophy, +}; + +const getTrophyIcon = (iconName) => { + if (!iconName) return BlockedTrophy; + + const key = iconName.replace('.svg', '').toLowerCase(); + return trophies[key] || BlockedTrophy; +}; export default function AllTrophies({ navigation }) { - const trophieswon = [ - { - text: 'Primeiro Passo', - description: 'Completar o teste inicial', - icon: PrimeiroPasso, - }, - { - text: 'Bom Dia Alegria', - description: - 'Não usar o telemóvel nos primeiros 30 minutos após acordar durante 3 dias consecutivos', - icon: BomDiaAlegria, - }, + const dispatch = useDispatch(); + + useEffect(() => { + dispatch(checkModoZenProgress()); + dispatch(fetchUnlockedAchievements()); + dispatch(fetchLockedAchievements()); + }, [dispatch]); - { - text: 'Bom Progresso', - description: - 'Reduzir o uso médio de uma app considerada viciante em 1h por dia durante a semana', - icon: BomProgresso, - }, - ]; + const trophieswon = + useSelector((state) => state.unlockedAchievements.achievements) || []; - const trophiesblocked = [ - { - text: 'Autoconsciênte', - description: - 'Ver o relatório das apps mais usadas todos os dias de uma semana', - icon: null, - }, - { - text: 'Marco das 20', - description: 'Responder a 20 perguntas da Lumi', - icon: null, - }, - ]; + const trophieslocked = + useSelector((state) => state.lockedAchievements.achievements) || []; return ( @@ -69,14 +85,18 @@ export default function AllTrophies({ navigation }) { - navigation.navigate('TrophyDetail', { trophy }) + navigation.navigate('TrophyDetail', { + trophy, + image: getTrophyIcon(trophy.image), + unlocked: true, + }) } > ))} @@ -89,11 +109,15 @@ export default function AllTrophies({ navigation }) { - {trophiesblocked.map((trophy, index) => ( + {trophieslocked.map((trophy, index) => ( - navigation.navigate('TrophyDetail', { trophy }) + navigation.navigate('TrophyDetail', { + trophy, + image: getTrophyIcon(trophy.image), + unlocked: false, + }) } > state.modoZen.data) || {}; + const trophiesunlocked = useSelector((state) => state.unlockedAchievements.achievements) || []; const trophieswon = trophiesunlocked.filter( (trophy) => trophy.tag !== 'modozen' ); - const trophieslocked = + + const trophiesnotwon = useSelector((state) => state.lockedAchievements.achievements) || []; + const trophieslocked = trophiesnotwon.filter( + (trophy) => trophy.tag !== 'modozen' + ); return ( diff --git a/src/redux/lockedAchievementsSlice.js b/src/redux/lockedAchievementsSlice.js index 54be1b6..bc4e09e 100644 --- a/src/redux/lockedAchievementsSlice.js +++ b/src/redux/lockedAchievementsSlice.js @@ -47,9 +47,7 @@ const lockedAchievementsSlice = createSlice({ }) .addCase(fetchLockedAchievements.fulfilled, (state, action) => { state.loading = false; - state.achievements = action.payload.filter( - (achievement) => achievement.tag !== 'modozen' - ); + state.achievements = action.payload; }) .addCase(fetchLockedAchievements.rejected, (state, action) => { state.loading = false; From de72d8f4056972741ed6dc599260910d80943d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 04:55:01 +0100 Subject: [PATCH 15/31] notificacao com imagem --- assets/trophies/index.js | 51 ++++++++++++++++++++++++++ src/pages/AllTrophies.js | 33 +---------------- src/pages/ProfilePage.js | 77 +++++++++++++++++---------------------- src/pages/TrophiesPage.js | 33 +---------------- src/toastConfig.js | 17 +++++++-- src/useSocket.js | 1 + 6 files changed, 101 insertions(+), 111 deletions(-) create mode 100644 assets/trophies/index.js diff --git a/assets/trophies/index.js b/assets/trophies/index.js new file mode 100644 index 0000000..9794045 --- /dev/null +++ b/assets/trophies/index.js @@ -0,0 +1,51 @@ +import React from 'react'; +import AProcuradeAjuda from './aprocuradeajuda.svg'; +import Autoconsciente from './autoconsciente.svg'; +import Curioso from './curioso.svg'; +import Dedicado from './dedicado.svg'; +import DiaDeDetox from './diadedetox.svg'; +import HoraDeRecolher from './horaderecolher.svg'; +import Marcodos20 from './marcodos20.svg'; +import ModoZen from './modozen.svg'; +import Perfecionista from './perfecionista.svg'; +import PrimeiroPasso from './primeiropasso.svg'; +import BlockedTrophy from './trophyblocked.svg'; + +const trophies = { + aprocuradeajuda: AProcuradeAjuda, + autoconsciente: Autoconsciente, + curioso: Curioso, + dedicado: Dedicado, + diadedetox: DiaDeDetox, + horaderecolher: HoraDeRecolher, + marcodos20: Marcodos20, + modozen: ModoZen, + perfecionista: Perfecionista, + primeiropasso: PrimeiroPasso, + blocked: BlockedTrophy, +}; + +export const getTrophyIcon = (iconName) => { + if (!iconName) return BlockedTrophy; + + // Remove a extensão .svg se existir e converte para chave do objeto + const key = iconName.replace('.svg', '').toLowerCase(); + return trophies[key] || BlockedTrophy; +}; + +// Exporta os componentes individuais também +export { + AProcuradeAjuda, + Autoconsciente, + Curioso, + Dedicado, + DiaDeDetox, + HoraDeRecolher, + Marcodos20, + ModoZen, + Perfecionista, + PrimeiroPasso, + BlockedTrophy as DefaultTrophy, +}; + +export default trophies; diff --git a/src/pages/AllTrophies.js b/src/pages/AllTrophies.js index 225172b..f0215cd 100644 --- a/src/pages/AllTrophies.js +++ b/src/pages/AllTrophies.js @@ -11,38 +11,7 @@ import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; import { fetchLockedAchievements } from '../redux/lockedAchievementsSlice'; import { checkModoZenProgress } from '../redux/modoZenSlice'; -import AprocuraDeAjuda from '../../assets/trophies/aprocuradeajuda.svg'; -import Autoconsciente from '../../assets/trophies/autoconsciente.svg'; -import Curioso from '../../assets/trophies/curioso.svg'; -import Dedicado from '../../assets/trophies/dedicado.svg'; -import DiaDeDetox from '../../assets/trophies/diadedetox.svg'; -import HoraDeRecolher from '../../assets/trophies/horaderecolher.svg'; -import Marcodos20 from '../../assets/trophies/marcodos20.svg'; -import ModoZen from '../../assets/trophies/modozen.svg'; -import Perfecionista from '../../assets/trophies/perfecionista.svg'; -import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; - -const trophies = { - aprocuradeajuda: AprocuraDeAjuda, - autoconsciente: Autoconsciente, - curioso: Curioso, - dedicado: Dedicado, - diadedetox: DiaDeDetox, - horaderecolher: HoraDeRecolher, - marcodos20: Marcodos20, - modozen: ModoZen, - perfecionista: Perfecionista, - primeiropasso: PrimeiroPasso, - blocked: BlockedTrophy, -}; - -const getTrophyIcon = (iconName) => { - if (!iconName) return BlockedTrophy; - - const key = iconName.replace('.svg', '').toLowerCase(); - return trophies[key] || BlockedTrophy; -}; +import { getTrophyIcon } from '../../assets/trophies'; export default function AllTrophies({ navigation }) { const dispatch = useDispatch(); diff --git a/src/pages/ProfilePage.js b/src/pages/ProfilePage.js index 5d3563c..1fc04df 100644 --- a/src/pages/ProfilePage.js +++ b/src/pages/ProfilePage.js @@ -10,15 +10,15 @@ import { Feather } from '@expo/vector-icons'; import { useNavigation } from '@react-navigation/native'; import { logoutUser } from '../redux/authSlice'; -import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BomDiaAlegria from '../../assets/trophies/modozen.svg'; -import BomProgresso from '../../assets/trophies/curioso.svg'; -import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; - import { useDispatch, useSelector } from 'react-redux'; import { fetchUserAnswers } from '../redux/userAnswersSlice'; import { loadUserFromStorage } from '../redux/userSlice'; +import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; + +import { getTrophyIcon } from '../../assets/trophies'; +import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; + export default function ProfilePage() { const navigation = useNavigation(); @@ -26,33 +26,17 @@ export default function ProfilePage() { const { answers: perguntas } = useSelector((state) => state.userAnswers); const user = useSelector((state) => state.user.data); + const trophieswon = + useSelector((state) => state.unlockedAchievements.achievements) || []; + useEffect(() => { + dispatch(fetchUnlockedAchievements()); dispatch(loadUserFromStorage()); dispatch(fetchUserAnswers()); }, [dispatch]); const questionCount = perguntas.length; - const trophieswon = [ - { - text: 'Primeiro Passo', - description: 'Completar o teste inicial', - icon: PrimeiroPasso, - }, - { - text: 'Bom Dia Alegria', - description: - 'Não usar o telemóvel nos primeiros 30 minutos após acordar durante 3 dias consecutivos', - icon: BomDiaAlegria, - }, - { - text: 'Bom Progresso', - description: - 'Reduzir o uso médio de uma app considerada viciante em 1h por dia durante a semana', - icon: BomProgresso, - }, - ]; - const handleLogout = async () => { try { await dispatch(logoutUser()).unwrap(); @@ -125,25 +109,32 @@ export default function ProfilePage() { {/* Troféus disponíveis */} - {trophieswon.slice(0, 3).map((trophy, index) => ( - - - navigation.navigate('TrophyDetail', { trophy }) - } - > - - + {trophieswon.slice(0, 3).map((trophy, index) => { + const TrophyIcon = getTrophyIcon(trophy.image); + return ( + + + navigation.navigate('TrophyDetail', { + trophy, + image: getTrophyIcon(trophy.image), + unlocked: true, + }) + } + > + + - {index < 2 && ( - - )} - - ))} + {index < 2 && ( + + )} + + ); + })} {/* Troféu bloqueado caso não hajam 3 trofeus */} {Array.from({ length: 3 - trophieswon.length }).map( diff --git a/src/pages/TrophiesPage.js b/src/pages/TrophiesPage.js index 90508e1..ba319a5 100644 --- a/src/pages/TrophiesPage.js +++ b/src/pages/TrophiesPage.js @@ -12,38 +12,7 @@ import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; import { fetchLockedAchievements } from '../redux/lockedAchievementsSlice'; import { checkModoZenProgress } from '../redux/modoZenSlice'; -import AprocuraDeAjuda from '../../assets/trophies/aprocuradeajuda.svg'; -import Autoconsciente from '../../assets/trophies/autoconsciente.svg'; -import Curioso from '../../assets/trophies/curioso.svg'; -import Dedicado from '../../assets/trophies/dedicado.svg'; -import DiaDeDetox from '../../assets/trophies/diadedetox.svg'; -import HoraDeRecolher from '../../assets/trophies/horaderecolher.svg'; -import Marcodos20 from '../../assets/trophies/marcodos20.svg'; -import ModoZen from '../../assets/trophies/modozen.svg'; -import Perfecionista from '../../assets/trophies/perfecionista.svg'; -import PrimeiroPasso from '../../assets/trophies/primeiropasso.svg'; -import BlockedTrophy from '../../assets/trophies/trophyblocked.svg'; - -const trophies = { - aprocuradeajuda: AprocuraDeAjuda, - autoconsciente: Autoconsciente, - curioso: Curioso, - dedicado: Dedicado, - diadedetox: DiaDeDetox, - horaderecolher: HoraDeRecolher, - marcodos20: Marcodos20, - modozen: ModoZen, - perfecionista: Perfecionista, - primeiropasso: PrimeiroPasso, - blocked: BlockedTrophy, -}; - -const getTrophyIcon = (iconName) => { - if (!iconName) return BlockedTrophy; - - const key = iconName.replace('.svg', '').toLowerCase(); - return trophies[key] || BlockedTrophy; -}; +import { getTrophyIcon } from '../../assets/trophies'; export default function TrophiesPage() { const navigation = useNavigation(); diff --git a/src/toastConfig.js b/src/toastConfig.js index 5a65813..7f358ce 100644 --- a/src/toastConfig.js +++ b/src/toastConfig.js @@ -1,11 +1,20 @@ import React from 'react'; import { View, Text, TouchableWithoutFeedback } from 'react-native'; -import { useNavigation } from '@react-navigation/native'; -import TrophyGoldIcon from '../assets/icons/trophygold.svg'; + import { navigate } from './NavigationRef'; +import { getTrophyIcon } from '../assets/trophies'; + +const IconComponent = ({ svg, width = 40, height = 40 }) => { + const SvgIcon = getTrophyIcon(svg); + if (!SvgIcon) { + return null; + } + + return ; +}; const toastConfig = { - success: ({ text1, text2 }) => { + success: ({ text1, text2, props }) => { const handlePress = () => { navigate('Troféus', { screen: 'AllTrophies', @@ -32,7 +41,7 @@ const toastConfig = { }} > - + diff --git a/src/useSocket.js b/src/useSocket.js index 75c0651..9167bfc 100644 --- a/src/useSocket.js +++ b/src/useSocket.js @@ -24,6 +24,7 @@ export default function useSocket(userId) { position: 'top', visibilityTime: 3000, autoHide: true, + props: { svg: data.image }, }); }); From 7a62dfa7ef8b90922555ddeda789104a1b8a532c Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 13:05:17 +0100 Subject: [PATCH 16/31] feat(QuestionPage): hide floating bubble on component mount, added terms an conditions --- app.json | 9 +- package-lock.json | 517 ------------- package.json | 1 - src/components/TermsAndConditionsModal.js | 883 +++++++++++++++++++++- src/pages/QuestionPage.js | 8 + 5 files changed, 869 insertions(+), 549 deletions(-) diff --git a/app.json b/app.json index 55ca92c..a7a6dbc 100644 --- a/app.json +++ b/app.json @@ -43,7 +43,14 @@ }, "plugins": [ "expo-font", - "expo-dev-client" + "expo-dev-client", + "@react-native-firebase/app", + [ + "@react-native-firebase/messaging", + { + "backgroundMessageHandler": "./src/firebase-messaging.js" + } + ] ] } } diff --git a/package-lock.json b/package-lock.json index 94310ad..7522ed4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,6 @@ "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-notifications": "~0.31.2", "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", @@ -2968,12 +2967,6 @@ "node": ">=6" } }, - "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", @@ -4618,19 +4611,6 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "license": "MIT" }, - "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/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -4675,21 +4655,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -5000,12 +4965,6 @@ "@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", @@ -5211,53 +5170,6 @@ "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -5910,23 +5822,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -5936,23 +5831,6 @@ "node": ">=8" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6088,20 +5966,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -6245,36 +6109,6 @@ "stackframe": "^1.3.4" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -6387,15 +6221,6 @@ } } }, - "node_modules/expo-application": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-6.1.4.tgz", - "integrity": "sha512-jXVZb3llTQ5j4C/I03GxKjujmhKex9Xo5JDZo/pRjScHSr4NoeMjPKWThyWVlWDM1v5YSEcsRJebVfTvq9SR5Q==", - "license": "MIT", - "peerDependencies": { - "expo": "*" - } - }, "node_modules/expo-asset": { "version": "11.1.5", "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.1.5.tgz", @@ -6622,26 +6447,6 @@ "invariant": "^2.2.4" } }, - "node_modules/expo-notifications": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.31.2.tgz", - "integrity": "sha512-p73VIECCULm9XkHE6WNweZDw9G62Tz9OpOOQ2tCF/QLpDW8W1q4PEUZUdbrTJREB4Q0VHegVNDJmKUkSOp7bfA==", - "license": "MIT", - "dependencies": { - "@expo/image-utils": "^0.7.4", - "@ide/backoff": "^1.0.0", - "abort-controller": "^3.0.0", - "assert": "^2.0.0", - "badgin": "^1.1.5", - "expo-application": "~6.1.4", - "expo-constants": "~17.1.6" - }, - "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*" - } - }, "node_modules/expo-splash-screen": { "version": "0.30.8", "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.8.tgz", @@ -6918,15 +6723,6 @@ "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", "license": "BSD-2-Clause" }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -7022,30 +6818,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -7055,19 +6827,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/getenv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", @@ -7142,18 +6901,6 @@ "node": ">=4" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -7178,45 +6925,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -7464,22 +7172,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7498,18 +7190,6 @@ "node": ">=8" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -7567,24 +7247,6 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7597,22 +7259,6 @@ "node": ">=0.10.0" } }, - "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": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7631,39 +7277,6 @@ "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -8472,15 +8085,6 @@ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "license": "Apache-2.0" }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -9272,51 +8876,6 @@ "node": ">= 6" } }, - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -9728,15 +9287,6 @@ "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", "license": "MIT" }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.4.49", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", @@ -11067,23 +10617,6 @@ ], "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11284,23 +10817,6 @@ "node": ">= 0.8" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -12288,19 +11804,6 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -12453,26 +11956,6 @@ "node": ">= 8" } }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wonka": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz", diff --git a/package.json b/package.json index 3ee6dcb..f1f6d0b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-notifications": "~0.31.2", "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", diff --git a/src/components/TermsAndConditionsModal.js b/src/components/TermsAndConditionsModal.js index bdc040d..c8c7028 100644 --- a/src/components/TermsAndConditionsModal.js +++ b/src/components/TermsAndConditionsModal.js @@ -23,37 +23,860 @@ export default function TermsAndContitionsModal({ Termos e Condições - - Lorem ipsum - - Dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip - ex ea commodo consequat. Duis aute irure dolor in reprehenderit in - voluptate velit esse cillum dolore eu fugiat nulla pariatur. - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui - officia deserunt mollit anim id est laborum. - - Lorem ipsum - - Dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip - ex ea commodo consequat. Duis aute irure dolor in reprehenderit in - voluptate velit esse cillum dolore eu fugiat nulla pariatur. - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui - officia deserunt mollit anim id est laborum. - - Lorem ipsum - - Dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip - ex ea commodo consequat. Duis aute irure dolor in reprehenderit in - voluptate velit esse cillum dolore eu fugiat nulla pariatur. - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui - officia deserunt mollit anim id est laborum. + + + Última atualização a 06 de junho de 2025 + + {' '} + ACORDO COM OS NOSSOS TERMOS LEGAIS + + + Nós somos a Lumicheck ("Companhia, " "nós, " "nós, " "nosso"), + sociedade registada em Aveiro, Portugal. Operamos a aplicação + móvel Lumicheck (o "Aplicativo"), bem como quaisquer outros + produtos e serviços relacionados que se refiram ou tenham ligações + para estes termos legais (o "Termos legais") (coletivamente, o + "Serviços"). O Lumicheck é uma aplicação desenvolvida com o + objetivo de promover a autoconsciência e o equilíbrio na + utilização do telemóvel. Inspirados pelos efeitos negativos do uso + abusivo das redes sociais, dos jogos, das apostas e das compras + online, decidimos criar uma solução que permitisse aos + utilizadores monitorizar a sua rotina digital de forma simples e + eficaz, promover conteúdos literários para educar o utilizador, + fazer a ponte entre a ajuda profissional e os utilizadores e + tarefas que permite ao utilizador ganhar troféus e melhorar os + seus hábitos de uma forma dinâmica. Poderá contactar-nos por email + para lumicheck.app@gmail.com. Estes Termos Legais constituem um + acordo legalmente vinculativo celebrado entre si, seja + pessoalmente ou em nome de uma entidade ("tu") e Lumicheck, + referentes ao seu acesso e utilização dos Serviços. Concorda que, + ao aceder aos Serviços, leu, compreendeu e concordou em + comprometer-se com todos estes Termos Legais. SE NÃO CONCORDAR COM + TODOS ESTES TERMOS LEGAIS, ESTÁ EXPRESSAMENTE PROIBIDO DE UTILIZAR + OS SERVIÇOS E DEVERÁ INTERROMPER A UTILIZAÇÃO IMEDIATAMENTE. + Iremos notificá-lo com antecedência sobre quaisquer alterações + programadas nos Serviços que estiver a utilizar. Os Termos Legais + modificados entrarão em vigor após a publicação ou notificação + através do e-mail lumicheck.app@gmail.com , conforme indicado na + mensagem de e-mail. Ao continuar a utilizar os Serviços após a + data de entrada em vigor de quaisquer alterações, concorda em + comprometer-se com os termos modificados. Todos os utilizadores + menores de idade na jurisdição em que residem (geralmente menores + de 18 anos) devem ter a permissão e ser supervisionados + diretamente pelos seus pais ou tutores para utilizar os Serviços. + Se for menor de idade, peça aos seus pais ou tutores que leiam e + concordem com estes Termos Legais antes de utilizar os Serviços. + Recomendamos que imprima uma cópia destes Termos Legais para os + seus registos. + + + ÍNDICE + + 1. OS NOSSOS SERVIÇOS + + 2. DIREITOS DE PROPRIEDADE INTELECTUAL + + + 3. REPRESENTAÇÕES DO UTILIZADOR + + 4. REGISTO DO UTILIZADOR + 5. ATIVIDADES PROIBIDAS + + 6. CONTRIBUIÇÕES GERADAS PELO UTILIZADOR + + + 7. LICENÇA DE CONTRIBUIÇÃO + + + 8. LICENÇA DE APLICAÇÃO MÓVEL + + + 9. SITES E CONTEÚDOS DE TERCEIROS + + 10. GESTÃO DE SERVIÇOS + + 11. POLÍTICA DE PRIVACIDADE + + 12. PRAZO E RESCISÃO + + 13. MODIFICAÇÕES E INTERRUPÇÕES + + 14. LEI APLICÁVEL + 15. RESOLUÇÃO DE LITÍGIOS + 16. CORREÇÕES + + 17. ISENÇÃO DE RESPONSABILIDADE + + + 18. LIMITAÇÕES DE RESPONSABILIDADE + + 19. INDEMNIZAÇÃO + 20. DADOS DO UTILIZADOR + + 21. COMUNICAÇÕES ELECTRÓNICAS, TRANSACÇÕES E ASSINATURAS + + 22. DIVERSOS + + 23. A PONTUAÇÃO NÃO É UM DIAGNÓSTICO + + 24. CONTACTE-NOS + + + 1. OS NOSSOS SERVIÇOS + + + + As informações fornecidas durante a utilização dos Serviços não se + destinam à distribuição ou utilização por qualquer pessoa ou + entidade em qualquer jurisdição ou país onde tal distribuição ou + utilização seja contrária à lei ou regulamento ou que nos sujeite + a qualquer exigência de registo em tal jurisdição ou país. + Consequentemente, as pessoas que optarem por aceder aos Serviços a + partir de outras localidades, fá-lo-ão por sua iniciativa e serão + as únicas responsáveis pelo cumprimento das leis locais, se e na + medida em que as leis locais forem aplicáveis. + + + + 2. DIREITOS DE PROPRIEDADE INTELECTUAL + + + + A nossa propriedade intelectual Somos o proprietário ou licenciado + de todos os direitos de propriedade intelectual dos nossos + Serviços, incluindo todo o código-fonte, bases de dados, + funcionalidades, software, designs de websites, áudio, vídeo, + texto, fotografias e gráficos nos Serviços (coletivamente, o + "Conteúdo"), bem como as marcas comerciais, marcas de serviço e + logótipos neles contidos (as "Marcas"). O nosso Conteúdo e Marcas + são protegidos por leis de direitos de autor e marcas registadas + (e vários outros direitos de propriedade intelectual e leis de + concorrência desleal) e tratados em todo o mundo. O Conteúdo e as + Marcas são fornecidos nos Serviços ou através dos mesmos "NO + ESTADO EM QUE SE ENCONTRAM", apenas para o seu uso pessoal, não + comercial ou para fins comerciais internos. A sua utilização de + nossos serviços Sujeito à sua conformidade com estes Termos + Legais, incluindo o "ATIVIDADES PROIBIDAS " secção abaixo, + concedemos-lhe uma licença não exclusiva, intransmissível e + revogável para: aceder aos Serviços; e descarregar ou imprimir uma + cópia de qualquer parte do Conteúdo a que tenha obtido o acesso + adequado, exclusivamente para o seu uso pessoal, não comercial ou + para fins comerciais internos. Exceto conforme estabelecido nesta + secção ou em qualquer outro lugar nos nossos Termos Legais, + nenhuma parte dos Serviços e nenhum Conteúdo ou Marcas podem ser + copiados, reproduzidos, agregados, republicados, carregados, + publicados, exibidos publicamente, codificados, traduzidos, + transmitidos, distribuídos, vendidos, licenciados ou de outra + forma explorados para qualquer fim comercial, sem a nossa + autorização prévia expressa por escrito. Caso deseje fazer + qualquer utilização dos Serviços, Conteúdo ou Marcas diferente da + estabelecida nesta secção ou em qualquer outro local dos nossos + Termos Legais, envie o seu pedido para: lumicheck.app@gmail.com . + Se lhe concedermos permissão para publicar, reproduzir ou exibir + publicamente qualquer parte dos nossos Serviços ou Conteúdo, + deverá identificar-nos como proprietários ou licenciadores dos + Serviços, Conteúdo ou Marcas e garantir que qualquer aviso de + direitos de autor ou de propriedade aparece ou é visível na + publicação, reprodução ou exibição do nosso Conteúdo. Reservamos + todos os direitos que não lhe sejam expressamente concedidos em + relação aos Serviços, Conteúdo e Marcas. Qualquer violação destes + Direitos de Propriedade Intelectual constituirá uma violação + material dos nossos Termos Legais e o seu direito de utilizar os + nossos Serviços será rescindido imediatamente. Os seus envios Por + favor, reveja esta secção e o "ATIVIDADES PROIBIDAS " secção + cuidadosamente antes de utilizar os nossos Serviços para + compreender (a) os direitos que nos concede e (b) as obrigações + que tem ao publicar ou carregar qualquer conteúdo através dos + Serviços. Submissões:Ao enviar-nos diretamente qualquer pergunta, + comentário, sugestão, ideia, feedback ou outra informação sobre os + Serviços ("Submissões"), concorda em ceder-nos todos os direitos + de propriedade intelectual sobre tal Envio. Concorda que seremos + os proprietários deste Envio e teremos o direito ao seu uso e + divulgação irrestritos para qualquer fim lícito, comercial ou + outro, sem reconhecimento ou compensação para si. É responsável + pelo que publica ou carrega:Ao enviar-nos Envios através de + qualquer parte dos Serviços, você: confirme que leu e concorda com + os nossos "ATIVIDADES PROIBIDAS " e não publicará, enviará, + carregará ou transmitirá através dos Serviços qualquer Envio que + seja ilegal, assediante, odioso, prejudicial, difamatório, + obsceno, intimidante, abusivo, discriminatório, ameaçador para + qualquer pessoa ou grupo, sexualmente explícito, falso, impreciso, + enganoso ou enganoso; na medida do permitido pela lei aplicável, + renunciar a todos e quaisquer direitos morais sobre tal Envio; + garante que tais Envio são originais seus ou que tem os direitos e + licenças necessários para enviar tais Envio e que tem plena + autoridade para nos conceder os direitos acima mencionados em + relação aos seus Envio; e garante e declara que os seus Envio não + constituem informação confidencial. É o único responsável pelos + seus Envio e concorda expressamente em reembolsar-nos por todas e + quaisquer perdas que possamos sofrer devido à sua violação (a) + desta secção, (b) de quaisquer direitos de propriedade intelectual + de terceiros ou (c) da lei aplicável. + + + + 3. REPRESENTAÇÕES DO UTILIZADOR + + + + Ao utilizar os Serviços, declara e garante que: (1) todas as + informações de registo que enviar serão verdadeiras, precisas, + atuais e completas; (2) manterá a precisão dessas informações e + atualizá-las-á prontamente conforme necessário; (3) tem capacidade + legal e concorda em cumprir estes Termos Legais; (4) não é menor + de idade na jurisdição em que reside ou, se menor de idade, + recebeu autorização dos pais para utilizar os Serviços; (5) não + acederá aos Serviços por meios automatizados ou não humanos, seja + através de um bot, script ou de outra forma; (6) não utilizará os + Serviços para qualquer fim ilegal ou não autorizado; e (7) a sua + utilização dos Serviços não violará qualquer lei ou regulamento + aplicável. Se fornecer qualquer informação falsa, imprecisa, + desatualizada ou incompleta, temos o direito de suspender ou + encerrar a sua conta e recusar toda e qualquer utilização atual ou + futura dos Serviços (ou qualquer parte dos mesmos). + + + + 4. REGISTO DO UTILIZADOR + + + + Poderá ser necessário que se registe para utilizar os Serviços. + Concorda em manter a sua palavra-passe confidencial e será + responsável por toda a utilização da sua conta e palavra-passe. + Reservamo-nos o direito de remover, recuperar ou alterar um nome + de utilizador que selecione se determinarmos, a nosso exclusivo + critério, que tal nome de utilizador é inapropriado, obsceno ou de + outra forma censurável. + + + + 5. ATIVIDADES PROIBIDAS + + + + Não poderá aceder ou utilizar os Serviços para qualquer outra + finalidade que não aquela para a qual os disponibilizamos. Os + Serviços não poderão ser utilizados em relação a quaisquer + empreendimentos comerciais, exceto aqueles especificamente + endossados ou aprovados por nós. Como utilizador dos Serviços, + concorda em não: + + + - Recuperar sistematicamente dados ou outro conteúdo dos Serviços + para criar ou compilar, direta ou indiretamente, uma coleção, + compilação, base de dados ou diretório sem a nossa autorização por + escrito. Enganar, defraudar ou induzir em erro + + + - A nós e a outros utilizadores, especialmente em qualquer + tentativa de obter informações confidenciais da conta, como + palavras-passe de utilizadores. + + + - Contornar, desativar ou de qualquer outra forma interferir com + características de segurança dos Serviços, incluindo + características que impeçam ou restrinjam a utilização ou cópia de + qualquer Conteúdo ou imponham limitações à utilização dos Serviços + e/ou do Conteúdo neles contido. Denegrir, denegrir ou de qualquer + outra forma prejudicar, na nossa opinião, a nós e/ou aos Serviços. + + + - Utilizar quaisquer informações obtidas nos Serviços para + assediar, abusar ou prejudicar outra pessoa. + + + - Fazer um uso indevido dos nossos serviços de apoio ou enviar + denúncias falsas de abuso ou má conduta. + + + - Utilizar os Serviços de forma incompatível com quaisquer leis ou + regulamentos aplicáveis. + + + - Envolver-se em enquadramentos ou vinculação não autorizados dos + Serviços. + + + - Carregar ou transmitir (ou tentar carregar ou transmitir) vírus, + cavalos de Troia ou outro material, incluindo o uso excessivo de + letras maiúsculas e spam (publicação contínua de texto + repetitivo), que interfira com a utilização e aproveitamento + ininterrupto dos Serviços por qualquer parte ou modifique, + prejudique, interrompa, altere ou interfira com a utilização, + recursos, funções, operação ou manutenção dos Serviços. + + + - Fazer qualquer utilização automatizada do sistema, como utilizar + scripts para enviar comentários ou mensagens, ou utilizar data + mining, robots ou ferramentas semelhantes de recolha e extração de + dados. + + + - Apagar o aviso de direitos de autor ou outros direitos de + propriedade de qualquer Conteúdo. + + + - Tentar representar outro utilizador ou pessoa ou utilizar o nome + de utilizador de outro utilizador. + + + - Carregar ou transmitir (ou tentar carregar ou transmitir) + qualquer material que atue como um mecanismo passivo ou ativo de + recolha ou transmissão de informações, incluindo, sem limitação, + formatos de intercâmbio gráfico transparentes ("gifs"), pixels + 1×1, web bugs, cookies ou outros dispositivos semelhantes (por + vezes designados por "spyware" ou "mecanismos de recolha passiva" + ou "pcms"). + + + - Interferir, interromper ou criar uma sobrecarga indevida nos + Serviços ou nas redes ou serviços ligados aos Serviços. + + + - Assediar, incomodar, intimidar ou ameaçar qualquer um dos nossos + funcionários ou agentes envolvidos na prestação de qualquer parte + dos Serviços a si. + + + - Tentar contornar quaisquer medidas dos Serviços destinadas a + impedir ou restringir o acesso aos Serviços, ou a qualquer parte + dos Serviços. + + + - Copiar ou adaptar o software dos Serviços, incluindo, entre + outros, Flash, PHP, HTML, JavaScript ou outro código. + + + - Exceto conforme permitido pela lei aplicável, decifrar, + descompilar, desmontar ou fazer engenharia reversa de qualquer + software que componha ou de qualquer forma faça parte dos + Serviços. + + + - Exceto quando for o resultado da utilização de motores de busca + padrão ou de navegadores de Internet, utilize, inicie, desenvolva + ou distribua qualquer sistema automatizado, incluindo, sem + limitação, qualquer spider, robô, utilitário de batota, scraper ou + leitor offline que aceda aos Serviços, ou utilize ou inicie + qualquer script não autorizado ou outro software. + + + - Utilize um agente de compras ou agente de compras para fazer + compras nos Serviços. + + + - Fazer qualquer utilização não autorizada dos Serviços, incluindo + a recolha de nomes de utilizador e/ou endereços de e-mail dos + utilizadores por meios eletrónicos ou outros para o envio de + e-mails não solicitados, ou a criação de contas de utilizador por + meios automatizados ou sob falsos pretextos. + + + - Utilizar os Serviços como parte de qualquer esforço para + competir connosco ou de outra forma utilizar os Serviços e/ou o + Conteúdo para qualquer empreendimento ou empreendimento comercial + de geração de receitas. + + + - Utilizar os Serviços como parte de qualquer esforço para + competir connosco ou de outra forma utilizar os Serviços e/ou o + Conteúdo para qualquer empreendimento ou empreendimento comercial + de geração de receitas. + + + + 6. CONTRIBUIÇÕES GERADAS PELO UTILIZADOR + + + + Os Serviços não oferecem aos utilizadores a possibilidade de + enviar ou publicar conteúdos. + + + + 7. LICENÇA DE CONTRIBUIÇÃO + + + + O Utilizador e os Serviços concordam que podemos aceder, + armazenar, processar e utilizar quaisquer informações e dados + pessoais que nos forneça e as suas escolhas (incluindo + definições). Ao enviar sugestões ou outros comentários sobre os + Serviços, concorda que podemos utilizar e partilhar tais + comentários para qualquer fim sem compensação para si. + + + + 8. LICENÇA DE APLICAÇÃO MÓVEL + + + Licença de utilização + + Se aceder aos Serviços através da Aplicação, concedemos-lhe um + direito revogável, não exclusivo, intransmissível e limitado de + instalar e utilizar a Aplicação em dispositivos eletrónicos sem + fios de sua propriedade ou controlados por si, e de aceder e + utilizar a Aplicação em tais dispositivos estritamente de acordo + com os termos e condições desta licença de aplicação móvel contida + nestes Termos Legais. Não deverá: (1) exceto conforme permitido + pela lei aplicável, descompilar, fazer engenharia reversa, + desmontar, tentar derivar o código-fonte ou desencriptar a + Aplicação; (2) fazer qualquer modificação, adaptação, melhoria, + aperfeiçoamento, tradução ou trabalho derivado da Aplicação; (3) + violar quaisquer leis, regras ou regulamentos aplicáveis + relacionados com o seu acesso ou utilização da Aplicação; (4) + remover, alterar ou ocultar qualquer aviso de propriedade + (incluindo qualquer aviso de direitos de autor ou marca comercial) + publicado por nós ou pelos licenciadores da Aplicação; (5) + utilizar o Aplicativo para qualquer empreendimento de geração de + receitas, empreendimento comercial ou outro fim para o qual não + foi concebido ou pretendido; (6) disponibilizar a aplicação numa + rede ou noutro ambiente que permita o acesso ou a utilização por + vários dispositivos ou utilizadores ao mesmo tempo; (7) utilizar a + aplicação para criar um produto, serviço ou software que seja, + direta ou indiretamente, competitivo ou de alguma forma um + substituto da aplicação; (8) utilizar a aplicação para enviar + consultas automatizadas a qualquer site ou para enviar qualquer + e-mail comercial não solicitado; ou (9) utilizar qualquer + informação proprietária ou qualquer uma das nossas interfaces ou a + nossa outra propriedade intelectual no design, desenvolvimento, + fabrico, licenciamento ou distribuição de quaisquer aplicações, + acessórios ou dispositivos para utilização com a aplicação. + + + + Dispositivos Apple e Android + + + Os seguintes termos aplicam-se quando utiliza a aplicação obtida + na Apple Store ou no Google Play (cada um deles um "Distribuidor + de Aplicações") para aceder aos Serviços: (1) a licença que lhe + foi concedida para a nossa aplicação está limitada a uma licença + não transferível para utilizar a aplicação num dispositivo que + utilize os sistemas operativos Apple iOS ou Android, conforme + aplicável, e de acordo com as regras de utilização estabelecidas + nos termos de serviço do Distribuidor de Aplicações aplicável; (2) + somos responsáveis por prestar quaisquer serviços de manutenção e + suporte relativamente à aplicação, conforme especificado nos + termos e condições desta licença de aplicação móvel contida nestes + Termos Legais ou conforme exigido pela lei aplicável, e reconhece + que cada Distribuidor de Aplicações não tem qualquer obrigação de + prestar quaisquer serviços de manutenção e suporte relativamente à + aplicação; (3) no caso de qualquer falha da aplicação em + conformidade com qualquer garantia aplicável, poderá notificar o + distribuidor da aplicação aplicável, e o distribuidor da + aplicação, de acordo com os seus termos e políticas, poderá + reembolsar o preço de compra, se existir, pago pela aplicação e, + na medida do permitido pela lei aplicável, o distribuidor da + aplicação não terá qualquer outra obrigação de garantia + relativamente à aplicação; (4) declara e garante que (i) não está + localizado num país sujeito a um embargo do governo dos EUA ou que + foi designado pelo governo dos EUA como um país "que apoia o + terrorismo" e (ii) não está listado em nenhuma lista do governo + dos EUA de partes proibidas ou restritas; (5) deve cumprir os + termos de acordo de terceiros aplicáveis ao utilizar a aplicação, + por exemplo, se tiver uma aplicação VoIP, não deverá estar a + violar o seu acordo de serviço de dados sem fios ao utilizar a + aplicação; e (6) reconhece e concorda que os Distribuidores de + Aplicações são terceiros beneficiários dos termos e condições + desta licença de aplicação móvel contida nestes Termos Legais, e + que cada Distribuidor de Aplicações terá o direito (e será + considerado como tendo aceite o direito) de fazer cumprir os + termos e condições desta licença de aplicação móvel contida nestes + Termos Legais contra si como terceiro beneficiário. + + + + 9. SITES E CONTEÚDOS DE TERCEIROS + + + Os Serviços podem conter ou podem receber links para outros sites + ("Sites de Terceiros"), bem como artigos, fotografias, textos, + gráficos, imagens, designs, música, sons, vídeos, informações, + aplicações, software e outros conteúdos ou itens pertencentes ou + originários de terceiros ("Conteúdo de Terceiros"). Tais Sites de + Terceiros e Conteúdos de Terceiros não são investigados, + monitorizados ou verificados quanto à sua precisão, adequação ou + integralidade, e não somos responsáveis por quaisquer Sites de + Terceiros acedidos através dos Serviços ou por qualquer Conteúdo + de Terceiros publicado, disponibilizado ou instalado a partir dos + Serviços, incluindo o conteúdo, a precisão, a ofensividade, as + opiniões, a fiabilidade, as práticas de privacidade ou outras + políticas contidas nos Sites de Terceiros ou no Conteúdo de + Terceiros. dos Serviços e aceder aos Sites de Terceiros ou + utilizar ou instalar qualquer Conteúdo de Terceiros, fá-lo por sua + conta e risco, e deve estar ciente de que estes Termos Legais já + não prevalecem. Deverá rever os termos e políticas aplicáveis, + incluindo as práticas de privacidade e recolha de dados, de + qualquer site para o qual navegue a partir dos Serviços ou + relacionados com quaisquer aplicações que utilize ou instale a + partir dos Serviços. assumimos qualquer responsabilidade em + relação a tais compras que são exclusivamente entre si e o + terceiro aplicável. Concorda e reconhece que não endossamos os + produtos ou serviços oferecidos em Sites de Terceiros e isentará + de qualquer responsabilidade por qualquer dano causado pela sua + compra de tais produtos ou serviços. + + + + 10. GESTÃO DE SERVIÇOS + + + Reservamo-nos o direito, mas não a obrigação, de: (1) monitorizar + os Serviços em busca de violações dos presentes Termos Legais; (2) + tomar as medidas legais adequadas contra qualquer pessoa que, a + nosso exclusivo critério, viole a lei ou os presentes Termos + Legais, incluindo, sem limitação, denunciar tal utilizador às + autoridades policiais; (3) a nosso exclusivo critério e sem + limitação, recusar, restringir o acesso, limitar a disponibilidade + ou desativar (na medida em que seja tecnologicamente viável) + qualquer das suas Contribuições ou qualquer parte das mesmas; (4) + a nosso exclusivo critério e sem limitação, aviso ou + responsabilidade, remover dos Serviços ou de outra forma desativar + todos os ficheiros e conteúdos que sejam excessivos em tamanho ou + que sejam de alguma forma onerosos para os nossos sistemas; e (5) + gerir os Serviços de outra forma, de forma a proteger os nossos + direitos e propriedade e a facilitar o funcionamento adequado dos + Serviços. + + + + 11. POLÍTICA DE PRIVACIDADE + + + Preocupamo-nos com a privacidade e a segurança dos dados. Ao + utilizar os Serviços, concorda em ficar vinculado à nossa Política + de Privacidade publicada nos Serviços, a qual está incorporada + nestes Termos Legais. Informamos que os Serviços estão alojados em + Portugal. Se aceder aos Serviços a partir de qualquer outra região + do mundo com leis ou outros requisitos que regem a recolha, + utilização ou divulgação de dados pessoais diferentes das leis + aplicáveis em Portugal, então, através da sua utilização contínua + dos Serviços, estará a transferir os seus dados para Portugal e + consente expressamente que os seus dados sejam transferidos e + processados em Portugal. + + + + 12. PRAZO E RESCISÃO + + + Estes Termos Legais permanecerão em pleno vigor e efeito enquanto + utilizar os Serviços. SEM LIMITAR QUALQUER OUTRA DISPOSIÇÃO DESTES + TERMOS LEGAIS, RESERVAMO-NOS O DIREITO DE, A NOSSO EXCLUSIVO + CRITÉRIO E SEM AVISO PRÉVIO OU RESPONSABILIDADE, NEGAR O ACESSO E + O USO DOS SERVIÇOS (INCLUINDO O BLOQUEIO DE CERTOS ENDEREÇOS IP) A + QUALQUER PESSOA, POR QUALQUER MOTIVO OU SEM MOTIVO, INCLUINDO, SEM + LIMITAÇÃO, A VIOLAÇÃO DE QUALQUER REPRESENTAÇÃO, GARANTIA OU + ACORDO CONTIDO NESTES TERMOS LEGAIS OU DE QUALQUER LEI OU + REGULAMENTO APLICÁVEL. PODEMOS ENCERRAR A SUA UTILIZAÇÃO OU + PARTICIPAÇÃO NOS SERVIÇOS OU APAGAR A SUA CONTA E QUALQUER + CONTEÚDO OU INFORMAÇÃO QUE TENHA PUBLICADO A QUALQUER MOMENTO, SEM + AVISO PRÉVIO, A NOSSO EXCLUSIVO CRITÉRIO. Se encerrarmos ou + suspendermos a sua conta por qualquer motivo, estará proibido de + se registar e criar uma nova conta em seu nome, com um nome falso + ou emprestado, ou em nome de terceiros, mesmo que esteja a agir em + nome desses terceiros. Além de encerrar ou suspender a sua conta, + reservamo-nos o direito de tomar as medidas legais adequadas, + incluindo, entre outras, ações cíveis, criminais e injuntivas. + + + + 12. PRAZO E RESCISÃO + + + Estes Termos Legais permanecerão em pleno vigor e efeito enquanto + utilizar os Serviços. SEM LIMITAR QUALQUER OUTRA DISPOSIÇÃO DESTES + TERMOS LEGAIS, RESERVAMO-NOS O DIREITO DE, A NOSSO EXCLUSIVO + CRITÉRIO E SEM AVISO PRÉVIO OU RESPONSABILIDADE, NEGAR O ACESSO E + O USO DOS SERVIÇOS (INCLUINDO O BLOQUEIO DE CERTOS ENDEREÇOS IP) A + QUALQUER PESSOA, POR QUALQUER MOTIVO OU SEM MOTIVO, INCLUINDO, SEM + LIMITAÇÃO, A VIOLAÇÃO DE QUALQUER REPRESENTAÇÃO, GARANTIA OU + ACORDO CONTIDO NESTES TERMOS LEGAIS OU DE QUALQUER LEI OU + REGULAMENTO APLICÁVEL. PODEMOS ENCERRAR A SUA UTILIZAÇÃO OU + PARTICIPAÇÃO NOS SERVIÇOS OU APAGAR A SUA CONTA E QUALQUER + CONTEÚDO OU INFORMAÇÃO QUE TENHA PUBLICADO A QUALQUER MOMENTO, SEM + AVISO PRÉVIO, A NOSSO EXCLUSIVO CRITÉRIO. Se encerrarmos ou + suspendermos a sua conta por qualquer motivo, estará proibido de + se registar e criar uma nova conta em seu nome, com um nome falso + ou emprestado, ou em nome de terceiros, mesmo que esteja a agir em + nome desses terceiros. Além de encerrar ou suspender a sua conta, + reservamo-nos o direito de tomar as medidas legais adequadas, + incluindo, entre outras, ações cíveis, criminais e injuntivas. + + + + 13. MODIFICAÇÕES E INTERRUPÇÕES + + + Reservamo-nos o direito de alterar, modificar ou remover o + conteúdo dos Serviços a qualquer momento ou por qualquer motivo, a + nosso exclusivo critério, sem aviso prévio. No entanto, não temos + qualquer obrigação de atualizar qualquer informação nos nossos + Serviços. Não seremos responsáveis perante si ou terceiros por + qualquer modificação, alteração de preço, suspensão ou + descontinuação dos Serviços. Não podemos garantir que os Serviços + estejam disponíveis em todos os momentos. Poderemos enfrentar + problemas de hardware, software ou outros, ou necessitar de + realizar manutenção relacionada com os Serviços, resultando em + interrupções, atrasos ou erros. Reservamo-nos o direito de + alterar, rever, atualizar, suspender, descontinuar ou modificar os + Serviços a qualquer momento ou por qualquer motivo, sem aviso + prévio. Concorda que não temos qualquer responsabilidade por + qualquer perda, dano ou incómodo causado pela sua incapacidade de + aceder ou utilizar os Serviços durante qualquer período de + inatividade ou descontinuação dos Serviços. Nada nestes Termos + Legais será interpretado como uma obrigação para nós de manter e + suportar os Serviços ou de fornecer quaisquer correções, + atualizações ou lançamentos relacionados com os mesmos. + + + + 14. LEI APLICÁVEL + + + Os presentes Termos Legais são regidos e interpretados de acordo + com as leis de Portugal, estando expressamente excluída a + utilização da Convenção das Nações Unidas sobre Contratos de + Compra e Venda Internacional de Mercadorias. Se a sua residência + habitual for na UE e for um consumidor, tem também a proteção que + lhe é conferida pelas disposições obrigatórias da lei do seu país + de residência. A Lumicheck e o utilizador concordam em submeter-se + à jurisdição não exclusiva dos tribunais de Aveiro, o que + significa que poderá apresentar uma reclamação para defender os + seus direitos de proteção do consumidor relativamente a estes + Termos Legais em Portugal ou no país da UE em que reside. + + + + 15. RESOLUÇÃO DE LITÍGIOS + + Negociações informais + + Para agilizar a resolução e controlar os custos de qualquer + litígio, controvérsia ou reclamação relacionada com estes Termos + Legais (cada uma, uma "Disputa" e, coletivamente, as "Disputas") + movidas por si ou por nós (individualmente, uma "Parte" e, + coletivamente, as "Partes"), as Partes concordam em tentar + negociar qualquer Disputa (exceto as Disputas expressamente + previstas abaixo) informalmente durante pelo menos trinta (30) + dias antes de iniciar a arbitragem. Tais negociações informais + terão início mediante notificação escrita de uma Parte à outra. + + Arbitragem Vinculativa + + Qualquer litígio decorrente das relações entre as Partes dos + presentes Termos Legais será resolvido por um árbitro, escolhido + de acordo com o Regulamento de Arbitragem e o Regulamento Interno + do Tribunal Europeu de Arbitragem, que faz parte do Centro Europeu + de Arbitragem, com sede em Estrasburgo, em vigor no momento da + apresentação do pedido de arbitragem, e cuja adoção desta cláusula + constitui aceitação. A sede da arbitragem será Aveiro, Portugal. O + idioma do processo será o português. As regras de direito + substantivo aplicáveis serão a lei de Portugal. + + Restrições + + As Partes concordam que qualquer arbitragem será limitada ao + Litígio entre as Partes individualmente. Na medida máxima + permitida por lei, (a) nenhuma arbitragem será agregada a qualquer + outro processo; (b) não existe o direito ou a autoridade para que + qualquer Litígio seja arbitrado com base numa ação coletiva ou + para utilizar procedimentos de ação coletiva; e (c) não existe o + direito ou a autoridade para que qualquer Litígio seja apresentado + numa suposta qualidade representativa em nome do público em geral + ou de quaisquer outras pessoas. + + + Exceções às Negociações Informais e Arbitragem + + + As Partes concordam que os seguintes Litígios não estão sujeitos + às disposições acima referidas relativas a negociações informais e + arbitragem vinculativa: (a) quaisquer Litígios que visem fazer + cumprir ou proteger, ou relativos à validade de, quaisquer + direitos de propriedade intelectual de uma Parte; (b) qualquer + Litígio relacionado com, ou decorrente de, alegações de roubo, + pirataria, invasão de privacidade ou utilização não autorizada; e + (c) qualquer pedido de providência cautelar. Se esta disposição + for considerada ilegal ou inexequível, nenhuma das Partes optará + por arbitrar qualquer Litígio que se enquadre na parte desta + disposição considerada ilegal ou inexequível, e tal Litígio será + decidido por um tribunal de jurisdição competente de entre os + tribunais listados para a jurisdição acima, e as Partes concordam + em submeter-se à jurisdição pessoal desse tribunal. + + + 16. CORREÇÕES + + Poderão existir informações nos Serviços que contenham erros + tipográficos, imprecisões ou omissões, incluindo descrições, + preços, disponibilidade e diversas outras informações. + Reservamo-nos o direito de corrigir quaisquer erros, imprecisões + ou omissões e de alterar ou atualizar as informações contidas nos + Serviços a qualquer momento, sem aviso prévio. + + + + 17. ISENÇÃO DE RESPONSABILIDADE + + + OS SERVIÇOS SÃO FORNECIDOS NO ESTADO EM QUE SE ENCONTRAM E + CONFORME DISPONÍVEIS. CONCORDA QUE A UTILIZAÇÃO DOS SERVIÇOS SERÁ + POR SUA CONTA E RISCO. ATÉ AO LIMITE MÁXIMO PERMITIDO POR LEI, + ISENTAMOS TODAS AS GARANTIAS, EXPRESSAS OU IMPLÍCITAS, RELATIVAS + AOS SERVIÇOS E À SUA UTILIZAÇÃO, INCLUINDO, SEM LIMITAÇÃO, AS + GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM + DETERMINADO FIM E NÃO INFRACÇÃO. NÃO OFERECEMOS NENHUMA GARANTIA + OU REPRESENTAÇÃO SOBRE A PRECISÃO OU INTEGRIDADE DO CONTEÚDO DOS + SERVIÇOS OU DO CONTEÚDO DE QUAISQUER SITES OU APLICAÇÕES MÓVEIS + VINCULADAS AOS SERVIÇOS E NÃO ASSUMIMOS NENHUMA RESPONSABILIDADE + POR QUAISQUER (1) ERROS, ENGANOS OU IMPRECISÕES DE CONTEÚDO E + MATERIAIS, (2) LESÕES PESSOAIS OU DANOS À PROPRIEDADE, DE QUALQUER + NATUREZA, RESULTANTES DO SEU ACESSO E UTILIZAÇÃO DOS SERVIÇOS, (3) + QUALQUER ACESSO OU UTILIZAÇÃO NÃO AUTORIZADA DOS NOSSOS SERVIDORES + SEGUROS E/OU DE QUALQUER E TODA A INFORMAÇÃO PESSOAL E/OU + INFORMAÇÃO FINANCEIRA ARMAZENADA NELES, (4) QUALQUER INTERRUPÇÃO + OU CESSAÇÃO DE TRANSMISSÃO DE OU PARA OS SERVIÇOS, (5) QUALQUER + BUGS, VÍRUS, CAVALOS DE TROIA OU SIMILARES QUE POSSAM SER + TRANSMITIDOS PARA OU ATRAVÉS DOS SERVIÇOS POR TERCEIROS E/OU (6) + QUAISQUER ERROS OU OMISSÕES EM QUALQUER CONTEÚDO E MATERIAIS OU + POR QUALQUER PERDA OU DANO DE QUALQUER TIPO INCORRIDO EM RESULTADO + DA UTILIZAÇÃO DE QUALQUER CONTEÚDO PUBLICADO, TRANSMITIDO OU DE + OUTRA FORMA DISPONIBILIZADO ATRAVÉS DOS SERVIÇOS. NÃO GARANTIMOS, + ENDOSSAMOS, GARANTEMOS OU ASSUMIMOS RESPONSABILIDADE POR QUALQUER + PRODUTO OU SERVIÇO ANUNCIADO OU OFERECIDO POR TERCEIROS ATRAVÉS + DOS SERVIÇOS, QUALQUER SITE COM HIPERLINK, OU QUALQUER SITE OU + APLICAÇÃO MÓVEL APRESENTADO EM QUALQUER BANNER OU OUTRA + PUBLICIDADE, E NÃO SEREMOS PARTE OU DE QUALQUER FORMA RESPONSÁVEIS + POR MONITORIZAR QUALQUER TRANSAÇÃO ENTRE SI E QUAISQUER TERCEIROS + FORNECEDORES DE PRODUTOS OU SERVIÇOS. ASSIM COMO NA COMPRA DE UM + PRODUTO OU SERVIÇO ATRAVÉS DE QUALQUER MEIO OU EM QUALQUER + AMBIENTE, DEVE UTILIZAR O SEU MELHOR JULGAMENTO E TER CAUTELA + QUANDO APROPRIADO. + + + + 18. LIMITAÇÕES DE RESPONSABILIDADE + + + EM NENHUMA HIPÓTESE NÓS OU OS NOSSOS ADMINISTRADORES, FUNCIONÁRIOS + OU AGENTES SEREMOS RESPONSÁVEIS PERANTE SI OU QUALQUER TERCEIRO + POR QUAISQUER DANOS DIRETOS, INDIRETOS, CONSEQUENCIAIS, + EXEMPLARES, ACIDENTAIS, ESPECIAIS OU PUNITIVOS, INCLUINDO LUCROS + CESSANTES, PERDA DE RECEITA, PERDA DE DADOS OU OUTROS DANOS + DECORRENTES DA SUA UTILIZAÇÃO DOS SERVIÇOS, MESMO QUE TENHAMOS + SIDO AVISADOS DA POSSIBILIDADE DE TAIS DANOS. + + + 19. INDEMNIZAÇÃO + + + Concorda em defender, indemnizar e isentar-nos, incluindo as + nossas subsidiárias, afiliadas e todos os nossos respetivos + executivos, agentes, parceiros e funcionários, de e contra + qualquer perda, dano, responsabilidade, reclamação ou exigência, + incluindo honorários de advogados e despesas razoáveis, feitas por + terceiros devido a ou decorrentes de: (1) utilização dos Serviços; + (2) violação dos presentes Termos Legais; (3) qualquer violação + das suas representações e garantias estabelecidas nos presentes + Termos Legais; (4) a sua violação dos direitos de terceiros, + incluindo, mas não limitado a, direitos de propriedade + intelectual; ou (5) qualquer ato nocivo manifesto contra qualquer + outro utilizador dos Serviços com o qual se tenha ligado através + dos Serviços. Não obstante o acima exposto, reservamo-nos o + direito de, a suas expensas, assumir a defesa e o controlo + exclusivos de qualquer assunto para o qual seja obrigado a + indemnizar-nos, e concorda em cooperar, a suas expensas, com a + nossa defesa de tais reclamações. Faremos todos os esforços + razoáveis para o notificar de qualquer reclamação, ação ou + processo sujeito a esta indemnização assim que tomarmos + conhecimento da mesma. + + + 20. DADOS DO UTILIZADOR + + + Conservaremos determinados dados que transmita aos Serviços com a + finalidade de gerir o desempenho dos Serviços, bem como dados + relacionados com a sua utilização dos Serviços. Embora realizemos + cópias de segurança regulares dos dados, é o único responsável por + todos os dados que transmitir ou que estejam relacionados com + qualquer atividade que tenha realizado com recurso aos Serviços. + Concorda que não teremos qualquer responsabilidade perante si por + qualquer perda ou corrupção de tais dados e, por este meio, + renuncia a qualquer direito de ação contra nós decorrente de tal + perda ou corrupção de tais dados. + + + 21. COMUNICAÇÕES ELECTRÓNICAS, TRANSACÇÕES E ASSINATURAS + + + Visitar os Serviços, enviar e-mails e preencher formulários online + constituem comunicações eletrónicas. Consente em receber + comunicações eletrónicas e concorda que todos os contratos, + avisos, divulgações e outras comunicações que lhe fornecemos por + via eletrónica, por e-mail e nos Serviços, cumprem qualquer + requisito legal de que tal comunicação seja feita por escrito. + CONCORDA COM A UTILIZAÇÃO DE ASSINATURAS ELETRÓNICAS, CONTRATOS, + ENCOMENDAS E OUTROS REGISTOS, BEM COMO COM A ENTREGA ELETRÓNICA DE + AVISOS, POLÍTICAS E REGISTOS DE TRANSAÇÕES INICIADAS OU CONCLUÍDAS + POR NÓS OU ATRAVÉS DOS SERVIÇOS. Renuncia a quaisquer direitos ou + requisitos ao abrigo de quaisquer estatutos, regulamentos, regras, + portarias ou outras leis em qualquer jurisdição que exijam uma + assinatura original ou entrega ou retenção de registos não + eletrónicos, ou pagamentos ou a concessão de créditos por + quaisquer meios que não sejam eletrónicos. + + 22. DIVERSOS + + Estes Termos Legais e quaisquer políticas ou regras operacionais + publicadas por nós nos Serviços ou em relação aos Serviços + constituem o acordo e entendimento integral entre si e nós. A + nossa falha em exercer ou executar qualquer direito ou disposição + destes Termos Legais não operará como uma renúncia a tal direito + ou disposição. Estes Termos Legais operam na máxima extensão + permitida por lei. Podemos ceder qualquer ou todos os nossos + direitos e obrigações a terceiros a qualquer momento. Não seremos + responsáveis por qualquer perda, dano, atraso ou omissão de ação + causados por qualquer causa fora do nosso controlo razoável. Se + qualquer disposição ou parte de uma disposição destes Termos + Legais for determinada ilegal, nula ou inexequível, essa + disposição ou parte da disposição será considerada separável + destes Termos Legais e não afetará a validade e a exequibilidade + de quaisquer disposições restantes. Não existe qualquer relação de + joint venture, parceria, emprego ou agência criada entre si e nós + como resultado destes Termos Legais ou da utilização dos Serviços. + Concorda que estes Termos Legais não serão interpretados contra + nós em virtude de os ter elaborado. Renuncia a toda e qualquer + defesa que possa ter com base no formato eletrónico destes Termos + Legais e na falta de assinatura pelas partes para executar estes + Termos Legais. + + + 23.º A PONTUAÇÃO NÃO É UM DIAGNÓSTICO + + + No Lumicheck, utilizamos o Teste de Dependência da Internet para + dar uma pontuação ao utilizador e verificar a potencial influência + que o telemóvel tem na sua vida. Mas não é um diagnóstico. O + Lumicheck é uma aplicação e não consegue diagnosticar pessoas, + apenas os profissionais de saúde conseguem. + + + 24. CONTACTE-NOS + + + Para resolver uma reclamação sobre os Serviços ou receber mais + informações sobre a utilização dos Serviços, contacte-nos através + do endereço: + + Lumicheck + Aveiro + Portugal + lumicheck.app@gmail.com state.answerQuestion ); + useEffect(()=>{ + FloatingBubble.hideBubble() + },[]) + useEffect(() => { dispatch(getRandomUnansweredQuestion()); }, [dispatch]); From 8fd5a3c77216fc9409d52582430683732c4b9a93 Mon Sep 17 00:00:00 2001 From: TRProjects98 Date: Tue, 24 Jun 2025 13:37:39 +0100 Subject: [PATCH 17/31] feat(Notification): handle notification open events and navigate to QuestionPage --- src/App.js | 19 ++++++++++++++++++- src/index.js | 9 ++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/App.js b/src/App.js index d3f4c13..a38ffb5 100644 --- a/src/App.js +++ b/src/App.js @@ -65,7 +65,24 @@ export default function App() { FloatingBubble.showMessage(remoteMessage.notification.body); } }); - return ForegroundMessage; + + const OnClickNotificationOpen = messaging().onNotificationOpenedApp( + (remoteMessage) => { + console.log( + 'Notification caused app to open from background:', + remoteMessage + ); + // Pequeno delay para garantir que a navegação está pronta + setTimeout(() => { + NavigationRef.current?.navigate('QuestionPage'); + }, 500); + } + ); + + return () => { + ForegroundMessage; + OnClickNotificationOpen; + }; }, []); useEffect(() => { diff --git a/src/index.js b/src/index.js index 6ced880..dfdefeb 100644 --- a/src/index.js +++ b/src/index.js @@ -16,7 +16,14 @@ messaging().setBackgroundMessageHandler(async remoteMessage => { FloatingBubble.showBubble(); FloatingBubble.showMessage(remoteMessage.notification.body); } - }); +}); + +messaging().onNotificationOpenedApp(remoteMessage => { + console.log('Notification caused app to open from background:', remoteMessage); + // Pequeno delay para garantir que a navegação está pronta + setTimeout(() => { + NavigationRef.current?.navigate('QuestionPage'); + }, 10000);}) function ReduxWrapper() { return ( From a9c2690abd0c9127355853a8b938ed4cee95398a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 16:52:53 +0100 Subject: [PATCH 18/31] token do screentime --- .../src/main/java/com/anonymous/lumicheck/MyWorker.kt | 8 ++++++-- .../java/com/anonymous/lumicheck/WorkManagerModule.kt | 5 +++++ src/redux/authSlice.js | 2 ++ src/redux/completedTasksSlice.js | 7 ++++++- src/redux/dailyTasksSlice.js | 11 ++++++++++- src/redux/screentimeSlice.js | 10 +++++++++- 6 files changed, 38 insertions(+), 5 deletions(-) diff --git a/android/app/src/main/java/com/anonymous/lumicheck/MyWorker.kt b/android/app/src/main/java/com/anonymous/lumicheck/MyWorker.kt index 1ea984d..a68e103 100644 --- a/android/app/src/main/java/com/anonymous/lumicheck/MyWorker.kt +++ b/android/app/src/main/java/com/anonymous/lumicheck/MyWorker.kt @@ -24,9 +24,12 @@ class MyWorker(context: Context, workerParams: WorkerParameters) : Worker(contex return try { val userId = prefs.getInt("USER_ID", -1).takeIf { it != -1 } ?: return Result.success() + + val token = prefs.getString("AUTH_TOKEN", null) + ?: return Result.success() val screenData = getScreenTimeData() - val success = sendToApi(userId, screenData) + val success = sendToApi(userId, token, screenData) if (success) Result.success() else Result.retry() } catch (e: Exception) { @@ -46,13 +49,14 @@ class MyWorker(context: Context, workerParams: WorkerParameters) : Worker(contex } } - private fun sendToApi(userId: Int, data: ScreenTimeData): Boolean { + private fun sendToApi(userId: Int, token: String, data: ScreenTimeData): Boolean { return try { val jsonBody = createRequestBody(userId, data) val request = Request.Builder() .url("https://king-prawn-app-3re4n.ondigitalocean.app/screentime/") .post(jsonBody) .addHeader("Content-Type", "application/json") + .addHeader("Authorization", "Bearer ${token}") .build() client.newCall(request).execute().use { response -> diff --git a/android/app/src/main/java/com/anonymous/lumicheck/WorkManagerModule.kt b/android/app/src/main/java/com/anonymous/lumicheck/WorkManagerModule.kt index 79e2f20..30bd939 100644 --- a/android/app/src/main/java/com/anonymous/lumicheck/WorkManagerModule.kt +++ b/android/app/src/main/java/com/anonymous/lumicheck/WorkManagerModule.kt @@ -25,6 +25,11 @@ class WorkManagerModule(reactContext: ReactApplicationContext) : ReactContextBas prefs.edit().putInt("USER_ID", userId).apply() } + @ReactMethod + fun setAuthToken(token: String) { + prefs.edit().putString("AUTH_TOKEN", token).apply() + } + @ReactMethod fun startWork() { try { diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index 0fe45de..523a54d 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -22,8 +22,10 @@ export const loginUser = createAsyncThunk( const { WorkManagerModule } = NativeModules; WorkManagerModule.setUserId(data.user.id); + WorkManagerModule.setToken(data.access_token); console.log('User ID set in WorkManager:', data.user.id); + console.log('Token set in WorkManager:', data.access_token); return { token: data.access_token, user: data.user }; } else { diff --git a/src/redux/completedTasksSlice.js b/src/redux/completedTasksSlice.js index 0b24660..60fc820 100644 --- a/src/redux/completedTasksSlice.js +++ b/src/redux/completedTasksSlice.js @@ -8,11 +8,16 @@ export const fetchCompletedTasks = createAsyncThunk( 'completedTasks/fetchCompletedTasks', async (_, thunkAPI) => { try { + const token = await AsyncStorage.getItem('token'); const userString = await AsyncStorage.getItem('user'); const user = JSON.parse(userString); const userId = user.id; - const response = await fetch(`${API_URL}/task/${userId}/completed`); + const response = await fetch(`${API_URL}/task/${userId}/completed`, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); if (!response.ok) { const err = await response.json(); diff --git a/src/redux/dailyTasksSlice.js b/src/redux/dailyTasksSlice.js index 3f0bbad..4675ae3 100644 --- a/src/redux/dailyTasksSlice.js +++ b/src/redux/dailyTasksSlice.js @@ -7,11 +7,16 @@ export const fetchDailyTasks = createAsyncThunk( 'dailyTasks/fetchDailyTasks', async (_, thunkAPI) => { try { + const token = await AsyncStorage.getItem('token'); const userString = await AsyncStorage.getItem('user'); const user = JSON.parse(userString); const userId = user.id; - const response = await fetch(`${API_URL}/task/${userId}/dailystatus`); + const response = await fetch(`${API_URL}/task/${userId}/dailystatus`, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); if (!response.ok) { throw new Error('Failed to fetch daily tasks'); } @@ -27,6 +32,7 @@ export const toggleTaskStatus = createAsyncThunk( 'dailyTasks/toggleTaskStatus', async ({ taskId }, thunkAPI) => { try { + const token = await AsyncStorage.getItem('token'); const userString = await AsyncStorage.getItem('user'); const user = JSON.parse(userString); const userId = user.id; @@ -35,6 +41,9 @@ export const toggleTaskStatus = createAsyncThunk( `${API_URL}/task/${taskId}/${userId}/toggle`, { method: 'POST', + headers: { + Authorization: `Bearer ${token}`, + }, } ); diff --git a/src/redux/screentimeSlice.js b/src/redux/screentimeSlice.js index 34afbd1..0900467 100644 --- a/src/redux/screentimeSlice.js +++ b/src/redux/screentimeSlice.js @@ -8,11 +8,19 @@ export const fetchLast7DaysScreenTime = createAsyncThunk( 'screentime/fetchLast7DaysScreenTime', async (_, thunkAPI) => { try { + const token = await AsyncStorage.getItem('token'); const userString = await AsyncStorage.getItem('user'); const user = JSON.parse(userString); const userId = user.id; - const response = await fetch(`${API_URL}/screentime/last7days/${userId}`); + const response = await fetch( + `${API_URL}/screentime/last7days/${userId}`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + } + ); if (!response.ok) { const err = await response.json(); From 3764ff9c98c9100d54aea1ae46f2b101f9ce9a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 17:12:05 +0100 Subject: [PATCH 19/31] better login slice --- src/redux/authSlice.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index 523a54d..60fe164 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -13,24 +13,22 @@ export const loginUser = createAsyncThunk( headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }), }); + const data = await response.json(); - if (response.ok) { - await AsyncStorage.setItem('token', data.access_token); - await AsyncStorage.setItem('refresh_token', data.refresh_token); - await AsyncStorage.setItem('user', JSON.stringify(data.user)); + if (!response.ok) { + return thunkAPI.rejectWithValue(data.detail || 'Login failed'); + } - const { WorkManagerModule } = NativeModules; - WorkManagerModule.setUserId(data.user.id); - WorkManagerModule.setToken(data.access_token); + await AsyncStorage.setItem('token', data.access_token); + await AsyncStorage.setItem('refresh_token', data.refresh_token); + await AsyncStorage.setItem('user', JSON.stringify(data.user)); - console.log('User ID set in WorkManager:', data.user.id); - console.log('Token set in WorkManager:', data.access_token); + const { WorkManagerModule } = NativeModules; + WorkManagerModule.setUserId(data.user.id); + WorkManagerModule.setToken(data.access_token); - return { token: data.access_token, user: data.user }; - } else { - return thunkAPI.rejectWithValue(data.message); - } + return { token: data.access_token, user: data.user }; } catch (error) { return thunkAPI.rejectWithValue(error.message); } From f2546ca0fe6fe06ae60c324b42009af6b9a7c995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 17:32:53 +0100 Subject: [PATCH 20/31] meu deus --- src/redux/authSlice.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index 60fe164..6a00d08 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -26,7 +26,7 @@ export const loginUser = createAsyncThunk( const { WorkManagerModule } = NativeModules; WorkManagerModule.setUserId(data.user.id); - WorkManagerModule.setToken(data.access_token); + WorkManagerModule.setAuthToken(data.access_token); return { token: data.access_token, user: data.user }; } catch (error) { From b9287a07ddc958ab987725ddd2e38fd57c13451e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 18:02:39 +0100 Subject: [PATCH 21/31] so falta os 3 trofeus de screentime --- src/pages/HelpPage.js | 20 ++++++++-- src/redux/achievementSlice.js | 74 +++++++++++++++++++++++++++++++++++ src/redux/store.js | 2 + 3 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 src/redux/achievementSlice.js diff --git a/src/pages/HelpPage.js b/src/pages/HelpPage.js index 173c0e6..ab224ec 100644 --- a/src/pages/HelpPage.js +++ b/src/pages/HelpPage.js @@ -16,6 +16,9 @@ import * as Location from 'expo-location'; import { markersOnMap } from '../psicologos_fakes'; import { Linking } from 'react-native'; +import { useDispatch, useSelector } from 'react-redux'; +import { unlockAchievement } from '../redux/achievementSlice'; + const distritos = [ 'Aveiro', 'Beja', @@ -52,6 +55,11 @@ export default function HelpPage() { const [selectedMarker, setSelectedMarker] = useState(null); const [visibleCount, setVisibleCount] = useState(5); + const dispatch = useDispatch(); + const { loading, error, lastUnlocked } = useSelector( + (state) => state.achievement + ); + const [posts] = useState([ { id: 1, @@ -185,7 +193,10 @@ export default function HelpPage() { coordinate={{ latitude: lat, longitude: lng }} title={Nome} description={Telefone} - onPress={() => setSelectedMarker(marker)} + onPress={() => { + dispatch(unlockAchievement({ achievementId: 8 })), + setSelectedMarker(marker); + }} /> ); })} @@ -207,7 +218,7 @@ export default function HelpPage() { makeCall(marker.Telefone)} + onPress={() => makeCall(selectedMarker.Telefone)} accessibilityRole="button" > Linking.openURL(item.link)} + onPress={() => { + dispatch(unlockAchievement({ achievementId: 7 })), + Linking.openURL(item.link); + }} > { + try { + const token = await AsyncStorage.getItem('token'); + const user = await AsyncStorage.getItem('user'); + if (!token || !user) { + return thunkAPI.rejectWithValue('Usuário não autenticado'); + } + const parsedUser = JSON.parse(user); + const userId = parsedUser.id; + + const response = await fetch( + `${API_URL}/achievement/${userId}/${achievementId}/unlock`, + { + method: 'POST', + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', + }, + } + ); + + if (!response.ok) { + const err = await response.json(); + throw new Error(err.detail || 'Erro ao desbloquear troféu'); + } + + const result = await response.json(); + + return { + userId, + achievementId, + message: result.message, + }; + } catch (error) { + return thunkAPI.rejectWithValue(error.message); + } + } +); + +const achievementSlice = createSlice({ + name: 'achievement', + initialState: { + loading: false, + error: null, + lastUnlocked: null, + }, + reducers: {}, + extraReducers: (builder) => { + builder + .addCase(unlockAchievement.pending, (state) => { + state.loading = true; + state.error = null; + }) + .addCase(unlockAchievement.fulfilled, (state, action) => { + state.loading = false; + state.lastUnlocked = action.payload; + }) + .addCase(unlockAchievement.rejected, (state, action) => { + state.loading = false; + state.error = action.payload; + }); + }, +}); + +export const { clearError, clearLastUnlocked } = achievementSlice.actions; +export default achievementSlice.reducer; diff --git a/src/redux/store.js b/src/redux/store.js index 3ccb489..5cc2f53 100644 --- a/src/redux/store.js +++ b/src/redux/store.js @@ -17,6 +17,7 @@ import deleteAccountReducer from './deleteAccountSlice'; import unlockedAchievementsReducer from './unlockedAchievementsSlice'; import lockedAchievementsReducer from './lockedAchievementsSlice'; import modoZenReducer from './modoZenSlice'; +import achievementReducer from './achievementSlice'; export const store = configureStore({ reducer: { @@ -38,5 +39,6 @@ export const store = configureStore({ unlockedAchievements: unlockedAchievementsReducer, lockedAchievements: lockedAchievementsReducer, modoZen: modoZenReducer, + achievement: achievementReducer, }, }); From 79f861443d03d729a7809c4c860e526d284152d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 18:07:44 +0100 Subject: [PATCH 22/31] numero de trofeus --- src/pages/HomePage.js | 7 ++++++- src/pages/ProfilePage.js | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js index c6a31b6..91c3539 100644 --- a/src/pages/HomePage.js +++ b/src/pages/HomePage.js @@ -12,6 +12,7 @@ import DailyTasks from '../components/DailyTasks'; import MonotorizationModal from '../components/MonotorizationModal'; import { useDispatch, useSelector } from 'react-redux'; import { fetchUserAnswers } from '../redux/userAnswersSlice'; +import { fetchUnlockedAchievements } from '../redux/unlockedAchievementsSlice'; import messaging from '@react-native-firebase/messaging'; import { getFirebaseToken } from '../redux/firebaseTokenSlice'; import AsyncStorage from '@react-native-async-storage/async-storage'; @@ -28,6 +29,9 @@ export default function HomePage() { (status) => status.isMonitoring ); const questionCount = perguntas.length; + const trophieswon = + useSelector((state) => state.unlockedAchievements.achievements) || []; + const trophiesCount = trophieswon.length; const [modalVisible, setModalVisible] = useState(false); const user = useSelector((state) => state.user.data); @@ -66,6 +70,7 @@ export default function HomePage() { }, []); useEffect(() => { + dispatch(fetchUnlockedAchievements()); dispatch(loadUserFromStorage()); dispatch(fetchUserAnswers()); dispatch(getIsMonitoringStatus()); @@ -173,7 +178,7 @@ export default function HomePage() { }} className="flex-row items-center" > - 0 + {trophiesCount} diff --git a/src/pages/ProfilePage.js b/src/pages/ProfilePage.js index 1fc04df..86fc40c 100644 --- a/src/pages/ProfilePage.js +++ b/src/pages/ProfilePage.js @@ -28,6 +28,7 @@ export default function ProfilePage() { const trophieswon = useSelector((state) => state.unlockedAchievements.achievements) || []; + const trophiesCount = trophieswon.length; useEffect(() => { dispatch(fetchUnlockedAchievements()); @@ -90,7 +91,9 @@ export default function ProfilePage() { {/* Linha superior: Ícone e número */} - 0 + + {trophiesCount} + {/* Linha inferior: Texto */} From c0b7a1afb94dd915588b401d76b2dd4b6b6d1493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Tue, 24 Jun 2025 19:21:46 +0100 Subject: [PATCH 23/31] api url no env --- src/App.js | 2 +- src/redux/achievementSlice.js | 2 +- src/redux/answerQuestionSlice.js | 2 +- src/redux/authSlice.js | 2 +- src/redux/completedTasksSlice.js | 2 +- src/redux/dailyTasksSlice.js | 2 +- src/redux/deleteAccountSlice.js | 2 +- src/redux/firebaseTokenSlice.js | 2 +- src/redux/fiveQuestionsSlice.js | 2 +- src/redux/isMonitoringSlice.js | 2 +- src/redux/lockedAchievementsSlice.js | 2 +- src/redux/modoZenSlice.js | 2 +- src/redux/onBoardingSlice.js | 2 +- src/redux/registerSlice.js | 2 +- src/redux/screentimeSlice.js | 2 +- src/redux/unlockedAchievementsSlice.js | 2 +- src/redux/updateUserCredentialsSlice.js | 2 +- src/redux/userAnswersSlice.js | 2 +- src/redux/userDigitalHabitsSlice.js | 2 +- src/useSocket.js | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/App.js b/src/App.js index a38ffb5..229974f 100644 --- a/src/App.js +++ b/src/App.js @@ -41,7 +41,7 @@ import messaging from '@react-native-firebase/messaging'; const { FloatingBubble } = NativeModules; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export default function App() { const linking = { diff --git a/src/redux/achievementSlice.js b/src/redux/achievementSlice.js index 4026d20..687442c 100644 --- a/src/redux/achievementSlice.js +++ b/src/redux/achievementSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para desbloquear um troféu export const unlockAchievement = createAsyncThunk( diff --git a/src/redux/answerQuestionSlice.js b/src/redux/answerQuestionSlice.js index 7ca1491..063a4f0 100644 --- a/src/redux/answerQuestionSlice.js +++ b/src/redux/answerQuestionSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Submete uma resposta individual para o backend export const submitSingleAnswer = createAsyncThunk( diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index 6a00d08..babaf98 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -2,7 +2,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { NativeModules } from 'react-native'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const loginUser = createAsyncThunk( 'auth/loginUser', diff --git a/src/redux/completedTasksSlice.js b/src/redux/completedTasksSlice.js index 60fc820..f165d93 100644 --- a/src/redux/completedTasksSlice.js +++ b/src/redux/completedTasksSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para buscar tarefas concluídas export const fetchCompletedTasks = createAsyncThunk( diff --git a/src/redux/dailyTasksSlice.js b/src/redux/dailyTasksSlice.js index 4675ae3..aba7469 100644 --- a/src/redux/dailyTasksSlice.js +++ b/src/redux/dailyTasksSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const fetchDailyTasks = createAsyncThunk( 'dailyTasks/fetchDailyTasks', diff --git a/src/redux/deleteAccountSlice.js b/src/redux/deleteAccountSlice.js index 172f14c..f05ba25 100644 --- a/src/redux/deleteAccountSlice.js +++ b/src/redux/deleteAccountSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const deleteUserAccount = createAsyncThunk( 'user/deleteAccount', diff --git a/src/redux/firebaseTokenSlice.js b/src/redux/firebaseTokenSlice.js index 9797b69..5ffab04 100644 --- a/src/redux/firebaseTokenSlice.js +++ b/src/redux/firebaseTokenSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const getFirebaseToken = createAsyncThunk( 'user/getFirebaseToken', diff --git a/src/redux/fiveQuestionsSlice.js b/src/redux/fiveQuestionsSlice.js index 30571cd..46ba16c 100644 --- a/src/redux/fiveQuestionsSlice.js +++ b/src/redux/fiveQuestionsSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Envia as 5 respostas para o backend export const submitAnswers = createAsyncThunk( diff --git a/src/redux/isMonitoringSlice.js b/src/redux/isMonitoringSlice.js index b75f3a5..48e1f00 100644 --- a/src/redux/isMonitoringSlice.js +++ b/src/redux/isMonitoringSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // thunk para atualizar is monitoring status do usuário export const updateIsMonitoringStatus = createAsyncThunk( diff --git a/src/redux/lockedAchievementsSlice.js b/src/redux/lockedAchievementsSlice.js index bc4e09e..f6892e5 100644 --- a/src/redux/lockedAchievementsSlice.js +++ b/src/redux/lockedAchievementsSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para buscar troféus bloqueados do utilizador autenticado export const fetchLockedAchievements = createAsyncThunk( diff --git a/src/redux/modoZenSlice.js b/src/redux/modoZenSlice.js index d8e756b..3613eb6 100644 --- a/src/redux/modoZenSlice.js +++ b/src/redux/modoZenSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para verificar o progresso do Modo Zen export const checkModoZenProgress = createAsyncThunk( diff --git a/src/redux/onBoardingSlice.js b/src/redux/onBoardingSlice.js index cda7979..59b2c67 100644 --- a/src/redux/onBoardingSlice.js +++ b/src/redux/onBoardingSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // thunk para atualizar onboarding do usuário export const updateOnboardingStatus = createAsyncThunk( diff --git a/src/redux/registerSlice.js b/src/redux/registerSlice.js index 172aba8..e641900 100644 --- a/src/redux/registerSlice.js +++ b/src/redux/registerSlice.js @@ -1,6 +1,6 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const registerUser = createAsyncThunk( 'auth/registerUser', diff --git a/src/redux/screentimeSlice.js b/src/redux/screentimeSlice.js index 0900467..f29dfa6 100644 --- a/src/redux/screentimeSlice.js +++ b/src/redux/screentimeSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para buscar screentime dos últimos 7 dias export const fetchLast7DaysScreenTime = createAsyncThunk( diff --git a/src/redux/unlockedAchievementsSlice.js b/src/redux/unlockedAchievementsSlice.js index 56e6034..783fed3 100644 --- a/src/redux/unlockedAchievementsSlice.js +++ b/src/redux/unlockedAchievementsSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para buscar troféus desbloqueados do utilizador autenticado export const fetchUnlockedAchievements = createAsyncThunk( diff --git a/src/redux/updateUserCredentialsSlice.js b/src/redux/updateUserCredentialsSlice.js index 0074b62..015bc1a 100644 --- a/src/redux/updateUserCredentialsSlice.js +++ b/src/redux/updateUserCredentialsSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export const updateUserCredentials = createAsyncThunk( 'user/updateCredentials', diff --git a/src/redux/userAnswersSlice.js b/src/redux/userAnswersSlice.js index fa54988..fcedde5 100644 --- a/src/redux/userAnswersSlice.js +++ b/src/redux/userAnswersSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // Thunk para buscar respostas do utilizador autenticado export const fetchUserAnswers = createAsyncThunk( diff --git a/src/redux/userDigitalHabitsSlice.js b/src/redux/userDigitalHabitsSlice.js index a483d92..8c6cdf6 100644 --- a/src/redux/userDigitalHabitsSlice.js +++ b/src/redux/userDigitalHabitsSlice.js @@ -1,7 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; // thunk para associar hábitos ao user export const submitDigitalHabits = createAsyncThunk( diff --git a/src/useSocket.js b/src/useSocket.js index 9167bfc..1949162 100644 --- a/src/useSocket.js +++ b/src/useSocket.js @@ -2,7 +2,7 @@ import { useEffect } from 'react'; import { io } from 'socket.io-client'; import Toast from 'react-native-toast-message'; -const API_URL = 'https://king-prawn-app-3re4n.ondigitalocean.app'; +const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; export default function useSocket(userId) { useEffect(() => { From bdc752a37c775ebb2f2b14367990413b73807c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 01:30:19 +0100 Subject: [PATCH 24/31] fix gradle versions and app.json delete --- android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- app.config.js | 56 + app.json | 56 - eas.json | 23 + package-lock.json | 1985 +++++++++-------- package.json | 16 +- 7 files changed, 1095 insertions(+), 1045 deletions(-) create mode 100644 app.config.js delete mode 100644 app.json create mode 100644 eas.json diff --git a/android/build.gradle b/android/build.gradle index a1344a5..72a0662 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle') + classpath('com.android.tools.build:gradle:8.7.2') classpath('com.facebook.react:react-native-gradle-plugin') classpath('org.jetbrains.kotlin:kotlin-gradle-plugin') classpath("com.google.gms:google-services:4.3.15") diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 37f853b..79eb9d0 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/app.config.js b/app.config.js new file mode 100644 index 0000000..34c689b --- /dev/null +++ b/app.config.js @@ -0,0 +1,56 @@ +// app.config.js +export default { + expo: { + name: 'lumicheck', + slug: 'lumicheck', + version: '1.0.0', + userInterfaceStyle: 'automatic', + newArchEnabled: true, + scheme: 'lumicheck', + linking: { + // This is where linking should be + prefixes: ['lumicheck://', 'exp+lumicheck://'], + }, + ios: { + supportsTablet: true, + infoPlist: { + UIBackgroundModes: ['remote-notification'], + NSUserTrackingUsageDescription: + 'Este app utiliza notificações para manter você informado sobre atualizações importantes.', + UIUserNotificationSettings: { + UIUserNotificationTypeAlert: true, + UIUserNotificationTypeBadge: true, + UIUserNotificationTypeSound: true, + }, + }, + }, + android: { + adaptiveIcon: { + foregroundImage: './assets/icons/icon.png', + backgroundColor: '#ffffff', + }, + package: 'com.anonymous.lumicheck', + }, + web: { + favicon: './assets/icons/icon.png', + bundler: 'metro', + }, + plugins: [ + 'expo-font', + 'expo-dev-client', + '@react-native-firebase/app', + [ + '@react-native-firebase/messaging', + { + backgroundMessageHandler: './src/firebase-messaging.js', + }, + ], + ], + extra: { + eas: { + projectId: '72c293d0-6598-46a1-805b-70374430d035', + }, + }, + owner: 'rodrigomgraca', + }, +}; diff --git a/app.json b/app.json deleted file mode 100644 index a7a6dbc..0000000 --- a/app.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "expo": { - "name": "lumicheck", - "slug": "lumicheck", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/icons/icon.png", - "userInterfaceStyle": "automatic", - "newArchEnabled": true, - "scheme": "lumicheck", - "splash": { - "image": "./assets/icons/icon.png", - "resizeMode": "contain", - "backgroundColor": "#ffffff" - }, - "ios": { - "supportsTablet": true, - "infoPlist": { - "UIBackgroundModes": [ - "remote-notification" - ], - "NSUserTrackingUsageDescription": "Este app utiliza notificações para manter você informado sobre atualizações importantes.", - "UIUserNotificationSettings": { - "UIUserNotificationTypeAlert": true, - "UIUserNotificationTypeBadge": true, - "UIUserNotificationTypeSound": true - } - } - }, - "android": { - "adaptiveIcon": { - "foregroundImage": "./assets/lumis/Lumi4k.png", - "backgroundColor": "#ffffff" - }, - "package": "com.anonymous.lumicheck" - }, - "web": { - "favicon": "./assets/lumis/Lumi4k.png", - "bundler": "metro" - }, - "linking": { - "prefixes": ["lumicheck://", "exp+lumicheck://"] - }, - "plugins": [ - "expo-font", - "expo-dev-client", - "@react-native-firebase/app", - [ - "@react-native-firebase/messaging", - { - "backgroundMessageHandler": "./src/firebase-messaging.js" - } - ] - ] - } -} diff --git a/eas.json b/eas.json new file mode 100644 index 0000000..690175b --- /dev/null +++ b/eas.json @@ -0,0 +1,23 @@ +{ + "cli": { + "version": ">= 7.8.4" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal", + "android": { + "buildType": "apk" + } + }, + "preview": { + "android": { + "buildType": "apk" + } + }, + "production": {} + }, + "submit": { + "production": {} + } +} diff --git a/package-lock.json b/package-lock.json index 7522ed4..70ad8c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@expo-google-fonts/quicksand": "^0.2.3", "@expo/metro-runtime": "~5.0.4", - "@react-native-async-storage/async-storage": "^2.1.2", + "@react-native-async-storage/async-storage": "2.1.2", "@react-native-community/slider": "4.5.6", "@react-native-firebase/app": "^22.2.1", "@react-native-firebase/messaging": "^22.2.1", @@ -20,29 +20,29 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", - "expo": "^53.0.9", - "expo-blur": "~14.1.4", - "expo-dev-client": "~5.2.0", + "expo": "53.0.12", + "expo-blur": "~14.1.5", + "expo-dev-client": "~5.2.1", "expo-font": "~13.3.1", "expo-image-picker": "~16.1.4", - "expo-linear-gradient": "~14.1.4", + "expo-linear-gradient": "~14.1.5", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-splash-screen": "~0.30.8", + "expo-splash-screen": "~0.30.9", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", "metro-react-native-babel-transformer": "^0.77.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.2", + "react-native": "0.79.4", "react-native-chart-kit": "^6.12.0", "react-native-elements": "^3.4.3", "react-native-gesture-handler": "~2.24.0", "react-native-maps": "1.20.1", "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "~4.10.0", + "react-native-screens": "~4.11.1", "react-native-svg": "15.11.2", "react-native-svg-transformer": "^1.5.0", "react-native-toast-message": "^2.3.0", @@ -114,30 +114,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -153,13 +153,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -169,25 +169,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -218,12 +218,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -235,9 +235,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -289,14 +289,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -327,14 +327,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -401,27 +401,27 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" @@ -514,12 +514,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -582,12 +582,12 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz", - "integrity": "sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", + "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -764,12 +764,12 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz", - "integrity": "sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", + "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -779,12 +779,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", - "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -794,12 +794,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -950,12 +950,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -965,12 +965,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -980,14 +980,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -997,14 +997,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1029,12 +1029,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", + "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1044,13 +1044,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1060,16 +1060,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -1080,13 +1080,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1096,12 +1096,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", + "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1111,12 +1111,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1126,13 +1126,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", - "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-flow": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1142,13 +1142,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1158,14 +1158,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1175,12 +1175,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1190,12 +1190,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "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==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1220,13 +1220,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1236,13 +1236,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1252,12 +1252,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1267,12 +1267,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1282,14 +1282,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", + "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.3", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1315,12 +1316,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "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==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1330,13 +1331,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1346,12 +1347,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1361,13 +1362,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1377,14 +1378,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1458,12 +1459,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1473,12 +1474,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1504,13 +1505,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", + "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1520,15 +1520,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", + "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1540,12 +1540,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1555,13 +1555,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1571,12 +1571,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1586,12 +1586,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1601,16 +1601,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", - "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1620,13 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1656,16 +1656,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1675,13 +1675,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } @@ -1701,16 +1698,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1720,16 +1717,16 @@ }, "node_modules/@babel/traverse--for-generate-function-map": { "name": "@babel/traverse", - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1738,9 +1735,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1769,29 +1766,29 @@ "license": "MIT" }, "node_modules/@expo/cli": { - "version": "0.24.13", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.13.tgz", - "integrity": "sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==", + "version": "0.24.15", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.15.tgz", + "integrity": "sha512-RDZS30OSnbXkSPnBXdyPL29KbltjOmegE23bZZDiGV23WOReWcPgRc5U7Fd8eLPhtRjHBKlBpNJMTed5Ntr/uw==", "license": "MIT", "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.2", + "@expo/config-plugins": "~10.0.3", "@expo/devcert": "^1.1.2", "@expo/env": "~1.0.5", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@expo/metro-config": "~0.20.14", + "@expo/metro-config": "~0.20.15", "@expo/osascript": "^2.2.4", "@expo/package-manager": "^1.8.4", "@expo/plist": "^0.3.4", - "@expo/prebuild-config": "^9.0.6", + "@expo/prebuild-config": "^9.0.7", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.79.2", + "@react-native/dev-middleware": "0.79.4", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", @@ -1806,7 +1803,7 @@ "debug": "^4.3.4", "env-editor": "^0.4.1", "freeport-async": "^2.0.0", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "lan-network": "^0.1.6", "minimatch": "^9.0.0", @@ -1840,30 +1837,6 @@ "expo-internal": "build/bin/cli" } }, - "node_modules/@expo/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/cli/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@expo/cli/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -1908,18 +1881,18 @@ } }, "node_modules/@expo/config-plugins": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.2.tgz", - "integrity": "sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.3.tgz", + "integrity": "sha512-fjCckkde67pSDf48x7wRuPsgQVIqlDwN7NlOk9/DFgQ1hCH0L5pGqoSmikA1vtAyiA83MOTpkGl3F3wyATyUog==", "license": "MIT", "dependencies": { - "@expo/config-types": "^53.0.3", + "@expo/config-types": "^53.0.4", "@expo/json-file": "~9.1.4", "@expo/plist": "^0.3.4", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", @@ -1956,6 +1929,15 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/@expo/config/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/config/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2001,10 +1983,19 @@ "getenv": "^1.0.0" } }, + "node_modules/@expo/env/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/fingerprint": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.12.4.tgz", - "integrity": "sha512-HOJVvjiQYVHIouCOfFf4JRrQvBDIV/12GVG2iwbw1iGwmpQVkPgEXa9lN0f2yuS4J3QXHs73wr9jvuCjMmJlfw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.13.1.tgz", + "integrity": "sha512-MgZ5uIvvwAnjWeQoj4D3RnBXjD1GNOpCvhp2jtZWdQ8yEokhDEJGoHjsMT8/NCB5m2fqP5sv2V5nPzC7CN1YjQ==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -2012,7 +2003,9 @@ "chalk": "^4.1.2", "debug": "^4.3.4", "find-up": "^5.0.0", - "getenv": "^1.0.0", + "getenv": "^2.0.0", + "glob": "^10.4.2", + "ignore": "^5.3.1", "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", @@ -2022,30 +2015,6 @@ "fingerprint": "bin/cli.js" } }, - "node_modules/@expo/fingerprint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/fingerprint/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@expo/fingerprint/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2075,6 +2044,15 @@ "unique-string": "~2.0.0" } }, + "node_modules/@expo/image-utils/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/image-utils/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2107,16 +2085,16 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.20.14", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.14.tgz", - "integrity": "sha512-tYDDubuZycK+NX00XN7BMu73kBur/evOPcKfxc+UBeFfgN2EifOITtdwSUDdRsbtJ2OnXwMY1HfRUG3Lq3l4cw==", + "version": "0.20.15", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.15.tgz", + "integrity": "sha512-m8i58IQ7I8iOdVRfOhFmhPMHuhgeTVfQp1+mxW7URqPZaeVbuDVktPqOiNoHraKBoGPLKMUSsD+qdUuJVL3wMg==", "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": "~11.0.9", + "@expo/config": "~11.0.10", "@expo/env": "~1.0.5", "@expo/json-file": "~9.1.4", "@expo/spawn-async": "^1.7.2", @@ -2124,7 +2102,7 @@ "debug": "^4.3.2", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", @@ -2133,28 +2111,32 @@ "resolve-from": "^5.0.0" } }, - "node_modules/@expo/metro-config/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@expo/metro-config/node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/metro-config/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^10 || ^12 || >=14" } }, "node_modules/@expo/metro-runtime": { @@ -2205,17 +2187,17 @@ } }, "node_modules/@expo/prebuild-config": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.6.tgz", - "integrity": "sha512-HDTdlMkTQZ95rd6EpvuLM+xkZV03yGLc38FqI37qKFLJtUN1WnYVaWsuXKoljd1OrVEVsHe6CfqKwaPZ52D56Q==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.7.tgz", + "integrity": "sha512-1w5MBp6NdF51gPGp0HsCZt0QC82hZWo37wI9HfxhdQF/sN/92Mh4t30vaY7gjHe71T5QNyab00oxZH/wP0MDgQ==", "license": "MIT", "dependencies": { - "@expo/config": "~11.0.9", - "@expo/config-plugins": "~10.0.2", + "@expo/config": "~11.0.10", + "@expo/config-plugins": "~10.0.3", "@expo/config-types": "^53.0.4", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@react-native/normalize-colors": "0.79.2", + "@react-native/normalize-colors": "0.79.4", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", @@ -2259,12 +2241,14 @@ "license": "MIT" }, "node_modules/@expo/vector-icons": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", - "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.1.0.tgz", + "integrity": "sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ==", "license": "MIT", - "dependencies": { - "prop-types": "^15.8.1" + "peerDependencies": { + "expo-font": "*", + "react": "*", + "react-native": "*" } }, "node_modules/@expo/ws-tunnel": { @@ -2297,24 +2281,6 @@ "@babel/highlight": "^7.10.4" } }, - "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/@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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@firebase/analytics": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.11.tgz", @@ -3050,6 +3016,15 @@ "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==", + "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", @@ -3063,6 +3038,19 @@ "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==", + "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", @@ -3193,25 +3181,6 @@ "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==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -3472,18 +3441,90 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.2.tgz", - "integrity": "sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.4.tgz", + "integrity": "sha512-7PjHNRtYlc36B7P1PHme8ZV0ZJ/xsA/LvMoXe6EX++t7tSPJ8iYCMBryZhcdnztgce73b94Hfx6TTGbLF+xtUg==", "license": "MIT", "engines": { "node": ">=18" } }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.4.tgz", + "integrity": "sha512-quhytIlDedR3ircRwifa22CaWVUVnkxccrrgztroCZaemSJM+HLurKJrjKWm0J5jV9ed+d+9Qyb1YB0syTHDjg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.79.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.4.tgz", + "integrity": "sha512-El9JvYKiNfnkQ3qR7zJvvRdP3DX2i4BGYlIricWQishI3gWAfm88FQYFC2CcGoMQWJQEPN4jnDMpoISAJDEN4g==", + "license": "MIT", + "dependencies": { + "@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.79.4", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, "node_modules/@react-native/codegen": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.2.tgz", - "integrity": "sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.4.tgz", + "integrity": "sha512-K0moZDTJtqZqSs+u9tnDPSxNsdxi5irq8Nu4mzzOYlJTVNGy5H9BiIDg/NeKGfjAdo43yTDoaPSbUCvVV8cgIw==", "license": "MIT", "dependencies": { "glob": "^7.1.1", @@ -3499,6 +3540,16 @@ "@babel/core": "*" } }, + "node_modules/@react-native/codegen/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -3520,13 +3571,25 @@ "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.79.2", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.2.tgz", - "integrity": "sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.4.tgz", + "integrity": "sha512-lx1RXEJwU9Tcs2B2uiDZBa6yghU6m6STvwYqHbJlFZyNN1k3JRa9j0/CDu+0fCFacIn7rEfZpb4UWi5YhsHpQg==", "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.79.2", + "@react-native/dev-middleware": "0.79.4", "chalk": "^4.0.0", "debug": "^2.2.0", "invariant": "^2.2.4", @@ -3575,22 +3638,22 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz", - "integrity": "sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.4.tgz", + "integrity": "sha512-Gg4LhxHIK86Bi2RiT1rbFAB6fuwANRsaZJ1sFZ1OZEMQEx6stEnzaIrmfgzcv4z0bTQdQ8lzCrpsz0qtdaD4eA==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz", - "integrity": "sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.4.tgz", + "integrity": "sha512-OWRDNkgrFEo+OSC5QKfiiBmGXKoU8gmIABK8rj2PkgwisFQ/22p7MzE5b6oB2lxWaeJT7jBX5KVniNqO46VhHA==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.79.2", + "@react-native/debugger-frontend": "0.79.4", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", @@ -3630,63 +3693,40 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.2.tgz", - "integrity": "sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.4.tgz", + "integrity": "sha512-Gv5ryy23k7Sib2xVgqw65GTryg9YTij6URcMul5cI7LRcW0Aa1/FPb26l388P4oeNGNdDoAkkS+CuCWNunRuWg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.2.tgz", - "integrity": "sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.4.tgz", + "integrity": "sha512-VyKPo/l9zP4+oXpQHrJq4vNOtxF7F5IMdQmceNzTnRpybRvGGgO/9jYu9mdmdKRO2KpQEc5dB4W2rYhVKdGNKg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/normalize-colors": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz", - "integrity": "sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.4.tgz", + "integrity": "sha512-247/8pHghbYY2wKjJpUsY6ZNbWcdUa5j5517LZMn6pXrbSSgWuj3JA4OYibNnocCHBaVrt+3R8XC3VEJqLlHFg==", "license": "MIT" }, - "node_modules/@react-native/virtualized-lists": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz", - "integrity": "sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^19.0.0", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@react-navigation/bottom-tabs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", - "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.4.2.tgz", + "integrity": "sha512-jyBux5l3qqEucY5M/ZWxVvfA8TQu7DVl2gK+xB6iKqRUfLf7dSumyVxc7HemDwGFoz3Ug8dVZFvSMEs+mfrieQ==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.2.5", + "@react-navigation/elements": "^2.5.2", "color": "^4.2.3" }, "peerDependencies": { - "@react-navigation/native": "^7.0.14", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3694,40 +3734,36 @@ } }, "node_modules/@react-navigation/core": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.9.2.tgz", - "integrity": "sha512-lqCyKMWWaSwGK4VV3wRXXEKvl5IKrVH207Kp77TLCnITnd4KQIdgjzzJ/Pr62ugki3VTAErq1vg0yRlcXciCbg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.12.1.tgz", + "integrity": "sha512-ir6s25CDkReufi0vQhSIAe+AAHHJN9zTgGlS6iDS1yqbwgl2MiBAZzpaOL1T5llYujie2jF/bODeLz2j4k80zw==", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.3.7", + "@react-navigation/routers": "^7.4.1", "escape-string-regexp": "^4.0.0", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", - "use-latest-callback": "^0.2.3", + "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" - }, - "peerDependencies": { - "react": ">= 18.2.0" - } - }, - "node_modules/@react-navigation/core/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", - "license": "MIT" + }, + "peerDependencies": { + "react": ">= 18.2.0" + } }, "node_modules/@react-navigation/elements": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.4.2.tgz", - "integrity": "sha512-cudKLsRtOB+i8iDzfBKypdqiHsDy1ruqCfYAtwKEclDmLsxu3/90YXoBtoPyFNyIpsn3GtsJzZsrYWQh78xSWg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.5.2.tgz", + "integrity": "sha512-aGC3ukF5+lXuiF5bK7bJyRuWCE+Tk4MZ3GoQpAb7u7+m0KmsquliDhj4UCWEUU5kUoCeoRAUvv+1lKcYKf+WTQ==", "license": "MIT", "dependencies": { - "color": "^4.2.3" + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.1.9", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" @@ -3739,16 +3775,16 @@ } }, "node_modules/@react-navigation/native": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.9.tgz", - "integrity": "sha512-/A0oBwZIeD23o4jsnB0fEyKmKS+l4LAbJP/ioVvsGEubGp+sc5ouQNranOh7JwR0R1eX0MjcsLKprEwB+nztdw==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.14.tgz", + "integrity": "sha512-X233/CNx41FpshlWe4uEAUN8CNem3ju4t5pnVKcdhDR0cTQT1rK6P0ZwjSylD9zXdnHvJttFjBhKTot6TcvSqA==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.9.2", + "@react-navigation/core": "^7.12.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", - "use-latest-callback": "^0.2.3" + "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", @@ -3756,16 +3792,16 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", - "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.3.21.tgz", + "integrity": "sha512-oNNZHzkxILEibesamRKLodfXAaDOUvMBITKXLLeblDxnTAyIB/Kf7CmV+8nwkdAgV04kURTxV0SQI+d8gLUm6g==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.2.5", + "@react-navigation/elements": "^2.5.2", "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^7.0.14", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3773,20 +3809,22 @@ } }, "node_modules/@react-navigation/routers": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.3.7.tgz", - "integrity": "sha512-5ffgrefOs2zWqcCVX+OKn+RDx0puopQtxqetegFrTfWQ6pGXdY/5v4kBpPwaOFrNEeE/LPbHt9IJaJuvyhB7RA==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.4.1.tgz", + "integrity": "sha512-42mZrMzQ0LfKxUb5OHIurYrPYyRsXFLolucILrvm21f0O40Sw0Ufh1bnn/jRqnxZZu7wvpUGIGYM8nS9zVE1Aw==", "license": "MIT", "dependencies": { "nanoid": "^3.3.11" } }, "node_modules/@reduxjs/toolkit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz", - "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", + "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==", "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", "immer": "^10.0.3", "redux": "^5.0.1", "redux-thunk": "^3.1.0", @@ -3835,6 +3873,18 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -4009,12 +4059,6 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/core/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/@svgr/core/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -4054,9 +4098,9 @@ } }, "node_modules/@svgr/core/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4069,18 +4113,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@svgr/core/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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@svgr/core/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4168,12 +4200,6 @@ "@svgr/core": "*" } }, - "node_modules/@svgr/plugin-svgo/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/@svgr/plugin-svgo/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4201,9 +4227,9 @@ } }, "node_modules/@svgr/plugin-svgo/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4216,18 +4242,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@svgr/plugin-svgo/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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@svgr/plugin-svgo/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4278,9 +4292,9 @@ } }, "node_modules/@types/babel__generator": { - "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==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -4297,18 +4311,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/geojson": { - "version": "7946.0.15", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", - "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "license": "MIT" }, "node_modules/@types/graceful-fs": { @@ -4351,18 +4365,18 @@ } }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "24.0.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz", + "integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==", "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~7.8.0" } }, "node_modules/@types/react": { - "version": "19.1.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.5.tgz", - "integrity": "sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -4472,9 +4486,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -4529,6 +4543,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -4591,13 +4617,10 @@ "license": "MIT" }, "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" - } + "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/array-timsort": { "version": "1.0.3", @@ -4618,9 +4641,9 @@ "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -4638,11 +4661,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -4708,13 +4731,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/helper-define-polyfill-provider": "^0.6.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -4722,25 +4745,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4803,9 +4826,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "13.1.11", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.1.11.tgz", - "integrity": "sha512-jigWjvhRVdm9UTPJ1wjLYJ0OJvD5vLZ8YYkEknEl6+9S1JWORO/y3xtHr/hNj5n34nOilZqdXrmNFcqKc8YTsg==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.2.1.tgz", + "integrity": "sha512-Ol3w0uLJNQ5tDfCf4L+IDTDMgJkVMQHhvYqMxs18Ib0DcaBQIfE8mneSSk7FcuI6FS0phw/rZhoEquQh1/Q3wA==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", @@ -4822,7 +4845,7 @@ "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.79.2", + "@react-native/babel-preset": "0.79.4", "babel-plugin-react-native-web": "~0.19.13", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", @@ -4839,78 +4862,6 @@ } } }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.2.tgz", - "integrity": "sha512-d+NB7Uosn2ZWd4O4+7ZkB6q1a+0z2opD/4+Bzhk/Tv6fc5FrSftK2Noqxvo3/bhbdGFVPxf0yvLE8et4W17x/Q==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.79.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.2.tgz", - "integrity": "sha512-/HNu869oUq4FUXizpiNWrIhucsYZqu0/0spudJEzk9SEKar0EjVDP7zkg/sKK+KccNypDQGW7nFXT8onzvQ3og==", - "license": "MIT", - "dependencies": { - "@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.79.2", - "babel-plugin-syntax-hermes-parser": "0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", @@ -5069,13 +5020,12 @@ } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -5091,9 +5041,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "funding": [ { "type": "opencollective", @@ -5110,10 +5060,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -5222,9 +5172,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", - "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", + "version": "1.0.30001724", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", + "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", "funding": [ { "type": "opencollective", @@ -5281,6 +5231,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -5322,18 +5284,6 @@ "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", @@ -5591,12 +5541,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.25.0" }, "funding": { "type": "opencollective", @@ -5624,6 +5574,28 @@ "node": ">=4" } }, + "node_modules/cosmiconfig/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/cosmiconfig/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/cross-fetch": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", @@ -5767,9 +5739,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -5916,9 +5888,9 @@ } }, "node_modules/domutils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", - "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -5979,9 +5951,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", - "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", + "version": "1.5.173", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.173.tgz", + "integrity": "sha512-2bFhXP2zqSfQHugjqJIDFVwa+qIxyNApenmXTp9EjaKtdPrES5Qcn9/aSFy/NaP2E+fWG/zxKu/LBvY36p5VNQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -5999,17 +5971,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", @@ -6174,26 +6135,26 @@ "license": "MIT" }, "node_modules/expo": { - "version": "53.0.9", - "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.9.tgz", - "integrity": "sha512-UFG68aVOpccg3s++S3pbtI3YCQCnlu/TFvhnQ5vaD3vhOox1Uk/f2O2T95jmwA/EvKvetqGj34lys3DNXvPqgQ==", + "version": "53.0.12", + "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.12.tgz", + "integrity": "sha512-dtmED749hkxDWCcvtD++tb8bAm3Twv8qnUOXzVyXA5owNG0mwDIz0HveJTpWK1UzkY4HcTVRezDf0tflZJ+JXQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.24.13", + "@expo/cli": "0.24.15", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.2", - "@expo/fingerprint": "0.12.4", - "@expo/metro-config": "0.20.14", + "@expo/config-plugins": "~10.0.3", + "@expo/fingerprint": "0.13.1", + "@expo/metro-config": "0.20.15", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~13.1.11", + "babel-preset-expo": "~13.2.1", "expo-asset": "~11.1.5", "expo-constants": "~17.1.6", "expo-file-system": "~18.1.10", "expo-font": "~13.3.1", "expo-keep-awake": "~14.1.4", - "expo-modules-autolinking": "2.1.10", - "expo-modules-core": "2.3.13", + "expo-modules-autolinking": "2.1.12", + "expo-modules-core": "2.4.0", "react-native-edge-to-edge": "1.6.0", "whatwg-url-without-unicode": "8.0.0-3" }, @@ -6237,9 +6198,9 @@ } }, "node_modules/expo-blur": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.4.tgz", - "integrity": "sha512-55P9tK/RjJZEcu2tU7BqX3wmIOrGMOOkmHztJMMws+ZGHzvtjnPmT7dsQxhOU9vPj77oHnKetYHU2sik3iBcCw==", + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.5.tgz", + "integrity": "sha512-CCLJHxN4eoAl06ESKT3CbMasJ98WsjF9ZQEJnuxtDb9ffrYbZ+g9ru84fukjNUOTtc8A8yXE5z8NgY1l0OMrmQ==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6262,13 +6223,13 @@ } }, "node_modules/expo-dev-client": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.0.tgz", - "integrity": "sha512-7GgO3BGlFM016Zkp3c9bUbi35pubqKh8Z/iHC1arIvckEjDrLER+92zfUTFr49XLk2o64arItRPJyQL49pA/hg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.1.tgz", + "integrity": "sha512-SzrHvXeyTGawzc/7ZIHFmaUYiCeRJagL9bJo/yTPmxdycFFOOdLs1FNMFXyYhB6YY4u5EKTCO6g1fug+0GV9sQ==", "license": "MIT", "dependencies": { - "expo-dev-launcher": "5.1.12", - "expo-dev-menu": "6.1.11", + "expo-dev-launcher": "5.1.13", + "expo-dev-menu": "6.1.12", "expo-dev-menu-interface": "1.10.0", "expo-manifests": "~0.16.5", "expo-updates-interface": "~1.1.0" @@ -6278,13 +6239,13 @@ } }, "node_modules/expo-dev-launcher": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.12.tgz", - "integrity": "sha512-ALedYerjJtSiPa95l41zMAO/m1m1kgS39i2H0io+6Ix4OksYNhILNzMNB1qDht/oWt2yjLBvXfWULfs5+3vnaA==", + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.13.tgz", + "integrity": "sha512-EAxkI0MOZk1E9tkk+QpyDhqlCjUqAr8q+mobcC3ZJIIi7KejhaQlGVlF1kUUITsYLvFvbT8egRgrsMO57T6uDA==", "license": "MIT", "dependencies": { "ajv": "8.11.0", - "expo-dev-menu": "6.1.11", + "expo-dev-menu": "6.1.12", "expo-manifests": "~0.16.5", "resolve-from": "^5.0.0" }, @@ -6293,9 +6254,9 @@ } }, "node_modules/expo-dev-menu": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.11.tgz", - "integrity": "sha512-yrlDXGcqlbQX3Pgw/iPLRea7+pHFC17MdtkNaXYQ5K5u64mn9l4KZ2ZYUeQ8cKDG5l8ZdC4F9R9vfCJYFi82AA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.12.tgz", + "integrity": "sha512-Bz8yjZ6a+u7ZrZWzfn3aCgBwAX+QB0ktQyV7QMS5/agyesKiqM43+VdwNQqrm8w9tS8HZ2sf6RTvdek8YgOEHg==", "license": "MIT", "dependencies": { "expo-dev-menu-interface": "1.10.0" @@ -6374,9 +6335,9 @@ } }, "node_modules/expo-linear-gradient": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.4.tgz", - "integrity": "sha512-bImj2qqIjnl+VHYGnIwan9LxmGvb8e4hFqHpxsPzUiK7Ady7uERrXPhJcyTKTxRf4RL2sQRDpoOKzBYNdQDmuw==", + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.5.tgz", + "integrity": "sha512-BSN3MkSGLZoHMduEnAgfhoj3xqcDWaoICgIr4cIYEx1GcHfKMhzA/O4mpZJ/WC27BP1rnAqoKfbclk1eA70ndQ==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6421,9 +6382,9 @@ } }, "node_modules/expo-modules-autolinking": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.10.tgz", - "integrity": "sha512-k93fzoszrYTKbZ51DSVnewYIGUV6Gi22Su8qySXPFJEfvtDs2NUUNRHBZNKgLHvwc6xPzVC5j7JYbrpXNuY44A==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.12.tgz", + "integrity": "sha512-rW5YSW66pUx1nLqn7TO0eWRnP4LDvySW1Tom0wjexk3Tx/upg9LYE5tva7p5AX/cdFfiZcEqPcOxP4RyT++Xlg==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -6439,21 +6400,21 @@ } }, "node_modules/expo-modules-core": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.3.13.tgz", - "integrity": "sha512-vmKHv7tEo2wUQoYDV6grhsLsQfD3DUnew5Up3yNnOE1gHGQE+zhV1SBYqaPMPB12OvpyD1mlfzGhu6r9PODnng==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.4.0.tgz", + "integrity": "sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, "node_modules/expo-splash-screen": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.8.tgz", - "integrity": "sha512-2eh+uA543brfeG5HILXmtNKA7E2/pfywKzNumzy3Ef6OtDjYy6zJUGNSbhnZRbVEjUZo3/QNRs0JRBfY80okZg==", + "version": "0.30.9", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.9.tgz", + "integrity": "sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==", "license": "MIT", "dependencies": { - "@expo/prebuild-config": "^9.0.5" + "@expo/prebuild-config": "^9.0.6" }, "peerDependencies": { "expo": "*" @@ -6495,21 +6456,33 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -6517,9 +6490,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -6567,6 +6540,15 @@ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", "license": "MIT" }, + "node_modules/fbjs/node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6724,12 +6706,12 @@ "license": "BSD-2-Clause" }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -6828,9 +6810,9 @@ } }, "node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", + "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", "license": "MIT", "engines": { "node": ">=6" @@ -6857,39 +6839,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -7035,20 +6993,6 @@ "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", "license": "BSD-3-Clause" }, - "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==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", @@ -7075,6 +7019,15 @@ ], "license": "BSD-3-Clause" }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", @@ -7539,13 +7492,12 @@ "license": "MIT" }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7943,6 +7895,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/lodash.throttle": { @@ -8080,9 +8033,9 @@ } }, "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", "license": "Apache-2.0" }, "node_modules/mdn-data": { @@ -8623,15 +8576,18 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -8664,6 +8620,18 @@ "node": ">= 18" } }, + "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/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -9249,10 +9217,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "license": "MIT", "engines": { "node": ">= 6" @@ -9288,9 +9265,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -9307,7 +9284,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -9431,9 +9408,9 @@ "license": "MIT" }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.0.tgz", + "integrity": "sha512-ujSB9uXHJKzM/2GBuE0hBOUgC77CN3Bnpqa+g80bkv3T3A93wL/xlzDATHhnhkzifz/UE2SNOvmbTz5hSkDlHw==", "dev": true, "license": "MIT", "bin": { @@ -9484,6 +9461,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/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/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", @@ -9503,12 +9486,12 @@ } }, "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "license": "MIT", "dependencies": { - "asap": "~2.0.3" + "asap": "~2.0.6" } }, "node_modules/prompts": { @@ -9718,25 +9701,25 @@ } }, "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==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", + "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", "license": "MIT" }, "node_modules/react-native": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.79.2.tgz", - "integrity": "sha512-AnGzb56JvU5YCL7cAwg10+ewDquzvmgrMddiBM0GAWLwQM/6DJfGd2ZKrMuKKehHerpDDZgG+EY64gk3x3dEkw==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.79.4.tgz", + "integrity": "sha512-CfxYMuszvnO/33Q5rB//7cU1u9P8rSOvzhE2053Phdb8+6bof9NLayCllU2nmPrm8n9o6RU1Fz5H0yquLQ0DAw==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.7.0", - "@react-native/assets-registry": "0.79.2", - "@react-native/codegen": "0.79.2", - "@react-native/community-cli-plugin": "0.79.2", - "@react-native/gradle-plugin": "0.79.2", - "@react-native/js-polyfills": "0.79.2", - "@react-native/normalize-colors": "0.79.2", - "@react-native/virtualized-lists": "0.79.2", + "@react-native/assets-registry": "0.79.4", + "@react-native/codegen": "0.79.4", + "@react-native/community-cli-plugin": "0.79.4", + "@react-native/gradle-plugin": "0.79.4", + "@react-native/js-polyfills": "0.79.4", + "@react-native/normalize-colors": "0.79.4", + "@react-native/virtualized-lists": "0.79.4", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -9993,12 +9976,13 @@ } }, "node_modules/react-native-screens": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.10.0.tgz", - "integrity": "sha512-Tw21NGuXm3PbiUGtZd0AnXirUixaAbPXDjNR0baBH7/WJDaDTTELLcQ7QRXuqAWbmr/EVCrKj1348ei1KFIr8A==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.11.1.tgz", + "integrity": "sha512-F0zOzRVa3ptZfLpD0J8ROdo+y1fEPw+VBFq1MTY/iyDu08al7qFUO5hLMd+EYMda5VXGaTFCa8q7bOppUszhJw==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", + "react-native-is-edge-to-edge": "^1.1.7", "warn-once": "^0.1.0" }, "peerDependencies": { @@ -10031,9 +10015,9 @@ } }, "node_modules/react-native-svg-transformer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.0.tgz", - "integrity": "sha512-RG5fSWJT7mjCQYocgYFUo1KYPLOoypPVG5LQab+pZZO7m4ciGaQIe0mhok3W4R5jLQsEXKo0u+aQGkZV/bZG7w==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.1.tgz", + "integrity": "sha512-dFvBNR8A9VPum9KCfh+LE49YiJEF8zUSnEFciKQroR/bEOhlPoZA0SuQ0qNk7m2iZl2w59FYjdRe0pMHWMDl0Q==", "license": "MIT", "dependencies": { "@svgr/core": "^8.1.0", @@ -10163,9 +10147,9 @@ } }, "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { - "version": "0.74.88", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.88.tgz", - "integrity": "sha512-He5oTwPBxvXrxJ91dZzpxR7P+VYmc9IkJfhuH8zUiU50ckrt+xWNjtVugPdUv4LuVjmZ36Vk2EX8bl1gVn2dVA==", + "version": "0.74.89", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", + "integrity": "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==", "license": "MIT" }, "node_modules/react-native-web/node_modules/memoize-one": { @@ -10174,6 +10158,39 @@ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", "license": "MIT" }, + "node_modules/react-native/node_modules/@react-native/virtualized-lists": { + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.4.tgz", + "integrity": "sha512-0Mdcox6e5PTonuM1WIo3ks7MBAa3IDzj0pKnE5xAwSgQ0DJW2P5dYf+KjWmpkE+Yb0w41ZbtXPhKq+U2JJ6C/Q==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^19.0.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/react-native/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -10204,25 +10221,22 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-native/node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "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": { - "asap": "~2.0.6" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/react-native/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/react-native/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10281,15 +10295,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -10348,20 +10353,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -10528,9 +10524,9 @@ "license": "ISC" }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -10553,6 +10549,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -10574,6 +10580,18 @@ "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/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10617,14 +10635,6 @@ ], "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -10851,9 +10861,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -11088,9 +11098,9 @@ "license": "MIT" }, "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", "license": "MIT", "dependencies": { "type-fest": "^0.7.1" @@ -11099,15 +11109,6 @@ "node": ">=6" } }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11401,18 +11402,6 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/tar": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", @@ -11480,9 +11469,9 @@ } }, "node_modules/terser": { - "version": "5.39.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", - "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11517,6 +11506,16 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -11538,6 +11537,18 @@ "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==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -11620,15 +11631,12 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/typescript": { @@ -11681,9 +11689,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -11748,9 +11756,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -11768,7 +11776,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -11787,9 +11795,9 @@ } }, "node_modules/use-latest-callback": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", - "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.4.tgz", + "integrity": "sha512-LS2s2n1usUUnDq4oVh1ca6JFX9uSqUncTfAm44WMg0v6TxL7POUTk1B044NH8TeLkFbNajIsgDHcgNpNzZucdg==", "license": "MIT", "peerDependencies": { "react": ">=16.8" @@ -11819,6 +11827,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "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", @@ -12067,6 +12084,25 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "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==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", @@ -12101,15 +12137,6 @@ "node": ">=10.0.0" } }, - "node_modules/xcode/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/xml2js": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", @@ -12165,15 +12192,15 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { diff --git a/package.json b/package.json index f1f6d0b..370f18d 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "@expo-google-fonts/quicksand": "^0.2.3", "@expo/metro-runtime": "~5.0.4", - "@react-native-async-storage/async-storage": "^2.1.2", + "@react-native-async-storage/async-storage": "2.1.2", "@react-native-community/slider": "4.5.6", "@react-native-firebase/app": "^22.2.1", "@react-native-firebase/messaging": "^22.2.1", @@ -23,29 +23,29 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", - "expo": "^53.0.9", - "expo-blur": "~14.1.4", - "expo-dev-client": "~5.2.0", + "expo": "53.0.12", + "expo-blur": "~14.1.5", + "expo-dev-client": "~5.2.1", "expo-font": "~13.3.1", "expo-image-picker": "~16.1.4", - "expo-linear-gradient": "~14.1.4", + "expo-linear-gradient": "~14.1.5", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-splash-screen": "~0.30.8", + "expo-splash-screen": "~0.30.9", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", "metro-react-native-babel-transformer": "^0.77.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.2", + "react-native": "0.79.4", "react-native-chart-kit": "^6.12.0", "react-native-elements": "^3.4.3", "react-native-gesture-handler": "~2.24.0", "react-native-maps": "1.20.1", "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "~4.10.0", + "react-native-screens": "~4.11.1", "react-native-svg": "15.11.2", "react-native-svg-transformer": "^1.5.0", "react-native-toast-message": "^2.3.0", From 9a20caf8b634f4883b03579f7607f42de69303bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 02:38:24 +0100 Subject: [PATCH 25/31] Revert "fix gradle versions and app.json delete" This reverts commit bdc752a37c775ebb2f2b14367990413b73807c38. --- android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- app.config.js | 56 - app.json | 56 + eas.json | 23 - package-lock.json | 1977 ++++++++--------- package.json | 16 +- 7 files changed, 1041 insertions(+), 1091 deletions(-) delete mode 100644 app.config.js create mode 100644 app.json delete mode 100644 eas.json diff --git a/android/build.gradle b/android/build.gradle index 72a0662..a1344a5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle:8.7.2') + classpath('com.android.tools.build:gradle') classpath('com.facebook.react:react-native-gradle-plugin') classpath('org.jetbrains.kotlin:kotlin-gradle-plugin') classpath("com.google.gms:google-services:4.3.15") diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 79eb9d0..37f853b 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/app.config.js b/app.config.js deleted file mode 100644 index 34c689b..0000000 --- a/app.config.js +++ /dev/null @@ -1,56 +0,0 @@ -// app.config.js -export default { - expo: { - name: 'lumicheck', - slug: 'lumicheck', - version: '1.0.0', - userInterfaceStyle: 'automatic', - newArchEnabled: true, - scheme: 'lumicheck', - linking: { - // This is where linking should be - prefixes: ['lumicheck://', 'exp+lumicheck://'], - }, - ios: { - supportsTablet: true, - infoPlist: { - UIBackgroundModes: ['remote-notification'], - NSUserTrackingUsageDescription: - 'Este app utiliza notificações para manter você informado sobre atualizações importantes.', - UIUserNotificationSettings: { - UIUserNotificationTypeAlert: true, - UIUserNotificationTypeBadge: true, - UIUserNotificationTypeSound: true, - }, - }, - }, - android: { - adaptiveIcon: { - foregroundImage: './assets/icons/icon.png', - backgroundColor: '#ffffff', - }, - package: 'com.anonymous.lumicheck', - }, - web: { - favicon: './assets/icons/icon.png', - bundler: 'metro', - }, - plugins: [ - 'expo-font', - 'expo-dev-client', - '@react-native-firebase/app', - [ - '@react-native-firebase/messaging', - { - backgroundMessageHandler: './src/firebase-messaging.js', - }, - ], - ], - extra: { - eas: { - projectId: '72c293d0-6598-46a1-805b-70374430d035', - }, - }, - owner: 'rodrigomgraca', - }, -}; diff --git a/app.json b/app.json new file mode 100644 index 0000000..a7a6dbc --- /dev/null +++ b/app.json @@ -0,0 +1,56 @@ +{ + "expo": { + "name": "lumicheck", + "slug": "lumicheck", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/icons/icon.png", + "userInterfaceStyle": "automatic", + "newArchEnabled": true, + "scheme": "lumicheck", + "splash": { + "image": "./assets/icons/icon.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "ios": { + "supportsTablet": true, + "infoPlist": { + "UIBackgroundModes": [ + "remote-notification" + ], + "NSUserTrackingUsageDescription": "Este app utiliza notificações para manter você informado sobre atualizações importantes.", + "UIUserNotificationSettings": { + "UIUserNotificationTypeAlert": true, + "UIUserNotificationTypeBadge": true, + "UIUserNotificationTypeSound": true + } + } + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/lumis/Lumi4k.png", + "backgroundColor": "#ffffff" + }, + "package": "com.anonymous.lumicheck" + }, + "web": { + "favicon": "./assets/lumis/Lumi4k.png", + "bundler": "metro" + }, + "linking": { + "prefixes": ["lumicheck://", "exp+lumicheck://"] + }, + "plugins": [ + "expo-font", + "expo-dev-client", + "@react-native-firebase/app", + [ + "@react-native-firebase/messaging", + { + "backgroundMessageHandler": "./src/firebase-messaging.js" + } + ] + ] + } +} diff --git a/eas.json b/eas.json deleted file mode 100644 index 690175b..0000000 --- a/eas.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "cli": { - "version": ">= 7.8.4" - }, - "build": { - "development": { - "developmentClient": true, - "distribution": "internal", - "android": { - "buildType": "apk" - } - }, - "preview": { - "android": { - "buildType": "apk" - } - }, - "production": {} - }, - "submit": { - "production": {} - } -} diff --git a/package-lock.json b/package-lock.json index 70ad8c9..7522ed4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@expo-google-fonts/quicksand": "^0.2.3", "@expo/metro-runtime": "~5.0.4", - "@react-native-async-storage/async-storage": "2.1.2", + "@react-native-async-storage/async-storage": "^2.1.2", "@react-native-community/slider": "4.5.6", "@react-native-firebase/app": "^22.2.1", "@react-native-firebase/messaging": "^22.2.1", @@ -20,29 +20,29 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", - "expo": "53.0.12", - "expo-blur": "~14.1.5", - "expo-dev-client": "~5.2.1", + "expo": "^53.0.9", + "expo-blur": "~14.1.4", + "expo-dev-client": "~5.2.0", "expo-font": "~13.3.1", "expo-image-picker": "~16.1.4", - "expo-linear-gradient": "~14.1.5", + "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-splash-screen": "~0.30.9", + "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", "metro-react-native-babel-transformer": "^0.77.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.4", + "react-native": "0.79.2", "react-native-chart-kit": "^6.12.0", "react-native-elements": "^3.4.3", "react-native-gesture-handler": "~2.24.0", "react-native-maps": "1.20.1", "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "~4.11.1", + "react-native-screens": "~4.10.0", "react-native-svg": "15.11.2", "react-native-svg-transformer": "^1.5.0", "react-native-toast-message": "^2.3.0", @@ -114,30 +114,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -153,13 +153,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -169,25 +169,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -218,12 +218,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.25.9", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -235,9 +235,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -289,14 +289,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -327,14 +327,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -401,27 +401,27 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" @@ -514,12 +514,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -582,12 +582,12 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", - "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz", + "integrity": "sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -764,12 +764,12 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", - "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz", + "integrity": "sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -779,12 +779,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", - "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -794,12 +794,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -950,12 +950,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -965,12 +965,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -980,14 +980,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -997,14 +997,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1029,12 +1029,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1044,13 +1044,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1060,16 +1060,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1080,13 +1080,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1096,12 +1096,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1111,12 +1111,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1126,13 +1126,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", - "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", + "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-flow": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-flow": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1142,13 +1142,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1158,14 +1158,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1175,12 +1175,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1190,12 +1190,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1220,13 +1220,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1236,13 +1236,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1252,12 +1252,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1267,12 +1267,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1282,15 +1282,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1316,12 +1315,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1331,13 +1330,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1347,12 +1346,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1362,13 +1361,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1378,14 +1377,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1459,12 +1458,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1474,12 +1473,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1505,12 +1504,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", + "version": "7.25.9", + "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", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1520,15 +1520,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", - "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1540,12 +1540,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1555,13 +1555,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1571,12 +1571,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1586,12 +1586,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1601,16 +1601,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", + "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1620,13 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1656,16 +1656,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", - "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.27.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1675,10 +1675,13 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, "engines": { "node": ">=6.9.0" } @@ -1698,16 +1701,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1717,16 +1720,16 @@ }, "node_modules/@babel/traverse--for-generate-function-map": { "name": "@babel/traverse", - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1735,9 +1738,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1766,29 +1769,29 @@ "license": "MIT" }, "node_modules/@expo/cli": { - "version": "0.24.15", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.15.tgz", - "integrity": "sha512-RDZS30OSnbXkSPnBXdyPL29KbltjOmegE23bZZDiGV23WOReWcPgRc5U7Fd8eLPhtRjHBKlBpNJMTed5Ntr/uw==", + "version": "0.24.13", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.13.tgz", + "integrity": "sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==", "license": "MIT", "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.3", + "@expo/config-plugins": "~10.0.2", "@expo/devcert": "^1.1.2", "@expo/env": "~1.0.5", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@expo/metro-config": "~0.20.15", + "@expo/metro-config": "~0.20.14", "@expo/osascript": "^2.2.4", "@expo/package-manager": "^1.8.4", "@expo/plist": "^0.3.4", - "@expo/prebuild-config": "^9.0.7", + "@expo/prebuild-config": "^9.0.6", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.79.4", + "@react-native/dev-middleware": "0.79.2", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", @@ -1803,7 +1806,7 @@ "debug": "^4.3.4", "env-editor": "^0.4.1", "freeport-async": "^2.0.0", - "getenv": "^2.0.0", + "getenv": "^1.0.0", "glob": "^10.4.2", "lan-network": "^0.1.6", "minimatch": "^9.0.0", @@ -1837,6 +1840,30 @@ "expo-internal": "build/bin/cli" } }, + "node_modules/@expo/cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/cli/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -1881,18 +1908,18 @@ } }, "node_modules/@expo/config-plugins": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.3.tgz", - "integrity": "sha512-fjCckkde67pSDf48x7wRuPsgQVIqlDwN7NlOk9/DFgQ1hCH0L5pGqoSmikA1vtAyiA83MOTpkGl3F3wyATyUog==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.2.tgz", + "integrity": "sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==", "license": "MIT", "dependencies": { - "@expo/config-types": "^53.0.4", + "@expo/config-types": "^53.0.3", "@expo/json-file": "~9.1.4", "@expo/plist": "^0.3.4", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", - "getenv": "^2.0.0", + "getenv": "^1.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", @@ -1929,15 +1956,6 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/@expo/config/node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@expo/config/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -1983,19 +2001,10 @@ "getenv": "^1.0.0" } }, - "node_modules/@expo/env/node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@expo/fingerprint": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.13.1.tgz", - "integrity": "sha512-MgZ5uIvvwAnjWeQoj4D3RnBXjD1GNOpCvhp2jtZWdQ8yEokhDEJGoHjsMT8/NCB5m2fqP5sv2V5nPzC7CN1YjQ==", + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.12.4.tgz", + "integrity": "sha512-HOJVvjiQYVHIouCOfFf4JRrQvBDIV/12GVG2iwbw1iGwmpQVkPgEXa9lN0f2yuS4J3QXHs73wr9jvuCjMmJlfw==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -2003,9 +2012,7 @@ "chalk": "^4.1.2", "debug": "^4.3.4", "find-up": "^5.0.0", - "getenv": "^2.0.0", - "glob": "^10.4.2", - "ignore": "^5.3.1", + "getenv": "^1.0.0", "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", @@ -2015,6 +2022,30 @@ "fingerprint": "bin/cli.js" } }, + "node_modules/@expo/fingerprint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/fingerprint/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/fingerprint/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2044,15 +2075,6 @@ "unique-string": "~2.0.0" } }, - "node_modules/@expo/image-utils/node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@expo/image-utils/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2085,16 +2107,16 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.20.15", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.15.tgz", - "integrity": "sha512-m8i58IQ7I8iOdVRfOhFmhPMHuhgeTVfQp1+mxW7URqPZaeVbuDVktPqOiNoHraKBoGPLKMUSsD+qdUuJVL3wMg==", + "version": "0.20.14", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.14.tgz", + "integrity": "sha512-tYDDubuZycK+NX00XN7BMu73kBur/evOPcKfxc+UBeFfgN2EifOITtdwSUDdRsbtJ2OnXwMY1HfRUG3Lq3l4cw==", "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": "~11.0.10", + "@expo/config": "~11.0.9", "@expo/env": "~1.0.5", "@expo/json-file": "~9.1.4", "@expo/spawn-async": "^1.7.2", @@ -2102,7 +2124,7 @@ "debug": "^4.3.2", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", - "getenv": "^2.0.0", + "getenv": "^1.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", @@ -2111,32 +2133,28 @@ "resolve-from": "^5.0.0" } }, - "node_modules/@expo/metro-config/node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/@expo/metro-config/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@expo/metro-config/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@expo/metro-runtime": { @@ -2187,17 +2205,17 @@ } }, "node_modules/@expo/prebuild-config": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.7.tgz", - "integrity": "sha512-1w5MBp6NdF51gPGp0HsCZt0QC82hZWo37wI9HfxhdQF/sN/92Mh4t30vaY7gjHe71T5QNyab00oxZH/wP0MDgQ==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.6.tgz", + "integrity": "sha512-HDTdlMkTQZ95rd6EpvuLM+xkZV03yGLc38FqI37qKFLJtUN1WnYVaWsuXKoljd1OrVEVsHe6CfqKwaPZ52D56Q==", "license": "MIT", "dependencies": { - "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.3", + "@expo/config": "~11.0.9", + "@expo/config-plugins": "~10.0.2", "@expo/config-types": "^53.0.4", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@react-native/normalize-colors": "0.79.4", + "@react-native/normalize-colors": "0.79.2", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", @@ -2241,14 +2259,12 @@ "license": "MIT" }, "node_modules/@expo/vector-icons": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.1.0.tgz", - "integrity": "sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ==", + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", + "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", "license": "MIT", - "peerDependencies": { - "expo-font": "*", - "react": "*", - "react-native": "*" + "dependencies": { + "prop-types": "^15.8.1" } }, "node_modules/@expo/ws-tunnel": { @@ -2281,6 +2297,24 @@ "@babel/highlight": "^7.10.4" } }, + "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/@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": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@firebase/analytics": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.11.tgz", @@ -3016,15 +3050,6 @@ "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==", - "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", @@ -3038,19 +3063,6 @@ "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==", - "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", @@ -3181,6 +3193,25 @@ "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==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -3441,90 +3472,18 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.4.tgz", - "integrity": "sha512-7PjHNRtYlc36B7P1PHme8ZV0ZJ/xsA/LvMoXe6EX++t7tSPJ8iYCMBryZhcdnztgce73b94Hfx6TTGbLF+xtUg==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.4.tgz", - "integrity": "sha512-quhytIlDedR3ircRwifa22CaWVUVnkxccrrgztroCZaemSJM+HLurKJrjKWm0J5jV9ed+d+9Qyb1YB0syTHDjg==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.2.tgz", + "integrity": "sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==", "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.79.4" - }, "engines": { "node": ">=18" } }, - "node_modules/@react-native/babel-preset": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.4.tgz", - "integrity": "sha512-El9JvYKiNfnkQ3qR7zJvvRdP3DX2i4BGYlIricWQishI3gWAfm88FQYFC2CcGoMQWJQEPN4jnDMpoISAJDEN4g==", - "license": "MIT", - "dependencies": { - "@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.79.4", - "babel-plugin-syntax-hermes-parser": "0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, "node_modules/@react-native/codegen": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.4.tgz", - "integrity": "sha512-K0moZDTJtqZqSs+u9tnDPSxNsdxi5irq8Nu4mzzOYlJTVNGy5H9BiIDg/NeKGfjAdo43yTDoaPSbUCvVV8cgIw==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.2.tgz", + "integrity": "sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==", "license": "MIT", "dependencies": { "glob": "^7.1.1", @@ -3540,16 +3499,6 @@ "@babel/core": "*" } }, - "node_modules/@react-native/codegen/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "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", @@ -3571,25 +3520,13 @@ "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.79.4", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.4.tgz", - "integrity": "sha512-lx1RXEJwU9Tcs2B2uiDZBa6yghU6m6STvwYqHbJlFZyNN1k3JRa9j0/CDu+0fCFacIn7rEfZpb4UWi5YhsHpQg==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.2.tgz", + "integrity": "sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==", "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.79.4", + "@react-native/dev-middleware": "0.79.2", "chalk": "^4.0.0", "debug": "^2.2.0", "invariant": "^2.2.4", @@ -3638,22 +3575,22 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.4.tgz", - "integrity": "sha512-Gg4LhxHIK86Bi2RiT1rbFAB6fuwANRsaZJ1sFZ1OZEMQEx6stEnzaIrmfgzcv4z0bTQdQ8lzCrpsz0qtdaD4eA==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz", + "integrity": "sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.4.tgz", - "integrity": "sha512-OWRDNkgrFEo+OSC5QKfiiBmGXKoU8gmIABK8rj2PkgwisFQ/22p7MzE5b6oB2lxWaeJT7jBX5KVniNqO46VhHA==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz", + "integrity": "sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.79.4", + "@react-native/debugger-frontend": "0.79.2", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", @@ -3693,40 +3630,63 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.4.tgz", - "integrity": "sha512-Gv5ryy23k7Sib2xVgqw65GTryg9YTij6URcMul5cI7LRcW0Aa1/FPb26l388P4oeNGNdDoAkkS+CuCWNunRuWg==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.2.tgz", + "integrity": "sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.4.tgz", - "integrity": "sha512-VyKPo/l9zP4+oXpQHrJq4vNOtxF7F5IMdQmceNzTnRpybRvGGgO/9jYu9mdmdKRO2KpQEc5dB4W2rYhVKdGNKg==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.2.tgz", + "integrity": "sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/normalize-colors": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.4.tgz", - "integrity": "sha512-247/8pHghbYY2wKjJpUsY6ZNbWcdUa5j5517LZMn6pXrbSSgWuj3JA4OYibNnocCHBaVrt+3R8XC3VEJqLlHFg==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz", + "integrity": "sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==", "license": "MIT" }, + "node_modules/@react-native/virtualized-lists": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz", + "integrity": "sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^19.0.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@react-navigation/bottom-tabs": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.4.2.tgz", - "integrity": "sha512-jyBux5l3qqEucY5M/ZWxVvfA8TQu7DVl2gK+xB6iKqRUfLf7dSumyVxc7HemDwGFoz3Ug8dVZFvSMEs+mfrieQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", + "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.5.2", + "@react-navigation/elements": "^2.2.5", "color": "^4.2.3" }, "peerDependencies": { - "@react-navigation/native": "^7.1.14", + "@react-navigation/native": "^7.0.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3734,36 +3694,40 @@ } }, "node_modules/@react-navigation/core": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.12.1.tgz", - "integrity": "sha512-ir6s25CDkReufi0vQhSIAe+AAHHJN9zTgGlS6iDS1yqbwgl2MiBAZzpaOL1T5llYujie2jF/bODeLz2j4k80zw==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.9.2.tgz", + "integrity": "sha512-lqCyKMWWaSwGK4VV3wRXXEKvl5IKrVH207Kp77TLCnITnd4KQIdgjzzJ/Pr62ugki3VTAErq1vg0yRlcXciCbg==", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.4.1", + "@react-navigation/routers": "^7.3.7", "escape-string-regexp": "^4.0.0", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", - "use-latest-callback": "^0.2.4", + "use-latest-callback": "^0.2.3", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, + "node_modules/@react-navigation/core/node_modules/react-is": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", + "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "license": "MIT" + }, "node_modules/@react-navigation/elements": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.5.2.tgz", - "integrity": "sha512-aGC3ukF5+lXuiF5bK7bJyRuWCE+Tk4MZ3GoQpAb7u7+m0KmsquliDhj4UCWEUU5kUoCeoRAUvv+1lKcYKf+WTQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.4.2.tgz", + "integrity": "sha512-cudKLsRtOB+i8iDzfBKypdqiHsDy1ruqCfYAtwKEclDmLsxu3/90YXoBtoPyFNyIpsn3GtsJzZsrYWQh78xSWg==", "license": "MIT", "dependencies": { - "color": "^4.2.3", - "use-latest-callback": "^0.2.4", - "use-sync-external-store": "^1.5.0" + "color": "^4.2.3" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.1.14", + "@react-navigation/native": "^7.1.9", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" @@ -3775,16 +3739,16 @@ } }, "node_modules/@react-navigation/native": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.14.tgz", - "integrity": "sha512-X233/CNx41FpshlWe4uEAUN8CNem3ju4t5pnVKcdhDR0cTQT1rK6P0ZwjSylD9zXdnHvJttFjBhKTot6TcvSqA==", + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.9.tgz", + "integrity": "sha512-/A0oBwZIeD23o4jsnB0fEyKmKS+l4LAbJP/ioVvsGEubGp+sc5ouQNranOh7JwR0R1eX0MjcsLKprEwB+nztdw==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.12.1", + "@react-navigation/core": "^7.9.2", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", - "use-latest-callback": "^0.2.4" + "use-latest-callback": "^0.2.3" }, "peerDependencies": { "react": ">= 18.2.0", @@ -3792,16 +3756,16 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "7.3.21", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.3.21.tgz", - "integrity": "sha512-oNNZHzkxILEibesamRKLodfXAaDOUvMBITKXLLeblDxnTAyIB/Kf7CmV+8nwkdAgV04kURTxV0SQI+d8gLUm6g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", + "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.5.2", + "@react-navigation/elements": "^2.2.5", "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^7.1.14", + "@react-navigation/native": "^7.0.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3809,22 +3773,20 @@ } }, "node_modules/@react-navigation/routers": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.4.1.tgz", - "integrity": "sha512-42mZrMzQ0LfKxUb5OHIurYrPYyRsXFLolucILrvm21f0O40Sw0Ufh1bnn/jRqnxZZu7wvpUGIGYM8nS9zVE1Aw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.3.7.tgz", + "integrity": "sha512-5ffgrefOs2zWqcCVX+OKn+RDx0puopQtxqetegFrTfWQ6pGXdY/5v4kBpPwaOFrNEeE/LPbHt9IJaJuvyhB7RA==", "license": "MIT", "dependencies": { "nanoid": "^3.3.11" } }, "node_modules/@reduxjs/toolkit": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", - "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz", + "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==", "license": "MIT", "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", "immer": "^10.0.3", "redux": "^5.0.1", "redux-thunk": "^3.1.0", @@ -3873,18 +3835,6 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, - "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "license": "MIT" - }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", - "license": "MIT" - }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -4059,6 +4009,12 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@svgr/core/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/@svgr/core/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -4098,9 +4054,9 @@ } }, "node_modules/@svgr/core/node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4113,6 +4069,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@svgr/core/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": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@svgr/core/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4200,6 +4168,12 @@ "@svgr/core": "*" } }, + "node_modules/@svgr/plugin-svgo/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/@svgr/plugin-svgo/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4227,9 +4201,9 @@ } }, "node_modules/@svgr/plugin-svgo/node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4242,6 +4216,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@svgr/plugin-svgo/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": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@svgr/plugin-svgo/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4292,9 +4278,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "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==", "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -4311,18 +4297,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "version": "7946.0.15", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", + "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", "license": "MIT" }, "node_modules/@types/graceful-fs": { @@ -4365,18 +4351,18 @@ } }, "node_modules/@types/node": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz", - "integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", "license": "MIT", "dependencies": { - "undici-types": "~7.8.0" + "undici-types": "~6.20.0" } }, "node_modules/@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "version": "19.1.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.5.tgz", + "integrity": "sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -4486,9 +4472,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -4543,18 +4529,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -4617,10 +4591,13 @@ "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-timsort": { "version": "1.0.3", @@ -4641,9 +4618,9 @@ "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -4661,11 +4638,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -4731,13 +4708,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -4745,25 +4722,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4826,9 +4803,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.2.1.tgz", - "integrity": "sha512-Ol3w0uLJNQ5tDfCf4L+IDTDMgJkVMQHhvYqMxs18Ib0DcaBQIfE8mneSSk7FcuI6FS0phw/rZhoEquQh1/Q3wA==", + "version": "13.1.11", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.1.11.tgz", + "integrity": "sha512-jigWjvhRVdm9UTPJ1wjLYJ0OJvD5vLZ8YYkEknEl6+9S1JWORO/y3xtHr/hNj5n34nOilZqdXrmNFcqKc8YTsg==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", @@ -4845,7 +4822,7 @@ "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.79.4", + "@react-native/babel-preset": "0.79.2", "babel-plugin-react-native-web": "~0.19.13", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", @@ -4862,6 +4839,78 @@ } } }, + "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.2.tgz", + "integrity": "sha512-d+NB7Uosn2ZWd4O4+7ZkB6q1a+0z2opD/4+Bzhk/Tv6fc5FrSftK2Noqxvo3/bhbdGFVPxf0yvLE8et4W17x/Q==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.79.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.2.tgz", + "integrity": "sha512-/HNu869oUq4FUXizpiNWrIhucsYZqu0/0spudJEzk9SEKar0EjVDP7zkg/sKK+KccNypDQGW7nFXT8onzvQ3og==", + "license": "MIT", + "dependencies": { + "@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.79.2", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", @@ -5020,12 +5069,13 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "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" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -5041,9 +5091,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "funding": [ { "type": "opencollective", @@ -5060,10 +5110,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5172,9 +5222,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001724", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", - "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "funding": [ { "type": "opencollective", @@ -5231,18 +5281,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -5284,6 +5322,18 @@ "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", @@ -5541,12 +5591,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "license": "MIT", "dependencies": { - "browserslist": "^4.25.0" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -5574,28 +5624,6 @@ "node": ">=4" } }, - "node_modules/cosmiconfig/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/cosmiconfig/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/cross-fetch": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", @@ -5739,9 +5767,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -5888,9 +5916,9 @@ } }, "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", + "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -5951,9 +5979,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.173", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.173.tgz", - "integrity": "sha512-2bFhXP2zqSfQHugjqJIDFVwa+qIxyNApenmXTp9EjaKtdPrES5Qcn9/aSFy/NaP2E+fWG/zxKu/LBvY36p5VNQ==", + "version": "1.5.76", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", + "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -5971,6 +5999,17 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, "node_modules/engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", @@ -6135,26 +6174,26 @@ "license": "MIT" }, "node_modules/expo": { - "version": "53.0.12", - "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.12.tgz", - "integrity": "sha512-dtmED749hkxDWCcvtD++tb8bAm3Twv8qnUOXzVyXA5owNG0mwDIz0HveJTpWK1UzkY4HcTVRezDf0tflZJ+JXQ==", + "version": "53.0.9", + "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.9.tgz", + "integrity": "sha512-UFG68aVOpccg3s++S3pbtI3YCQCnlu/TFvhnQ5vaD3vhOox1Uk/f2O2T95jmwA/EvKvetqGj34lys3DNXvPqgQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.24.15", + "@expo/cli": "0.24.13", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.3", - "@expo/fingerprint": "0.13.1", - "@expo/metro-config": "0.20.15", + "@expo/config-plugins": "~10.0.2", + "@expo/fingerprint": "0.12.4", + "@expo/metro-config": "0.20.14", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~13.2.1", + "babel-preset-expo": "~13.1.11", "expo-asset": "~11.1.5", "expo-constants": "~17.1.6", "expo-file-system": "~18.1.10", "expo-font": "~13.3.1", "expo-keep-awake": "~14.1.4", - "expo-modules-autolinking": "2.1.12", - "expo-modules-core": "2.4.0", + "expo-modules-autolinking": "2.1.10", + "expo-modules-core": "2.3.13", "react-native-edge-to-edge": "1.6.0", "whatwg-url-without-unicode": "8.0.0-3" }, @@ -6198,9 +6237,9 @@ } }, "node_modules/expo-blur": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.5.tgz", - "integrity": "sha512-CCLJHxN4eoAl06ESKT3CbMasJ98WsjF9ZQEJnuxtDb9ffrYbZ+g9ru84fukjNUOTtc8A8yXE5z8NgY1l0OMrmQ==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.4.tgz", + "integrity": "sha512-55P9tK/RjJZEcu2tU7BqX3wmIOrGMOOkmHztJMMws+ZGHzvtjnPmT7dsQxhOU9vPj77oHnKetYHU2sik3iBcCw==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6223,13 +6262,13 @@ } }, "node_modules/expo-dev-client": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.1.tgz", - "integrity": "sha512-SzrHvXeyTGawzc/7ZIHFmaUYiCeRJagL9bJo/yTPmxdycFFOOdLs1FNMFXyYhB6YY4u5EKTCO6g1fug+0GV9sQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.0.tgz", + "integrity": "sha512-7GgO3BGlFM016Zkp3c9bUbi35pubqKh8Z/iHC1arIvckEjDrLER+92zfUTFr49XLk2o64arItRPJyQL49pA/hg==", "license": "MIT", "dependencies": { - "expo-dev-launcher": "5.1.13", - "expo-dev-menu": "6.1.12", + "expo-dev-launcher": "5.1.12", + "expo-dev-menu": "6.1.11", "expo-dev-menu-interface": "1.10.0", "expo-manifests": "~0.16.5", "expo-updates-interface": "~1.1.0" @@ -6239,13 +6278,13 @@ } }, "node_modules/expo-dev-launcher": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.13.tgz", - "integrity": "sha512-EAxkI0MOZk1E9tkk+QpyDhqlCjUqAr8q+mobcC3ZJIIi7KejhaQlGVlF1kUUITsYLvFvbT8egRgrsMO57T6uDA==", + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.12.tgz", + "integrity": "sha512-ALedYerjJtSiPa95l41zMAO/m1m1kgS39i2H0io+6Ix4OksYNhILNzMNB1qDht/oWt2yjLBvXfWULfs5+3vnaA==", "license": "MIT", "dependencies": { "ajv": "8.11.0", - "expo-dev-menu": "6.1.12", + "expo-dev-menu": "6.1.11", "expo-manifests": "~0.16.5", "resolve-from": "^5.0.0" }, @@ -6254,9 +6293,9 @@ } }, "node_modules/expo-dev-menu": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.12.tgz", - "integrity": "sha512-Bz8yjZ6a+u7ZrZWzfn3aCgBwAX+QB0ktQyV7QMS5/agyesKiqM43+VdwNQqrm8w9tS8HZ2sf6RTvdek8YgOEHg==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.11.tgz", + "integrity": "sha512-yrlDXGcqlbQX3Pgw/iPLRea7+pHFC17MdtkNaXYQ5K5u64mn9l4KZ2ZYUeQ8cKDG5l8ZdC4F9R9vfCJYFi82AA==", "license": "MIT", "dependencies": { "expo-dev-menu-interface": "1.10.0" @@ -6335,9 +6374,9 @@ } }, "node_modules/expo-linear-gradient": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.5.tgz", - "integrity": "sha512-BSN3MkSGLZoHMduEnAgfhoj3xqcDWaoICgIr4cIYEx1GcHfKMhzA/O4mpZJ/WC27BP1rnAqoKfbclk1eA70ndQ==", + "version": "14.1.4", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.4.tgz", + "integrity": "sha512-bImj2qqIjnl+VHYGnIwan9LxmGvb8e4hFqHpxsPzUiK7Ady7uERrXPhJcyTKTxRf4RL2sQRDpoOKzBYNdQDmuw==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6382,9 +6421,9 @@ } }, "node_modules/expo-modules-autolinking": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.12.tgz", - "integrity": "sha512-rW5YSW66pUx1nLqn7TO0eWRnP4LDvySW1Tom0wjexk3Tx/upg9LYE5tva7p5AX/cdFfiZcEqPcOxP4RyT++Xlg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.10.tgz", + "integrity": "sha512-k93fzoszrYTKbZ51DSVnewYIGUV6Gi22Su8qySXPFJEfvtDs2NUUNRHBZNKgLHvwc6xPzVC5j7JYbrpXNuY44A==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -6400,21 +6439,21 @@ } }, "node_modules/expo-modules-core": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.4.0.tgz", - "integrity": "sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.3.13.tgz", + "integrity": "sha512-vmKHv7tEo2wUQoYDV6grhsLsQfD3DUnew5Up3yNnOE1gHGQE+zhV1SBYqaPMPB12OvpyD1mlfzGhu6r9PODnng==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, "node_modules/expo-splash-screen": { - "version": "0.30.9", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.9.tgz", - "integrity": "sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==", + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.8.tgz", + "integrity": "sha512-2eh+uA543brfeG5HILXmtNKA7E2/pfywKzNumzy3Ef6OtDjYy6zJUGNSbhnZRbVEjUZo3/QNRs0JRBfY80okZg==", "license": "MIT", "dependencies": { - "@expo/prebuild-config": "^9.0.6" + "@expo/prebuild-config": "^9.0.5" }, "peerDependencies": { "expo": "*" @@ -6456,33 +6495,21 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "micromatch": "^4.0.4" }, "engines": { "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -6490,9 +6517,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -6540,15 +6567,6 @@ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", "license": "MIT" }, - "node_modules/fbjs/node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.3" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6706,12 +6724,12 @@ "license": "BSD-2-Clause" }, "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.6", + "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" }, "engines": { @@ -6810,9 +6828,9 @@ } }, "node_modules/getenv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", - "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", "license": "MIT", "engines": { "node": ">=6" @@ -6839,15 +6857,39 @@ } }, "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/globals": { @@ -6993,6 +7035,20 @@ "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", "license": "BSD-3-Clause" }, + "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==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", @@ -7019,15 +7075,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", @@ -7492,12 +7539,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" @@ -7895,7 +7943,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/lodash.throttle": { @@ -8033,9 +8080,9 @@ } }, "node_modules/marky": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", - "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "license": "Apache-2.0" }, "node_modules/mdn-data": { @@ -8576,18 +8623,15 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "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": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -8620,18 +8664,6 @@ "node": ">= 18" } }, - "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/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -9217,19 +9249,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "license": "MIT", "engines": { "node": ">= 6" @@ -9265,9 +9288,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -9284,7 +9307,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -9408,9 +9431,9 @@ "license": "MIT" }, "node_modules/prettier": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.0.tgz", - "integrity": "sha512-ujSB9uXHJKzM/2GBuE0hBOUgC77CN3Bnpqa+g80bkv3T3A93wL/xlzDATHhnhkzifz/UE2SNOvmbTz5hSkDlHw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -9461,12 +9484,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/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/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", @@ -9486,12 +9503,12 @@ } }, "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "license": "MIT", "dependencies": { - "asap": "~2.0.6" + "asap": "~2.0.3" } }, "node_modules/prompts": { @@ -9701,25 +9718,25 @@ } }, "node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "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.79.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.79.4.tgz", - "integrity": "sha512-CfxYMuszvnO/33Q5rB//7cU1u9P8rSOvzhE2053Phdb8+6bof9NLayCllU2nmPrm8n9o6RU1Fz5H0yquLQ0DAw==", + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.79.2.tgz", + "integrity": "sha512-AnGzb56JvU5YCL7cAwg10+ewDquzvmgrMddiBM0GAWLwQM/6DJfGd2ZKrMuKKehHerpDDZgG+EY64gk3x3dEkw==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.7.0", - "@react-native/assets-registry": "0.79.4", - "@react-native/codegen": "0.79.4", - "@react-native/community-cli-plugin": "0.79.4", - "@react-native/gradle-plugin": "0.79.4", - "@react-native/js-polyfills": "0.79.4", - "@react-native/normalize-colors": "0.79.4", - "@react-native/virtualized-lists": "0.79.4", + "@react-native/assets-registry": "0.79.2", + "@react-native/codegen": "0.79.2", + "@react-native/community-cli-plugin": "0.79.2", + "@react-native/gradle-plugin": "0.79.2", + "@react-native/js-polyfills": "0.79.2", + "@react-native/normalize-colors": "0.79.2", + "@react-native/virtualized-lists": "0.79.2", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -9976,13 +9993,12 @@ } }, "node_modules/react-native-screens": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.11.1.tgz", - "integrity": "sha512-F0zOzRVa3ptZfLpD0J8ROdo+y1fEPw+VBFq1MTY/iyDu08al7qFUO5hLMd+EYMda5VXGaTFCa8q7bOppUszhJw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.10.0.tgz", + "integrity": "sha512-Tw21NGuXm3PbiUGtZd0AnXirUixaAbPXDjNR0baBH7/WJDaDTTELLcQ7QRXuqAWbmr/EVCrKj1348ei1KFIr8A==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", - "react-native-is-edge-to-edge": "^1.1.7", "warn-once": "^0.1.0" }, "peerDependencies": { @@ -10015,9 +10031,9 @@ } }, "node_modules/react-native-svg-transformer": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.1.tgz", - "integrity": "sha512-dFvBNR8A9VPum9KCfh+LE49YiJEF8zUSnEFciKQroR/bEOhlPoZA0SuQ0qNk7m2iZl2w59FYjdRe0pMHWMDl0Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.0.tgz", + "integrity": "sha512-RG5fSWJT7mjCQYocgYFUo1KYPLOoypPVG5LQab+pZZO7m4ciGaQIe0mhok3W4R5jLQsEXKo0u+aQGkZV/bZG7w==", "license": "MIT", "dependencies": { "@svgr/core": "^8.1.0", @@ -10147,9 +10163,9 @@ } }, "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { - "version": "0.74.89", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", - "integrity": "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==", + "version": "0.74.88", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.88.tgz", + "integrity": "sha512-He5oTwPBxvXrxJ91dZzpxR7P+VYmc9IkJfhuH8zUiU50ckrt+xWNjtVugPdUv4LuVjmZ36Vk2EX8bl1gVn2dVA==", "license": "MIT" }, "node_modules/react-native-web/node_modules/memoize-one": { @@ -10158,39 +10174,6 @@ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", "license": "MIT" }, - "node_modules/react-native/node_modules/@react-native/virtualized-lists": { - "version": "0.79.4", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.4.tgz", - "integrity": "sha512-0Mdcox6e5PTonuM1WIo3ks7MBAa3IDzj0pKnE5xAwSgQ0DJW2P5dYf+KjWmpkE+Yb0w41ZbtXPhKq+U2JJ6C/Q==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^19.0.0", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-native/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/react-native/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -10221,22 +10204,25 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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", + "node_modules/react-native/node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "asap": "~2.0.6" } }, + "node_modules/react-native/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, "node_modules/react-native/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "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" @@ -10295,6 +10281,15 @@ "pify": "^2.3.0" } }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -10353,11 +10348,20 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "license": "MIT" }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -10524,9 +10528,9 @@ "license": "ISC" }, "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -10549,16 +10553,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "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", @@ -10580,18 +10574,6 @@ "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/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10635,6 +10617,14 @@ ], "license": "MIT" }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -10861,9 +10851,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -11098,9 +11088,9 @@ "license": "MIT" }, "node_modules/stacktrace-parser": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", - "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", "license": "MIT", "dependencies": { "type-fest": "^0.7.1" @@ -11109,6 +11099,15 @@ "node": ">=6" } }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11402,6 +11401,18 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tar": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", @@ -11469,9 +11480,9 @@ } }, "node_modules/terser": { - "version": "5.43.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", - "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "version": "5.39.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", + "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11506,16 +11517,6 @@ "node": ">=8" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "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", @@ -11537,18 +11538,6 @@ "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==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -11631,12 +11620,15 @@ } }, "node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typescript": { @@ -11689,9 +11681,9 @@ } }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -11756,9 +11748,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -11776,7 +11768,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.1" + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -11795,9 +11787,9 @@ } }, "node_modules/use-latest-callback": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.4.tgz", - "integrity": "sha512-LS2s2n1usUUnDq4oVh1ca6JFX9uSqUncTfAm44WMg0v6TxL7POUTk1B044NH8TeLkFbNajIsgDHcgNpNzZucdg==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", + "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", "license": "MIT", "peerDependencies": { "react": ">=16.8" @@ -11827,15 +11819,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "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", @@ -12084,25 +12067,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, - "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==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", @@ -12137,6 +12101,15 @@ "node": ">=10.0.0" } }, + "node_modules/xcode/node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/xml2js": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", @@ -12192,15 +12165,15 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14.6" + "node": ">= 14" } }, "node_modules/yargs": { diff --git a/package.json b/package.json index 370f18d..f1f6d0b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dependencies": { "@expo-google-fonts/quicksand": "^0.2.3", "@expo/metro-runtime": "~5.0.4", - "@react-native-async-storage/async-storage": "2.1.2", + "@react-native-async-storage/async-storage": "^2.1.2", "@react-native-community/slider": "4.5.6", "@react-native-firebase/app": "^22.2.1", "@react-native-firebase/messaging": "^22.2.1", @@ -23,29 +23,29 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", - "expo": "53.0.12", - "expo-blur": "~14.1.5", - "expo-dev-client": "~5.2.1", + "expo": "^53.0.9", + "expo-blur": "~14.1.4", + "expo-dev-client": "~5.2.0", "expo-font": "~13.3.1", "expo-image-picker": "~16.1.4", - "expo-linear-gradient": "~14.1.5", + "expo-linear-gradient": "~14.1.4", "expo-linking": "^7.1.5", "expo-location": "~18.1.5", - "expo-splash-screen": "~0.30.9", + "expo-splash-screen": "~0.30.8", "expo-status-bar": "~2.2.3", "jwt-decode": "^4.0.0", "metro-react-native-babel-transformer": "^0.77.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.4", + "react-native": "0.79.2", "react-native-chart-kit": "^6.12.0", "react-native-elements": "^3.4.3", "react-native-gesture-handler": "~2.24.0", "react-native-maps": "1.20.1", "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "~4.11.1", + "react-native-screens": "~4.10.0", "react-native-svg": "15.11.2", "react-native-svg-transformer": "^1.5.0", "react-native-toast-message": "^2.3.0", From 41b8a691431a2c50c420b7fc5a3fc8c56dd60bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 04:07:31 +0100 Subject: [PATCH 26/31] fix bubble --- .../lumicheck/FloatingBubbleService.kt | 2 +- package-lock.json | 1983 +++++++++-------- src/components/MonotorizationModal.js | 24 +- 3 files changed, 1053 insertions(+), 956 deletions(-) diff --git a/android/app/src/main/java/com/anonymous/lumicheck/FloatingBubbleService.kt b/android/app/src/main/java/com/anonymous/lumicheck/FloatingBubbleService.kt index 4ca46e6..d0bd90b 100644 --- a/android/app/src/main/java/com/anonymous/lumicheck/FloatingBubbleService.kt +++ b/android/app/src/main/java/com/anonymous/lumicheck/FloatingBubbleService.kt @@ -104,7 +104,7 @@ class FloatingBubbleService : Service() { closeView?.visibility = View.GONE if (isOverCloseArea()) { stopSelf() - } else { + } else if (isDragging) { snapToEdge(params) } diff --git a/package-lock.json b/package-lock.json index 7522ed4..63dfc78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -114,30 +114,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -153,13 +153,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -169,25 +169,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -218,12 +218,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -235,9 +235,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -289,14 +289,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -327,14 +327,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -401,27 +401,27 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" @@ -514,12 +514,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -582,12 +582,12 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz", - "integrity": "sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", + "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -764,12 +764,12 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz", - "integrity": "sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", + "integrity": "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -779,12 +779,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", - "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -794,12 +794,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -950,12 +950,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -965,12 +965,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -980,14 +980,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -997,14 +997,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1029,12 +1029,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", + "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1044,13 +1044,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1060,16 +1060,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -1080,13 +1080,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1096,12 +1096,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", + "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1111,12 +1111,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1126,13 +1126,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", - "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-flow": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1142,13 +1142,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1158,14 +1158,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1175,12 +1175,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1190,12 +1190,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "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==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1220,13 +1220,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1236,13 +1236,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1252,12 +1252,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1267,12 +1267,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1282,14 +1282,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", + "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.3", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1315,12 +1316,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "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==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1330,13 +1331,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1346,12 +1347,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1361,13 +1362,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1377,14 +1378,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1458,12 +1459,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1473,12 +1474,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1504,13 +1505,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", + "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1520,15 +1520,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", + "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1540,12 +1540,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1555,13 +1555,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1571,12 +1571,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1586,12 +1586,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1601,16 +1601,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", - "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1620,13 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1656,16 +1656,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1675,13 +1675,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } @@ -1701,16 +1698,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1720,16 +1717,16 @@ }, "node_modules/@babel/traverse--for-generate-function-map": { "name": "@babel/traverse", - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1738,9 +1735,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1769,29 +1766,29 @@ "license": "MIT" }, "node_modules/@expo/cli": { - "version": "0.24.13", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.13.tgz", - "integrity": "sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==", + "version": "0.24.15", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.24.15.tgz", + "integrity": "sha512-RDZS30OSnbXkSPnBXdyPL29KbltjOmegE23bZZDiGV23WOReWcPgRc5U7Fd8eLPhtRjHBKlBpNJMTed5Ntr/uw==", "license": "MIT", "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.2", + "@expo/config-plugins": "~10.0.3", "@expo/devcert": "^1.1.2", "@expo/env": "~1.0.5", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@expo/metro-config": "~0.20.14", + "@expo/metro-config": "~0.20.15", "@expo/osascript": "^2.2.4", "@expo/package-manager": "^1.8.4", "@expo/plist": "^0.3.4", - "@expo/prebuild-config": "^9.0.6", + "@expo/prebuild-config": "^9.0.7", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.79.2", + "@react-native/dev-middleware": "0.79.4", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", @@ -1806,7 +1803,7 @@ "debug": "^4.3.4", "env-editor": "^0.4.1", "freeport-async": "^2.0.0", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "lan-network": "^0.1.6", "minimatch": "^9.0.0", @@ -1840,30 +1837,6 @@ "expo-internal": "build/bin/cli" } }, - "node_modules/@expo/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/cli/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@expo/cli/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -1908,18 +1881,18 @@ } }, "node_modules/@expo/config-plugins": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.2.tgz", - "integrity": "sha512-TzUn3pPdpwCS0yYaSlZOClgDmCX8N4I2lfgitX5oStqmvpPtB+vqtdyqsVM02fQ2tlJIAqwBW+NHaHqqy8Jv7g==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-10.0.3.tgz", + "integrity": "sha512-fjCckkde67pSDf48x7wRuPsgQVIqlDwN7NlOk9/DFgQ1hCH0L5pGqoSmikA1vtAyiA83MOTpkGl3F3wyATyUog==", "license": "MIT", "dependencies": { - "@expo/config-types": "^53.0.3", + "@expo/config-types": "^53.0.4", "@expo/json-file": "~9.1.4", "@expo/plist": "^0.3.4", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", @@ -1956,6 +1929,15 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/@expo/config/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/config/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2001,10 +1983,19 @@ "getenv": "^1.0.0" } }, + "node_modules/@expo/env/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/fingerprint": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.12.4.tgz", - "integrity": "sha512-HOJVvjiQYVHIouCOfFf4JRrQvBDIV/12GVG2iwbw1iGwmpQVkPgEXa9lN0f2yuS4J3QXHs73wr9jvuCjMmJlfw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.13.1.tgz", + "integrity": "sha512-MgZ5uIvvwAnjWeQoj4D3RnBXjD1GNOpCvhp2jtZWdQ8yEokhDEJGoHjsMT8/NCB5m2fqP5sv2V5nPzC7CN1YjQ==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -2012,7 +2003,9 @@ "chalk": "^4.1.2", "debug": "^4.3.4", "find-up": "^5.0.0", - "getenv": "^1.0.0", + "getenv": "^2.0.0", + "glob": "^10.4.2", + "ignore": "^5.3.1", "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", @@ -2022,30 +2015,6 @@ "fingerprint": "bin/cli.js" } }, - "node_modules/@expo/fingerprint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/fingerprint/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@expo/fingerprint/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2075,6 +2044,15 @@ "unique-string": "~2.0.0" } }, + "node_modules/@expo/image-utils/node_modules/getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@expo/image-utils/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -2107,16 +2085,16 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.20.14", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.14.tgz", - "integrity": "sha512-tYDDubuZycK+NX00XN7BMu73kBur/evOPcKfxc+UBeFfgN2EifOITtdwSUDdRsbtJ2OnXwMY1HfRUG3Lq3l4cw==", + "version": "0.20.15", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.15.tgz", + "integrity": "sha512-m8i58IQ7I8iOdVRfOhFmhPMHuhgeTVfQp1+mxW7URqPZaeVbuDVktPqOiNoHraKBoGPLKMUSsD+qdUuJVL3wMg==", "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": "~11.0.9", + "@expo/config": "~11.0.10", "@expo/env": "~1.0.5", "@expo/json-file": "~9.1.4", "@expo/spawn-async": "^1.7.2", @@ -2124,7 +2102,7 @@ "debug": "^4.3.2", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", - "getenv": "^1.0.0", + "getenv": "^2.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", @@ -2133,28 +2111,32 @@ "resolve-from": "^5.0.0" } }, - "node_modules/@expo/metro-config/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@expo/metro-config/node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@expo/metro-config/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^10 || ^12 || >=14" } }, "node_modules/@expo/metro-runtime": { @@ -2205,17 +2187,17 @@ } }, "node_modules/@expo/prebuild-config": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.6.tgz", - "integrity": "sha512-HDTdlMkTQZ95rd6EpvuLM+xkZV03yGLc38FqI37qKFLJtUN1WnYVaWsuXKoljd1OrVEVsHe6CfqKwaPZ52D56Q==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.7.tgz", + "integrity": "sha512-1w5MBp6NdF51gPGp0HsCZt0QC82hZWo37wI9HfxhdQF/sN/92Mh4t30vaY7gjHe71T5QNyab00oxZH/wP0MDgQ==", "license": "MIT", "dependencies": { - "@expo/config": "~11.0.9", - "@expo/config-plugins": "~10.0.2", + "@expo/config": "~11.0.10", + "@expo/config-plugins": "~10.0.3", "@expo/config-types": "^53.0.4", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", - "@react-native/normalize-colors": "0.79.2", + "@react-native/normalize-colors": "0.79.4", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", @@ -2259,12 +2241,14 @@ "license": "MIT" }, "node_modules/@expo/vector-icons": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.4.tgz", - "integrity": "sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.1.0.tgz", + "integrity": "sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ==", "license": "MIT", - "dependencies": { - "prop-types": "^15.8.1" + "peerDependencies": { + "expo-font": "*", + "react": "*", + "react-native": "*" } }, "node_modules/@expo/ws-tunnel": { @@ -2297,24 +2281,6 @@ "@babel/highlight": "^7.10.4" } }, - "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/@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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@firebase/analytics": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.11.tgz", @@ -3050,6 +3016,15 @@ "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==", + "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", @@ -3063,6 +3038,19 @@ "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==", + "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", @@ -3193,25 +3181,6 @@ "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==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -3397,9 +3366,9 @@ "license": "BSD-3-Clause" }, "node_modules/@react-native-async-storage/async-storage": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.2.tgz", - "integrity": "sha512-dvlNq4AlGWC+ehtH12p65+17V0Dx7IecOWl6WanF2ja38O1Dcjjvn7jVzkUHJ5oWkQBlyASurTPlTHgKXyYiow==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz", + "integrity": "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==", "license": "MIT", "dependencies": { "merge-options": "^3.0.4" @@ -3480,10 +3449,82 @@ "node": ">=18" } }, + "node_modules/@react-native/babel-plugin-codegen": { + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.4.tgz", + "integrity": "sha512-quhytIlDedR3ircRwifa22CaWVUVnkxccrrgztroCZaemSJM+HLurKJrjKWm0J5jV9ed+d+9Qyb1YB0syTHDjg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.79.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/babel-preset": { + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.4.tgz", + "integrity": "sha512-El9JvYKiNfnkQ3qR7zJvvRdP3DX2i4BGYlIricWQishI3gWAfm88FQYFC2CcGoMQWJQEPN4jnDMpoISAJDEN4g==", + "license": "MIT", + "dependencies": { + "@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.79.4", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, "node_modules/@react-native/codegen": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.2.tgz", - "integrity": "sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.4.tgz", + "integrity": "sha512-K0moZDTJtqZqSs+u9tnDPSxNsdxi5irq8Nu4mzzOYlJTVNGy5H9BiIDg/NeKGfjAdo43yTDoaPSbUCvVV8cgIw==", "license": "MIT", "dependencies": { "glob": "^7.1.1", @@ -3499,6 +3540,16 @@ "@babel/core": "*" } }, + "node_modules/@react-native/codegen/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -3520,6 +3571,18 @@ "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.79.2", "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.2.tgz", @@ -3547,6 +3610,37 @@ } } }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz", + "integrity": "sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz", + "integrity": "sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==", + "license": "MIT", + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.79.2", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^6.2.3" + }, + "engines": { + "node": ">=18" + } + }, "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", @@ -3574,23 +3668,32 @@ "node": ">=10" } }, + "node_modules/@react-native/community-cli-plugin/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-native/debugger-frontend": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz", - "integrity": "sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.4.tgz", + "integrity": "sha512-Gg4LhxHIK86Bi2RiT1rbFAB6fuwANRsaZJ1sFZ1OZEMQEx6stEnzaIrmfgzcv4z0bTQdQ8lzCrpsz0qtdaD4eA==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz", - "integrity": "sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.4.tgz", + "integrity": "sha512-OWRDNkgrFEo+OSC5QKfiiBmGXKoU8gmIABK8rj2PkgwisFQ/22p7MzE5b6oB2lxWaeJT7jBX5KVniNqO46VhHA==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.79.2", + "@react-native/debugger-frontend": "0.79.4", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", @@ -3648,45 +3751,22 @@ } }, "node_modules/@react-native/normalize-colors": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz", - "integrity": "sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==", + "version": "0.79.4", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.4.tgz", + "integrity": "sha512-247/8pHghbYY2wKjJpUsY6ZNbWcdUa5j5517LZMn6pXrbSSgWuj3JA4OYibNnocCHBaVrt+3R8XC3VEJqLlHFg==", "license": "MIT" }, - "node_modules/@react-native/virtualized-lists": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz", - "integrity": "sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==", - "license": "MIT", - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/react": "^19.0.0", - "react": "*", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@react-navigation/bottom-tabs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", - "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.4.2.tgz", + "integrity": "sha512-jyBux5l3qqEucY5M/ZWxVvfA8TQu7DVl2gK+xB6iKqRUfLf7dSumyVxc7HemDwGFoz3Ug8dVZFvSMEs+mfrieQ==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.2.5", + "@react-navigation/elements": "^2.5.2", "color": "^4.2.3" }, "peerDependencies": { - "@react-navigation/native": "^7.0.14", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3694,40 +3774,36 @@ } }, "node_modules/@react-navigation/core": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.9.2.tgz", - "integrity": "sha512-lqCyKMWWaSwGK4VV3wRXXEKvl5IKrVH207Kp77TLCnITnd4KQIdgjzzJ/Pr62ugki3VTAErq1vg0yRlcXciCbg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.12.1.tgz", + "integrity": "sha512-ir6s25CDkReufi0vQhSIAe+AAHHJN9zTgGlS6iDS1yqbwgl2MiBAZzpaOL1T5llYujie2jF/bODeLz2j4k80zw==", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.3.7", + "@react-navigation/routers": "^7.4.1", "escape-string-regexp": "^4.0.0", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", - "use-latest-callback": "^0.2.3", + "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, - "node_modules/@react-navigation/core/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", - "license": "MIT" - }, "node_modules/@react-navigation/elements": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.4.2.tgz", - "integrity": "sha512-cudKLsRtOB+i8iDzfBKypdqiHsDy1ruqCfYAtwKEclDmLsxu3/90YXoBtoPyFNyIpsn3GtsJzZsrYWQh78xSWg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.5.2.tgz", + "integrity": "sha512-aGC3ukF5+lXuiF5bK7bJyRuWCE+Tk4MZ3GoQpAb7u7+m0KmsquliDhj4UCWEUU5kUoCeoRAUvv+1lKcYKf+WTQ==", "license": "MIT", "dependencies": { - "color": "^4.2.3" + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.1.9", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" @@ -3739,16 +3815,16 @@ } }, "node_modules/@react-navigation/native": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.9.tgz", - "integrity": "sha512-/A0oBwZIeD23o4jsnB0fEyKmKS+l4LAbJP/ioVvsGEubGp+sc5ouQNranOh7JwR0R1eX0MjcsLKprEwB+nztdw==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.14.tgz", + "integrity": "sha512-X233/CNx41FpshlWe4uEAUN8CNem3ju4t5pnVKcdhDR0cTQT1rK6P0ZwjSylD9zXdnHvJttFjBhKTot6TcvSqA==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.9.2", + "@react-navigation/core": "^7.12.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", - "use-latest-callback": "^0.2.3" + "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", @@ -3756,16 +3832,16 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", - "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", + "version": "7.3.21", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.3.21.tgz", + "integrity": "sha512-oNNZHzkxILEibesamRKLodfXAaDOUvMBITKXLLeblDxnTAyIB/Kf7CmV+8nwkdAgV04kURTxV0SQI+d8gLUm6g==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.2.5", + "@react-navigation/elements": "^2.5.2", "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^7.0.14", + "@react-navigation/native": "^7.1.14", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -3773,20 +3849,22 @@ } }, "node_modules/@react-navigation/routers": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.3.7.tgz", - "integrity": "sha512-5ffgrefOs2zWqcCVX+OKn+RDx0puopQtxqetegFrTfWQ6pGXdY/5v4kBpPwaOFrNEeE/LPbHt9IJaJuvyhB7RA==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.4.1.tgz", + "integrity": "sha512-42mZrMzQ0LfKxUb5OHIurYrPYyRsXFLolucILrvm21f0O40Sw0Ufh1bnn/jRqnxZZu7wvpUGIGYM8nS9zVE1Aw==", "license": "MIT", "dependencies": { "nanoid": "^3.3.11" } }, "node_modules/@reduxjs/toolkit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz", - "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", + "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==", "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", "immer": "^10.0.3", "redux": "^5.0.1", "redux-thunk": "^3.1.0", @@ -3835,6 +3913,18 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -4009,12 +4099,6 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/core/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/@svgr/core/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -4054,9 +4138,9 @@ } }, "node_modules/@svgr/core/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4065,20 +4149,8 @@ "engines": { "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@svgr/core/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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@svgr/core/node_modules/parse-json": { @@ -4168,12 +4240,6 @@ "@svgr/core": "*" } }, - "node_modules/@svgr/plugin-svgo/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/@svgr/plugin-svgo/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4201,9 +4267,9 @@ } }, "node_modules/@svgr/plugin-svgo/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4216,18 +4282,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@svgr/plugin-svgo/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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@svgr/plugin-svgo/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4278,9 +4332,9 @@ } }, "node_modules/@types/babel__generator": { - "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==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -4297,18 +4351,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/geojson": { - "version": "7946.0.15", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", - "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "license": "MIT" }, "node_modules/@types/graceful-fs": { @@ -4351,18 +4405,18 @@ } }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "24.0.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz", + "integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==", "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~7.8.0" } }, "node_modules/@types/react": { - "version": "19.1.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.5.tgz", - "integrity": "sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -4472,9 +4526,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -4529,6 +4583,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -4591,13 +4657,10 @@ "license": "MIT" }, "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" - } + "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/array-timsort": { "version": "1.0.3", @@ -4618,9 +4681,9 @@ "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -4638,11 +4701,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -4708,13 +4771,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/helper-define-polyfill-provider": "^0.6.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -4722,25 +4785,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4803,9 +4866,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "13.1.11", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.1.11.tgz", - "integrity": "sha512-jigWjvhRVdm9UTPJ1wjLYJ0OJvD5vLZ8YYkEknEl6+9S1JWORO/y3xtHr/hNj5n34nOilZqdXrmNFcqKc8YTsg==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.2.1.tgz", + "integrity": "sha512-Ol3w0uLJNQ5tDfCf4L+IDTDMgJkVMQHhvYqMxs18Ib0DcaBQIfE8mneSSk7FcuI6FS0phw/rZhoEquQh1/Q3wA==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", @@ -4822,7 +4885,7 @@ "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.79.2", + "@react-native/babel-preset": "0.79.4", "babel-plugin-react-native-web": "~0.19.13", "babel-plugin-syntax-hermes-parser": "^0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", @@ -4839,78 +4902,6 @@ } } }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.79.2.tgz", - "integrity": "sha512-d+NB7Uosn2ZWd4O4+7ZkB6q1a+0z2opD/4+Bzhk/Tv6fc5FrSftK2Noqxvo3/bhbdGFVPxf0yvLE8et4W17x/Q==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.79.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": { - "version": "0.79.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.79.2.tgz", - "integrity": "sha512-/HNu869oUq4FUXizpiNWrIhucsYZqu0/0spudJEzk9SEKar0EjVDP7zkg/sKK+KccNypDQGW7nFXT8onzvQ3og==", - "license": "MIT", - "dependencies": { - "@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.79.2", - "babel-plugin-syntax-hermes-parser": "0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", @@ -5069,13 +5060,12 @@ } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -5091,9 +5081,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "funding": [ { "type": "opencollective", @@ -5110,10 +5100,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -5222,9 +5212,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", - "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", + "version": "1.0.30001724", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", + "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", "funding": [ { "type": "opencollective", @@ -5281,6 +5271,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -5322,18 +5324,6 @@ "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", @@ -5591,12 +5581,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.25.0" }, "funding": { "type": "opencollective", @@ -5624,6 +5614,28 @@ "node": ">=4" } }, + "node_modules/cosmiconfig/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/cosmiconfig/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/cross-fetch": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", @@ -5767,9 +5779,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -5916,9 +5928,9 @@ } }, "node_modules/domutils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", - "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -5979,9 +5991,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.76", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", - "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", + "version": "1.5.173", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.173.tgz", + "integrity": "sha512-2bFhXP2zqSfQHugjqJIDFVwa+qIxyNApenmXTp9EjaKtdPrES5Qcn9/aSFy/NaP2E+fWG/zxKu/LBvY36p5VNQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -5999,17 +6011,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", @@ -6174,26 +6175,26 @@ "license": "MIT" }, "node_modules/expo": { - "version": "53.0.9", - "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.9.tgz", - "integrity": "sha512-UFG68aVOpccg3s++S3pbtI3YCQCnlu/TFvhnQ5vaD3vhOox1Uk/f2O2T95jmwA/EvKvetqGj34lys3DNXvPqgQ==", + "version": "53.0.12", + "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.12.tgz", + "integrity": "sha512-dtmED749hkxDWCcvtD++tb8bAm3Twv8qnUOXzVyXA5owNG0mwDIz0HveJTpWK1UzkY4HcTVRezDf0tflZJ+JXQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.24.13", + "@expo/cli": "0.24.15", "@expo/config": "~11.0.10", - "@expo/config-plugins": "~10.0.2", - "@expo/fingerprint": "0.12.4", - "@expo/metro-config": "0.20.14", + "@expo/config-plugins": "~10.0.3", + "@expo/fingerprint": "0.13.1", + "@expo/metro-config": "0.20.15", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~13.1.11", + "babel-preset-expo": "~13.2.1", "expo-asset": "~11.1.5", "expo-constants": "~17.1.6", "expo-file-system": "~18.1.10", "expo-font": "~13.3.1", "expo-keep-awake": "~14.1.4", - "expo-modules-autolinking": "2.1.10", - "expo-modules-core": "2.3.13", + "expo-modules-autolinking": "2.1.12", + "expo-modules-core": "2.4.0", "react-native-edge-to-edge": "1.6.0", "whatwg-url-without-unicode": "8.0.0-3" }, @@ -6237,9 +6238,9 @@ } }, "node_modules/expo-blur": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.4.tgz", - "integrity": "sha512-55P9tK/RjJZEcu2tU7BqX3wmIOrGMOOkmHztJMMws+ZGHzvtjnPmT7dsQxhOU9vPj77oHnKetYHU2sik3iBcCw==", + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-14.1.5.tgz", + "integrity": "sha512-CCLJHxN4eoAl06ESKT3CbMasJ98WsjF9ZQEJnuxtDb9ffrYbZ+g9ru84fukjNUOTtc8A8yXE5z8NgY1l0OMrmQ==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6262,13 +6263,13 @@ } }, "node_modules/expo-dev-client": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.0.tgz", - "integrity": "sha512-7GgO3BGlFM016Zkp3c9bUbi35pubqKh8Z/iHC1arIvckEjDrLER+92zfUTFr49XLk2o64arItRPJyQL49pA/hg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-5.2.1.tgz", + "integrity": "sha512-SzrHvXeyTGawzc/7ZIHFmaUYiCeRJagL9bJo/yTPmxdycFFOOdLs1FNMFXyYhB6YY4u5EKTCO6g1fug+0GV9sQ==", "license": "MIT", "dependencies": { - "expo-dev-launcher": "5.1.12", - "expo-dev-menu": "6.1.11", + "expo-dev-launcher": "5.1.13", + "expo-dev-menu": "6.1.12", "expo-dev-menu-interface": "1.10.0", "expo-manifests": "~0.16.5", "expo-updates-interface": "~1.1.0" @@ -6278,13 +6279,13 @@ } }, "node_modules/expo-dev-launcher": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.12.tgz", - "integrity": "sha512-ALedYerjJtSiPa95l41zMAO/m1m1kgS39i2H0io+6Ix4OksYNhILNzMNB1qDht/oWt2yjLBvXfWULfs5+3vnaA==", + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-5.1.13.tgz", + "integrity": "sha512-EAxkI0MOZk1E9tkk+QpyDhqlCjUqAr8q+mobcC3ZJIIi7KejhaQlGVlF1kUUITsYLvFvbT8egRgrsMO57T6uDA==", "license": "MIT", "dependencies": { "ajv": "8.11.0", - "expo-dev-menu": "6.1.11", + "expo-dev-menu": "6.1.12", "expo-manifests": "~0.16.5", "resolve-from": "^5.0.0" }, @@ -6293,9 +6294,9 @@ } }, "node_modules/expo-dev-menu": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.11.tgz", - "integrity": "sha512-yrlDXGcqlbQX3Pgw/iPLRea7+pHFC17MdtkNaXYQ5K5u64mn9l4KZ2ZYUeQ8cKDG5l8ZdC4F9R9vfCJYFi82AA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-6.1.12.tgz", + "integrity": "sha512-Bz8yjZ6a+u7ZrZWzfn3aCgBwAX+QB0ktQyV7QMS5/agyesKiqM43+VdwNQqrm8w9tS8HZ2sf6RTvdek8YgOEHg==", "license": "MIT", "dependencies": { "expo-dev-menu-interface": "1.10.0" @@ -6374,9 +6375,9 @@ } }, "node_modules/expo-linear-gradient": { - "version": "14.1.4", - "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.4.tgz", - "integrity": "sha512-bImj2qqIjnl+VHYGnIwan9LxmGvb8e4hFqHpxsPzUiK7Ady7uERrXPhJcyTKTxRf4RL2sQRDpoOKzBYNdQDmuw==", + "version": "14.1.5", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.1.5.tgz", + "integrity": "sha512-BSN3MkSGLZoHMduEnAgfhoj3xqcDWaoICgIr4cIYEx1GcHfKMhzA/O4mpZJ/WC27BP1rnAqoKfbclk1eA70ndQ==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -6421,9 +6422,9 @@ } }, "node_modules/expo-modules-autolinking": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.10.tgz", - "integrity": "sha512-k93fzoszrYTKbZ51DSVnewYIGUV6Gi22Su8qySXPFJEfvtDs2NUUNRHBZNKgLHvwc6xPzVC5j7JYbrpXNuY44A==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.1.12.tgz", + "integrity": "sha512-rW5YSW66pUx1nLqn7TO0eWRnP4LDvySW1Tom0wjexk3Tx/upg9LYE5tva7p5AX/cdFfiZcEqPcOxP4RyT++Xlg==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -6439,21 +6440,21 @@ } }, "node_modules/expo-modules-core": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.3.13.tgz", - "integrity": "sha512-vmKHv7tEo2wUQoYDV6grhsLsQfD3DUnew5Up3yNnOE1gHGQE+zhV1SBYqaPMPB12OvpyD1mlfzGhu6r9PODnng==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.4.0.tgz", + "integrity": "sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, "node_modules/expo-splash-screen": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.8.tgz", - "integrity": "sha512-2eh+uA543brfeG5HILXmtNKA7E2/pfywKzNumzy3Ef6OtDjYy6zJUGNSbhnZRbVEjUZo3/QNRs0JRBfY80okZg==", + "version": "0.30.9", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.30.9.tgz", + "integrity": "sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==", "license": "MIT", "dependencies": { - "@expo/prebuild-config": "^9.0.5" + "@expo/prebuild-config": "^9.0.6" }, "peerDependencies": { "expo": "*" @@ -6495,21 +6496,33 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -6517,9 +6530,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -6567,6 +6580,15 @@ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", "license": "MIT" }, + "node_modules/fbjs/node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6724,12 +6746,12 @@ "license": "BSD-2-Clause" }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -6828,9 +6850,9 @@ } }, "node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-2.0.0.tgz", + "integrity": "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==", "license": "MIT", "engines": { "node": ">=6" @@ -6857,39 +6879,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -7035,20 +7033,6 @@ "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", "license": "BSD-3-Clause" }, - "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==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", @@ -7075,6 +7059,15 @@ ], "license": "BSD-3-Clause" }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", @@ -7539,13 +7532,12 @@ "license": "MIT" }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7943,6 +7935,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/lodash.throttle": { @@ -8080,9 +8073,9 @@ } }, "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", "license": "Apache-2.0" }, "node_modules/mdn-data": { @@ -8623,15 +8616,18 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -8664,6 +8660,18 @@ "node": ">= 18" } }, + "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/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -9249,10 +9257,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "license": "MIT", "engines": { "node": ">= 6" @@ -9288,9 +9305,9 @@ "license": "MIT" }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -9307,7 +9324,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -9431,9 +9448,9 @@ "license": "MIT" }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.0.tgz", + "integrity": "sha512-ujSB9uXHJKzM/2GBuE0hBOUgC77CN3Bnpqa+g80bkv3T3A93wL/xlzDATHhnhkzifz/UE2SNOvmbTz5hSkDlHw==", "dev": true, "license": "MIT", "bin": { @@ -9484,6 +9501,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/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/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", @@ -9503,12 +9526,12 @@ } }, "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "license": "MIT", "dependencies": { - "asap": "~2.0.3" + "asap": "~2.0.6" } }, "node_modules/prompts": { @@ -9718,9 +9741,9 @@ } }, "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==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", + "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", "license": "MIT" }, "node_modules/react-native": { @@ -10031,9 +10054,9 @@ } }, "node_modules/react-native-svg-transformer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.0.tgz", - "integrity": "sha512-RG5fSWJT7mjCQYocgYFUo1KYPLOoypPVG5LQab+pZZO7m4ciGaQIe0mhok3W4R5jLQsEXKo0u+aQGkZV/bZG7w==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.1.tgz", + "integrity": "sha512-dFvBNR8A9VPum9KCfh+LE49YiJEF8zUSnEFciKQroR/bEOhlPoZA0SuQ0qNk7m2iZl2w59FYjdRe0pMHWMDl0Q==", "license": "MIT", "dependencies": { "@svgr/core": "^8.1.0", @@ -10163,9 +10186,9 @@ } }, "node_modules/react-native-web/node_modules/@react-native/normalize-colors": { - "version": "0.74.88", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.88.tgz", - "integrity": "sha512-He5oTwPBxvXrxJ91dZzpxR7P+VYmc9IkJfhuH8zUiU50ckrt+xWNjtVugPdUv4LuVjmZ36Vk2EX8bl1gVn2dVA==", + "version": "0.74.89", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", + "integrity": "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==", "license": "MIT" }, "node_modules/react-native-web/node_modules/memoize-one": { @@ -10174,6 +10197,64 @@ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", "license": "MIT" }, + "node_modules/react-native/node_modules/@react-native/codegen": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.2.tgz", + "integrity": "sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==", + "license": "MIT", + "dependencies": { + "glob": "^7.1.1", + "hermes-parser": "0.25.1", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/react-native/node_modules/@react-native/normalize-colors": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz", + "integrity": "sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==", + "license": "MIT" + }, + "node_modules/react-native/node_modules/@react-native/virtualized-lists": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz", + "integrity": "sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^19.0.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-native/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/react-native/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -10204,25 +10285,22 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/react-native/node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "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": { - "asap": "~2.0.6" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/react-native/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/react-native/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10281,15 +10359,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -10348,20 +10417,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -10528,9 +10588,9 @@ "license": "ISC" }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -10553,6 +10613,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -10574,6 +10644,18 @@ "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/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10617,14 +10699,6 @@ ], "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -10851,9 +10925,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -11088,9 +11162,9 @@ "license": "MIT" }, "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", "license": "MIT", "dependencies": { "type-fest": "^0.7.1" @@ -11099,15 +11173,6 @@ "node": ">=6" } }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -11401,18 +11466,6 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/tar": { "version": "7.4.3", "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", @@ -11480,9 +11533,9 @@ } }, "node_modules/terser": { - "version": "5.39.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", - "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11517,6 +11570,16 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "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", @@ -11538,6 +11601,18 @@ "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==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -11620,15 +11695,12 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/typescript": { @@ -11681,9 +11753,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -11748,9 +11820,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -11768,7 +11840,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -11787,9 +11859,9 @@ } }, "node_modules/use-latest-callback": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", - "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.4.tgz", + "integrity": "sha512-LS2s2n1usUUnDq4oVh1ca6JFX9uSqUncTfAm44WMg0v6TxL7POUTk1B044NH8TeLkFbNajIsgDHcgNpNzZucdg==", "license": "MIT", "peerDependencies": { "react": ">=16.8" @@ -11819,6 +11891,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "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", @@ -12067,6 +12148,25 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "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==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", @@ -12101,15 +12201,6 @@ "node": ">=10.0.0" } }, - "node_modules/xcode/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/xml2js": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", @@ -12165,15 +12256,15 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { diff --git a/src/components/MonotorizationModal.js b/src/components/MonotorizationModal.js index b966267..1e77897 100644 --- a/src/components/MonotorizationModal.js +++ b/src/components/MonotorizationModal.js @@ -8,14 +8,18 @@ import { AppState, } from 'react-native'; import { FontAwesome } from '@expo/vector-icons'; -import { useDispatch, useSelector } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; -import {updateIsMonitoringStatus} from '../redux/isMonitoringSlice' +import { updateIsMonitoringStatus } from '../redux/isMonitoringSlice'; //import react-native modules import { NativeModules } from 'react-native'; -export default function MonotorizationModal({ modalVisible, setModalVisible, buttonText }) { +export default function MonotorizationModal({ + modalVisible, + setModalVisible, + buttonText, +}) { //importar os módulos nativos de screen time e work manager const { ScreenTimeModule } = NativeModules; const { FloatingBubble } = NativeModules; @@ -84,11 +88,12 @@ export default function MonotorizationModal({ modalVisible, setModalVisible, but }; const StartMonotoring = () => { - if(!isMonitoringState){ + if (!isMonitoringState) { WorkManagerModule.startWork(); - dispatch(updateIsMonitoringStatus()) + dispatch(updateIsMonitoringStatus()); + FloatingBubble.showBubble(); } - setModalVisible(false); + setModalVisible(false); }; return ( @@ -116,9 +121,10 @@ export default function MonotorizationModal({ modalVisible, setModalVisible, but situação em que encontras! - Para isso, se quiseres uma análise mais completa, e uma interação mais dinâmica, vamos precisar que nos dês permissão para aceder aos teus - dados de screenTime e para a Lumicheck possa trabalhar em Background - e Foreground. + Para isso, se quiseres uma análise mais completa, e uma interação + mais dinâmica, vamos precisar que nos dês permissão para aceder aos + teus dados de screenTime e para a Lumicheck possa trabalhar em + Background e Foreground. From 3b96803e20b13149f6a11be6d618ec03c64579f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 05:49:10 +0100 Subject: [PATCH 27/31] fix sockets --- package-lock.json | 10 ++++++++++ package.json | 1 + src/App.js | 3 +++ src/FontDefiner.js | 12 +++++++++--- src/eventEmitter.js | 2 ++ src/redux/authSlice.js | 3 +++ 6 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/eventEmitter.js diff --git a/package-lock.json b/package-lock.json index 63dfc78..c1ee999 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", + "events": "^3.3.0", "expo": "^53.0.9", "expo-blur": "~14.1.4", "expo-dev-client": "~5.2.0", @@ -6168,6 +6169,15 @@ "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==", + "license": "MIT", + "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", diff --git a/package.json b/package.json index f1f6d0b..2b1c279 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "@reduxjs/toolkit": "^2.6.1", + "events": "^3.3.0", "expo": "^53.0.9", "expo-blur": "~14.1.4", "expo-dev-client": "~5.2.0", diff --git a/src/App.js b/src/App.js index 229974f..debd9ab 100644 --- a/src/App.js +++ b/src/App.js @@ -7,6 +7,7 @@ import { useEffect } from 'react'; import { useDispatch } from 'react-redux'; import { setTokenFromStorage } from './redux/authSlice'; import { NavigationRef } from './NavigationRef'; +import eventEmitter from './eventEmitter'; // Importar os ícones personalizados import HomeIcon from '../assets/icons/home.svg'; @@ -106,6 +107,7 @@ export default function App() { if (response.ok) { const data = await response.json(); await AsyncStorage.setItem('token', data.access_token); + eventEmitter.emit('tokenChanged'); dispatch( setTokenFromStorage({ token: data.access_token, @@ -115,6 +117,7 @@ export default function App() { setInitialRoute('HomeTabs'); } else { await AsyncStorage.multiRemove(['token', 'refresh_token', 'user']); + eventEmitter.emit('tokenChanged'); setInitialRoute('Welcome'); } } else { diff --git a/src/FontDefiner.js b/src/FontDefiner.js index c5df2b2..a1fe2be 100644 --- a/src/FontDefiner.js +++ b/src/FontDefiner.js @@ -9,6 +9,7 @@ import App from './App'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { jwtDecode } from 'jwt-decode'; import useSocket from './useSocket'; +import eventEmitter from './eventEmitter'; export default function FontDefiner() { const [fontsLoaded] = useFonts({ @@ -19,19 +20,24 @@ export default function FontDefiner() { const [userId, setUserId] = useState(null); useEffect(() => { - async function loadUserId() { + const handleTokenChange = async () => { try { const token = await AsyncStorage.getItem('token'); if (token) { const decoded = jwtDecode(token); setUserId(decoded.sub); + } else { + setUserId(null); } } catch (error) { console.error('Erro ao carregar token:', error); } - } + }; - loadUserId(); + eventEmitter.on('tokenChanged', handleTokenChange); + return () => { + eventEmitter.off('tokenChanged', handleTokenChange); + }; }, []); useSocket(userId); diff --git a/src/eventEmitter.js b/src/eventEmitter.js new file mode 100644 index 0000000..284d9eb --- /dev/null +++ b/src/eventEmitter.js @@ -0,0 +1,2 @@ +import { EventEmitter } from 'events'; +export default new EventEmitter(); diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index babaf98..e204920 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -1,6 +1,7 @@ import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { NativeModules } from 'react-native'; +import eventEmitter from '../eventEmitter'; const API_URL = process.env.EXPO_PUBLIC_BACKEND_URL_PROD; @@ -23,6 +24,7 @@ export const loginUser = createAsyncThunk( await AsyncStorage.setItem('token', data.access_token); await AsyncStorage.setItem('refresh_token', data.refresh_token); await AsyncStorage.setItem('user', JSON.stringify(data.user)); + eventEmitter.emit('tokenChanged'); const { WorkManagerModule } = NativeModules; WorkManagerModule.setUserId(data.user.id); @@ -41,6 +43,7 @@ export const logoutUser = createAsyncThunk( try { await AsyncStorage.removeItem('token'); await AsyncStorage.removeItem('user'); + eventEmitter.emit('tokenChanged'); const { WorkManagerModule } = NativeModules; WorkManagerModule.setUserId(-1); From a5fa792b441ae026011fe0d4c76b1c7dd808ffdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 09:19:56 +0100 Subject: [PATCH 28/31] 48 --- src/pages/HomePage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js index 91c3539..cde6734 100644 --- a/src/pages/HomePage.js +++ b/src/pages/HomePage.js @@ -297,8 +297,8 @@ export default function HomePage() { - Existem 4270 profissionais de saúde à tua disposição. Não - hesites em contacta-los. + Existem 48 profissionais de saúde à tua disposição. Não hesites + em contacta-los. From e442bd85ccbbdb2465f3d5c0f8abf4699c2be0cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 09:38:45 +0100 Subject: [PATCH 29/31] final stuff --- src/components/MostUsedApps.js | 50 ++++++++++++++++++------------- src/components/ScreenTimeChart.js | 3 +- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/components/MostUsedApps.js b/src/components/MostUsedApps.js index 810b307..d994759 100644 --- a/src/components/MostUsedApps.js +++ b/src/components/MostUsedApps.js @@ -1,18 +1,24 @@ import React from 'react'; import { View, Text, Image } from 'react-native'; import { useEffect, useState } from 'react'; -import { getAppIcon } from "../sevices/AppIconService"; - - -export default function MostUsedApps({appTime}) { +import { getAppIcon } from '../sevices/AppIconService'; +export default function MostUsedApps({ appTime }) { // Filter out specific apps from the appTime array appTime.map((app) => { - if(app.appName == "home" || app.appName == "deskclock" || app.appName == "settings" || app.appName == "phone" || app.appName == "messages" || app.appName == "contacts" || app.appName == "cleaner"){ + if ( + app.appName == 'home' || + app.appName == 'deskclock' || + app.appName == 'settings' || + app.appName == 'phone' || + app.appName == 'messages' || + app.appName == 'contacts' || + app.appName == 'cleaner' + ) { appTime.splice(appTime.indexOf(app), 1); } - }) - + }); + const Data_time_ordered = [...appTime] .sort((a, b) => b.time - a.time) // Sort by descending `hours` .slice(0, 6); // Take only the top 6 elements @@ -22,15 +28,15 @@ export default function MostUsedApps({appTime}) { {Data_time_ordered.map((Data, index) => { let Time_percentage; - if(Data.time < 60){ - Time_percentage = '0%'; - }else{ - if(Data.time >= 60){ + if (Data.time < 60) { + Time_percentage = `${Math.floor(Math.random() * 10) + 1}%`; + } else { + if (Data.time >= 60) { const hours = Math.floor(Data.time / 60); if (hours >= 5) { Time_percentage = '100%'; - }else { - Time_percentage = `${(hours * 100) / 6 + 10}%` + } else { + Time_percentage = `${(hours * 100) / 6 + 10}%`; } } } @@ -38,13 +44,13 @@ export default function MostUsedApps({appTime}) { const [iconUrl, setIconUrl] = useState(null); useEffect(() => { - (async () => { - const icon = await getAppIcon(Data.id); - if (icon) { - setIconUrl(icon); - } - })(); - }, [Data.id]); + (async () => { + const icon = await getAppIcon(Data.id); + if (icon) { + setIconUrl(icon); + } + })(); + }, [Data.id]); return ( - Dentro de 2 dias, você verá o gráfico de comparação de screentime. + Dentro de 2 dias, vais poder ver o gráfico de comparação de + screentime. ); From 5bc98079a9d29da0cbd20c911eb36fc65b4ed5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 09:51:29 +0100 Subject: [PATCH 30/31] add slicer --- src/pages/TrophiesPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/TrophiesPage.js b/src/pages/TrophiesPage.js index ba319a5..f00c3de 100644 --- a/src/pages/TrophiesPage.js +++ b/src/pages/TrophiesPage.js @@ -134,7 +134,7 @@ export default function TrophiesPage() { Sala de Troféus - {trophieswon.map((trophy, index) => ( + {trophieswon.slice(0, 3).map((trophy, index) => ( From 5f5e861f697a3b2482e2558d9681e49867facabd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= Date: Wed, 25 Jun 2025 10:54:59 +0100 Subject: [PATCH 31/31] delete refresh token --- src/redux/authSlice.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/redux/authSlice.js b/src/redux/authSlice.js index e204920..ce9ee7b 100644 --- a/src/redux/authSlice.js +++ b/src/redux/authSlice.js @@ -42,6 +42,7 @@ export const logoutUser = createAsyncThunk( async (_, thunkAPI) => { try { await AsyncStorage.removeItem('token'); + await AsyncStorage.removeItem('refresh_token'); await AsyncStorage.removeItem('user'); eventEmitter.emit('tokenChanged');